Eu quero usar o Ubuntu e, de preferência, pacotes padrão como o ffmpeg para girar um arquivo de vídeo .3gp em 90 graus em qualquer direção. De preferência uma linha de comando ou script Python.
Como eu posso fazer isso?
Eu quero usar o Ubuntu e, de preferência, pacotes padrão como o ffmpeg para girar um arquivo de vídeo .3gp em 90 graus em qualquer direção. De preferência uma linha de comando ou script Python.
Como eu posso fazer isso?
Respostas:
usando o VLC , você pode girar o vídeo em Ferramentas >> Preferências ...
E selecione "Todos" para as configurações do programa. Então vá para: Vídeo >> Filtros >> Girar
Depois de definir o grau desejado, você pode girar em Ferramentas> Efeitos e filtros> Efeitos de vídeo> Geometria.
o que eu testei é o mp4, mas acredito que o VLC também suporta 3gp. espero que isto ajude. :)
Na linha de comando, com ffmpeg:
ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
transpose=1
girará o vídeo 90 graus no sentido horário; para girar no sentido anti-horário, use transpose=2
. Consulte a documentação de transposição para obter mais informações.
-metadata:s:v rotate=""
removerá qualquer metadado de rotação de fluxo de vídeo existente; caso contrário, ffmpeg
irá copiá-lo, o que pode fazer com que seu player aplique rotação indesejada adicional.
Para obter informações sobre as configurações de codificação de vídeo aqui, consulte este guia de codificação H.264 e o guia de codificação AAC, se desejar recodificar o áudio em vez de copiar em fluxo .
O Avidemux deve ser capaz de fazer isso.
Faça Video->Filters->Rotate(x degrees)->Close
entãoFile->Save->Save Video
Resolvi um problema semelhante - eu tinha um .MOV que foi levado de cabeça para baixo (ou seja, girado 180 graus) que eu queria acertar.
No meu sistema Ubuntu 14.04, executei avconv
essencialmente as mesmas opções de linha de comando fornecidas ffmpeg
na resposta do evilsoup . Aparentemente, ele não suporta uma transpose
opção para rotação de 180 graus, então eu fiz o ângulo de 90 graus no sentido horário (ou seja transpose=1
) duas vezes.
Quando tentei opções mínimas, recebi uma mensagem no sentido de que:
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it.
e o arquivo de saída tinha tamanho zero, então eu adicionei o -strict experimental
.
As linhas de comando que funcionaram foram:
avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV
O resultado foi satisfatório, com efeitos colaterais inexplicáveis:
Não que eu esteja reclamando: são desejáveis; Eu simplesmente não entendo por que eles surgiram ...
avconv
linhas de comando na íntegra, e não apenas as diferenças do ffmpeg
comando. Sua resposta deve ser auto-suficiente; a outra resposta pode desaparecer. (3) boa sorte!
-filter:v transpose=1 …
.
Houve algumas alterações no libav desde o momento em que esta pergunta foi originalmente respondida. Na tentativa de manter isso atual e útil, fornecerei o seguinte:
Você pode fazer isso com versões recentes ffmpeg
e avconv
usando o filtro de vídeo de transposição.
avconv -i inputfile -vf transpose=clock outputfile
para rotação no sentido horário.
em ffmpeg a sintaxe é a mesma.
ffmpeg -i inputfile -vf 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 horário contador de substituir relógio com cclock
Aqui está um trecho da documentação:
‘cclock_flip’
Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’
Rotate by 90 degrees clockwise.
‘cclock’
Rotate by 90 degrees counterclockwise.
‘clock_flip’
Rotate by 90 degrees clockwise and vertically flip.
Fontes:
https://libav.org/avconv.html#transpose
https://ffmpeg.org/ffmpeg-filters.html#transpose-1
Testando no Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04
ffmpeg
trabalhou para mim (não tentar avconv
)
ffmpef
incluem muitos argumentos desnecessários, obrigado!