Se você quer padronizar seus vídeos ou diversificá-lo para diferentes visualizações, veja como alterar a resolução de um vídeo usando ffmpeg.
Alterar a resolução de um arquivo de vídeo será uma das operações mais comuns que executaremos ao trabalhar com arquivos de vídeo e, como tal, o ffmpeg poderá fazê-lo perfeitamente.
Há várias razões pelas quais queremos alterar a resolução de um arquivo de vídeo, por exemplo:
- Para reduzir o tamanho do vídeo. Isso é possível reduzindo a resolução do vídeo.Se tomarmos, por exemplo, um vídeo em HD (1920×1080 pixels), mas sabemos que nunca veremos em uma tela que suporta uma resolução mais alta do que 1024×768, podemos reduzir a resolução do vídeo para se adaptar a essa nova resolução, economizando bastante armazenamento espaço e, se usado na Internet, economizando largura de banda também.
- Muitas vezes a resolução é alterada nos arquivos de vídeo para padronizar seu formato. Ou seja, se tivermos vários vídeos e quisermos todos na mesma resolução, teremos que passar por esse processo de alteração da resolução.
No desenvolvimento de sites modernos, é bastante útil ter os vídeos em várias resoluções, dependendo de onde eles aparecem. Podemos desenvolver sites com designs responsivos nos quais o vídeo mais adequado para o usuário é reproduzido.
Por exemplo, se tivermos um vídeo em vários formatos – digamos 1920×1080, 1280×720 e 640×360 – podemos projetar um site responsivo que faça com que os visitantes reproduzam a resolução de vídeo adequada, dependendo da largura de banda do navegador do visitante (lembre-se de que os usuários móveis geralmente pagam para dados transferidos, para que seja melhor transferir o mínimo de tráfego possível)
Enfim, para alterar a resolução de um vídeo usaremos o ffmpeg. Esse método é uma das melhores maneiras de redimensionar um arquivo de vídeo em sistemas Linux (quase qualquer distribuição) e uma excelente alternativa para usuários de Windows e Mac.
E se você ainda não tem o ffmpeg instalado, para instalar a versão mais recente do FFmpeg nas principais distribuições Linux, use um desses tutoriais:
Como instalar o framework multimídia FFmpeg no Linux via Snap
Como instalar a versão mais recente do FFmpeg no Linux Debian, Ubuntu e Fedora
Como codificar vídeo H.265 usando FFmpeg no Linux (4K e 8K)
Como alterar a resolução de um vídeo usando ffmpeg
Para alterar a resolução de um vídeo usando ffmpeg, primeiramente, abra um terminal.
Por exemplo, se tivermos um vídeo em vários formatos – digamos 1920×1080, 1280×720 e 640×360 – podemos projetar um site responsivo que faça com que os visitantes reproduzam a resolução de vídeo adequada, dependendo da largura de banda do navegador do visitante (lembre-se de que os usuários móveis geralmente pagam para dados transferidos, para que seja melhor transferir o mínimo de tráfego possível)
Neste exemplo, reduziremos a resolução de um vídeo no formato HD (1920×1080 pixels) para 640×360 (esta é uma configuração bastante usada para a proporção de aspecto 16: 9):
ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner
Só é necessário indicar o filtro de vídeo em escala com a nova resolução desejada (640:360) com -vf scale=640:360. Considerar:
Podemos indicar qualquer resolução que desejarmos, mas o vídeo resultante sempre terá a mesma proporção. Ou seja, não distorcerá as imagens; se o vídeo estiver na proporção de 16:9, manterá o vídeo na proporção de 16:9.
O programa ajustará o vídeo resultante para que ele caiba na resolução que fornecemos.
Ao alterar a resolução, o vídeo deve passar pelo processo de codificação outra vez, para que o processo seja lento, dependendo do formato de saída e do codec que você está usando para a saída.
Não mencionamos isso, mas na maioria das vezes não faz sentido transformar um vídeo em uma resolução mais alta, porque não pode haver nenhuma melhoria na qualidade do vídeo.
Alterando a proporção do vídeo com ffmpeg
Se quisermos mudar a aparência do vídeo, sabendo que a imagem aparecerá distorcida, podemos usar um filtro adicional “setdar”.
Imagine que, no caso anterior, queremos alterar a proporção de 16:9 para 4:3 e, portanto, o vídeo com uma resolução de proporção de 4:3, que neste caso será 640×480. O comando ffmpeg para fazer essa transformação seria:
ffmpeg -i video_1920.mp4 -vf scale=640:480,setdar=4:3 video_640x480.mp4 -hide_banner
A saída de vídeo obtida neste caso, video_640x480.mp4, altera a aparência do vídeo original e distorce um pouco as imagens, mas obtém a resolução que queremos com um novo visual.
Se, por outro lado, não queremos confiar no uso de uma proporção que possa ser “mais normal” (4:3, 16:9) ou se queremos fazer alterações em outras resoluções com uma proporção indefinida e estamos sem medo de possíveis deformações de imagens que aparecerão, podemos usar o filtro “setsar” que evitará que você tenha que manter essas proporções.
Dessa forma, podemos transformar o vídeo anterior em uma resolução de 200×400, por exemplo, com o seguinte comando:
ffmpeg -i video_1920.mp4 -vf scale=200:400,setsar=1:1 video_200x400.mp4 -hide_banner
O resultado na resolução 200×400 da resolução 1920×1080 faz com que a saída de vídeo tenha uma aparência distorcida.
Exemplos de modificar a resolução de um vídeo usando ffmpeg
Vamos ver alguns exemplos de redimensionamento de vídeo usando ffmpeg. Temos um vídeo original com uma resolução de 320×180 pixels.
Como vimos anteriormente, podemos redimensionar o vídeo para metade do tamanho original. Estamos redimensionando-o de uma resolução de 320×180 pixels para uma resolução de 160×90 pixels com o seguinte comando:
ffmpeg -i video_320x180.mp4 -vf scale=160:90 video_180x90.mp4 -hide_banner
O vídeo passou de um tamanho de 1,18 MB para um vídeo de 354 KB (um quarto). Observe que o vídeo é menor, mas podemos dizer ao navegador para aumentá-lo com alguma perda de qualidade em comparação com o original.
Agora vamos alterar a proporção original do vídeo de 16:9 para 4:3. Para fazer isso, estamos redimensionando o vídeo de 320×180 para 320×240 com o seguinte comando:
ffmpeg -i video_320x180.mp4 -vf scale=320:240,setdar=4:3 video_320x240.mp4 -hide_banner
E como resultado você poderá ver que as imagens aparecem distorcidas:
E agora, finalmente, redimensionaremos o vídeo como se ele coubesse em uma tela vertical, para redimensionar de 320×180 pixels para 180×320 pixels. Aqui está o comando que fará a tarefa:
ffmpeg -i video_320x180.mp4 -vf scale=180:320,setsar=1:1 video_180x320.mp4 -hide_banner
Observe que, nesses vídeos, também incluí uma fonte no formato webm para máxima compatibilidade. Eu fiz isso dessa maneira, se o seu navegador não puder trabalhar diretamente com arquivos mp4, você poderá ver os resultados em um arquivo webm semelhante.