Descobri com as duas respostas existentes que elas funcionam com os arquivos MP4 de uma câmera Hero 3, mas somente depois que adicionei -c:acópia ao comando (logo antes do nome do arquivo de saída). Também descobri que a segunda versão era de qualidade indistinguível, mas cerca de 50% mais rápida que a versão de conversão encadeada.
Simon
Respostas:
31
É possível usando o transposefiltro de vídeo. Você não pode girar 180 graus, mas pode girar 90 graus e encadear o filtro.
Sim, mas você precisará adicionar algumas opções adicionais ao seu comando para que ele funcione corretamente. Transpose e vflip / hflip devem funcionar, mas se você não disser ao avconv mais detalhes sobre o que deseja, provavelmente obterá resultados de qualidade muito baixa:
Observe a -crfopção. Isso define a qualidade da saída. Vai de 0 (sem perdas) para cima logaritmicamente. Você provavelmente desejará um valor entre 19 e 25 na maioria dos casos. -presetdefine a velocidade da codificação, "lenta", "média" ou "rápida". O Slow deve ter tamanhos de arquivo menores, com uma troca óbvia. Você deve ajustar -codec:vpara corresponder ao original. Se você não definir essas opções, obterá os padrões, que não funcionam bem ao virar o vídeo do iPhone.
Para avconv ou ffmpeg Abaixo de 14.04 ou posterior
Houve algumas alterações na documentação do libav desde a resposta da qualidade @phoibos a esta pergunta. Você pode girar um vídeo 180 graus, evitando inverter totalmente, encadeando 2 comandos de 90 graus juntos (separados por vírgula). Consegui isso com o comando
-c:a
cópia ao comando (logo antes do nome do arquivo de saída). Também descobri que a segunda versão era de qualidade indistinguível, mas cerca de 50% mais rápida que a versão de conversão encadeada.Respostas:
É possível usando o
transpose
filtro de vídeo. Você não pode girar 180 graus, mas pode girar 90 graus e encadear o filtro.Veja
transpose
na página deavconv
manual: http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.htmlfonte
Sim, mas você precisará adicionar algumas opções adicionais ao seu comando para que ele funcione corretamente. Transpose e vflip / hflip devem funcionar, mas se você não disser ao avconv mais detalhes sobre o que deseja, provavelmente obterá resultados de qualidade muito baixa:
Observe a
-crf
opção. Isso define a qualidade da saída. Vai de 0 (sem perdas) para cima logaritmicamente. Você provavelmente desejará um valor entre 19 e 25 na maioria dos casos.-preset
define a velocidade da codificação, "lenta", "média" ou "rápida". O Slow deve ter tamanhos de arquivo menores, com uma troca óbvia. Você deve ajustar-codec:v
para corresponder ao original. Se você não definir essas opções, obterá os padrões, que não funcionam bem ao virar o vídeo do iPhone.fonte
Unrecognized option 'preset' Failed to set value 'slow' for option 'preset'
Isso é o que eu tenho #Unknown encoder 'libx264'
apt-get install libavcodec-extra-53
resolveuUm método adicional com o avconv é usar os filtros vflip e hflip. Deve executar mais rápido e talvez com melhor qualidade:
fonte
Eu fiz isso:
Vídeo em Full HD, ótimos resultados com perda de qualidade não perceptível
fonte
Para avconv ou ffmpeg Abaixo de 14.04 ou posterior
Houve algumas alterações na documentação do libav desde a resposta da qualidade @phoibos a esta pergunta. Você pode girar um vídeo 180 graus, evitando inverter totalmente, encadeando 2 comandos de 90 graus juntos (separados por vírgula). Consegui isso com o comando
avconv -i arquivo de entrada -vf transpose = clock, transpose = clock outputfile
para rotação no sentido horário.
em ffmpeg a sintaxe é a mesma.
ffmpeg -i arquivo de entrada -vf transpose = clock, transpose = clock outputfile
onde inputfile é o arquivo de vídeo de entrada suportado e outputfile é o arquivo de saída desejado.
Para rotação no sentido anti-horário, substitua o relógio pelo relógio
Fontes:
https://libav.org/avconv.html#transpose
Testando no Ubuntu 14.04.5 e 16.04 LTS
fonte