17 de outubro de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Upscale de vídeo com ffmpeg

upscale de vídeo com ffmpeg

Fazer upscale de vídeo com ffmpeg é fácil, mas não poderia deixar de ter esse complemento aos artigos relacionados ao ffmpeg. Já mostrei como substituir áudio sem edição usando ffmpeg, Também mostrei conversão de vídeo usando Python com ffmpeg, Em outro artigo exemplifiquei cut com ffmpeg, para edição mostrei como converter vídeos para usar no Da Vinci Resolve e muito mais. Um artigo utilizando diferentes recursos é o relacionado a imagem e vídeo no Raspberry (serve para qualquer Linux).

Mostrei como fazer superres com ffmpeg, mas nisso ele foi superado pelo waifu2.

Upscale de vídeo

Primeiro, tenha em mente que o ffmpeg não fará mágica. Se pegar um gif animado de 16×16, não espere uma cena de Hollywood na conversão. A proporcionalidade da escala também é importante, mas isso pode ser tratado previamente. De qualquer modo, usando lanczos na conversão, o upscale tem bem menos perda.

O comando para upscale pode receber diferentes parâmetros (assim como qualquer ação no ffmpeg). Eis dois exemplos:

ffmpeg -i input.mp4 -vf scale=1920x1080:flags=lanczos output_1080p.mp4

E o segundo:

ffmpeg -i input.mp4 -vf scale=1920x1080:flags=lanczos -c:v libx264 -preset slow -crf 21 output_compress_1080p.mp4

Também podemos fazer downscale e nesse caso, não teremos perda.

Downscale de vídeo

Acima, vimosupscale de vídeo com ffmpeg. Agora veremos downscale, onde também estamos usando o filtro lanczos em conjunto à libx264. Reduziremos significativamente o tamanho do arquivo sem perda de qualidade.

ffmpeg -i input.mp4 -vf scale=640x480:flags=lanczos -c:v libx264 -preset slow -crf 21 output_compress_480p.mp4

Enfim, o artigo era basicamente isso. Tentarei mostrar os resultados em um vídeo (disponível em um ou dois dias) em nosso canal DobitaobyteBrasil no Youtube. Se não é inscrito, inscreva-se e clique no sininho para receber notificações!