Se você possui vários vídeos, quer juntá-los, mas alguns estão com a orientação diferente, veja como girar vídeos usando o FFMpeg na linha de comando.
Decidi juntar os vídeos tirados do meu smartphone e criar um único arquivo semelhante a um filme com áudio. Mas o problema é que alguns vídeos são gravados no modo retrato e outros no modo paisagem.
Antes de ingressar nos arquivos, pense que seria melhor alinhar todos os arquivos de vídeo na mesma orientação (ou seja, no modo).
Obviamente, existem muitas ferramentas baseadas em interface gráfica e players de mídia, como Smplayer, VLC, que possuem um recurso interno para girar vídeos. Mas você prefere um utilitário de linha de comando.
Para isso, a melhor opção será usar o FFMpeg, que permite executar várias operações, como converter arquivos para outro formato, cortar, dividir e juntar arquivos e muitos outros.
Mas antes, verifique se você possui a versão mais recente do FFMpeg instalada no seu sistema, digitando o comando ffmpeg
no terminal.
O FFMpeg está disponível nos repositórios padrão de muitos sistemas operacionais Linux populares, portanto a instalação não será um grande problema.
E se você ainda não instalou o FFMpeg no seu sistema Linux, consulte os seguintes 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)
Depois disso, se você quiser rotacionar vídeos usando o FFMpeg, siga o procedimento abaixo.
Como instalar o programa no Ubuntu e seus derivados
Antes de começar, saiba que o FFMpeg possui um recurso chamado “Transpose” que é usado para girar vídeos.
Usando esse recurso, podemos facilmente girar os vídeos no sentido horário e anti-horário, além de girá-los na vertical e na horizontal.
Por exemplo, o seguinte comando girará o vídeo fornecido 90 graus no sentido horário (input.mp4 é o nome do arquivo de entrada , e output.mp4 o nome do arquivo a ser criado):
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
Ou, use este comando:
ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4
Aqui, o parâmetro transpose = 1 instrui o FFMpeg a transpor o vídeo fornecido 90 graus no sentido horário.
Abaixo está a lista de parâmetros disponíveis para o recurso de transposição.
0 – Gire 90 graus no sentido anti-horário e gire na vertical. Esse é o padrão.
1 – Gire 90 graus no sentido horário.
2 – Gire 90 graus no sentido anti-horário.
3 – Gire 90 graus no sentido horário e gire na vertical.
Para girar vídeos 180 graus no sentido horário, é necessário mencionar o parâmetro de transposição duas vezes, como abaixo.
ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
Os comandos acima recodificam as partes de áudio e vídeo do arquivo de vídeo fornecido.
Se você não deseja recodificar o vídeo e alterar a rotação apenas nos metadados, use este comando:
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
Ainda melhor, você pode copiar todos os metadados globais (como data, detalhes da câmera) do arquivo de entrada para o arquivo de saída, como abaixo:
ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4
Observe que ele não funciona em alguns players que não conseguem lidar com metadados de rotação.
Por exemplo: Alterando a orientação do vídeo apenas em metadados e o reproduzindo no Smplayer, a reprodução continuou exeibindo o vídeo na orientação anterior. Mas funcionou no Gnome media player! Não sei porque.
Portanto, se a orientação do vídeo não funcionou, talvez seja necessário recodificá-la como mostrado no primeiro comando.
Indo além do como girar vídeos usando o FFMpeg na linha de comando
Se quiser conhecer melhor as opções do ffmpeg, consulte a documentação dele.