Os arquivos MP4 podem ter um sinalizador rotate
, que informa ao player para girar o vídeo durante a reprodução, sem alterar a maneira como o fluxo de bits do vídeo real é codificado e orientado. O VLC suporta este flag desde a versão 2.2.0 .
A questão é o que você quer fazer com o vídeo. Você basicamente tem duas escolhas:
- Mantenha-o como está e remova o sinalizador de rotação. Se você quiser editar o vídeo mais tarde, abra-o em qualquer programa que você use para fazer isso. Se você quiser jogá-lo, escolha um player que suporte a rotação em tempo real.
- Gire e transcodifique o vídeo para que ele tenha uma orientação adequada. Isso irá degradar a qualidade do vídeo um pouco.
Você pode fazer tudo isso com ffmpeg
. Faça o download de uma versão estática do seu sistema operacional e extraia-a para um diretório, por exemplo, para que o arquivo executável ffmpeg
esteja em ~/Downloads
. Em seguida, abra uma janela de terminal e navegue até o diretório indicado:
cd ~/Downloads
./ffmpeg
Isso deve executar o binário ffmpeg
. Para mais informações, leia nosso artigo no blog sobre ffmpeg
.
Aqui estão os comandos reais que você pode usar. Se você quiser manter o fluxo de bits real do vídeo e remover o sinalizador de rotação, só precisará remover os metadados do primeiro fluxo de vídeo v:0
e copiar os fluxos de bits de vídeo e áudio ( -c copy
):
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
Se você quiser transcodificar o vídeo, invertendo-o em 180 °, precisará especificar um codificador de vídeo (aqui, libx264
) e o filtro de inversão. O fluxo de áudio será copiado.
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -filter:v "hflip,vflip" -c:a copy output.mp4
Você pode ajustar o CRF ( Fator de taxa constante ) para alterar a qualidade do vídeo. Os valores são entre 18 e 28, dependendo da sua qualidade de entrada. Lower significa melhor qualidade, por isso, se o seu vídeo parecer pior do que o original, tente um valor de CRF mais baixo.