Gire um arquivo de vídeo 90 graus usando o Ubuntu

15

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 posso fazer isso?

    
por justinhj 10.04.2010 / 09:26

5 respostas

7

usando VLC , você pode girar o vídeo indo para Ferramentas > > Preferências ...

Selecione "All" para as configurações do show. Então vá para: Vídeo > > Filtros > > Rodar

Depois de definir o grau desejado, você pode girar em Ferramentas> > Efeitos e filtros > Efeitos de vídeo > Geometria .. .

oquetesteiéomp4,masacreditoqueo VLC também é compatível com 3gp. espero que isto ajude. :)

    
por 10.04.2010 / 11:28
14

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 da transposição para obter mais informações.

  • -metadata:s:v rotate="" removerá quaisquer metadados de rotação de fluxo de vídeo existentes; caso contrário, ffmpeg irá copiá-lo, o que pode fazer com que o seu jogador 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 você quiser recodificar o áudio em vez de cópia do fluxo de dados .

por 07.02.2013 / 18:03
4

O Avidemux deve ser capaz de fazer isso.

Do Video->Filters->Rotate(x degrees)->Close then File->Save->Save Video

    
por 10.04.2010 / 11:16
2

Eu resolvi um problema semelhante - eu tinha um .MOV que foi colocado de cabeça para baixo (ou seja, girado em 180 graus) e eu queria acertar.

No meu sistema Ubuntu 14.04, executei avconv com essencialmente as mesmas opções de linha de comando fornecidas para ffmpeg em resposta do evilsoup . Aparentemente, ele não suporta uma opção transpose para rotação de 180 graus, então fiz o 90-degree no sentido horário (ou seja, transpose=1 ) duas vezes.

Quando tentei opções mínimas, recebi uma mensagem dizendo 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 tem comprimento 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:

  1. O arquivo intermediário era menor que o original em ~ 14%.
  2. O arquivo de resultados foi menor que o intermediário em ~ 18% e menor que o original em quase 30%.
  3. O arquivo de resultados mostra a miniatura, enquanto o original e o intermediário mostram apenas um ícone genérico.

Não que eu esteja reclamando: isso é desejável; Eu não entendo porque eles surgiram ...

    
por 08.06.2015 / 04:42
0

Houve algumas alterações na libav desde o momento em que essa pergunta foi originalmente respondida. Na tentativa de manter isso atualizado e útil, fornecerei o seguinte:

Você pode fazer isso com versões recentes de ffmpeg e avconv usando o comando

avconv -i inputfile -vf transpose=clock outputfile

para rotação no sentido horário.

no ffmpeg, a sintaxe é a mesma.

ffmpeg -i inputfile -vf transpose=clock outputfile

onde inputfile é seu arquivo de entrada de vídeo suportado e outputfile é o arquivo de saída desejado.

Para rotação anti-horária, substitua relógio por cclock

Fontes:

link

Teste no Ubuntu 14.04.5 LTS

    
por 27.02.2017 / 17:50