ffmpeg girando o vídeo de origem e aplicando imagens de sobreposição

3

Estou tendo alguns problemas com isso, eu tenho um vídeo de origem que foi gravado de cabeça para baixo. Eu preciso que este vídeo seja girado e tenha alguns arquivos PNG transparentes sobrepostos a ele. Estou usando este comando:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -r 30 -pix_fmt yuv420p -filter_complex "overlay=0:0" output.mkv

O comando acima funciona perfeitamente, mas mantém meu vídeo de origem de cabeça para baixo, obviamente, eu sei rotação pode ser alcançada por -vf vflip: hflip, mas isso não parece funcionar. Existe uma maneira de atingir esse objetivo ou é a única opção para virar o vídeo de origem e aplicar a sobreposição em uma segunda execução, ou seja, primeiro fazer ffmpeg -i Upside_Down.mov -vf vflip:hflip executar o código acima após a conclusão?

    
por Drime 22.01.2014 / 17:45

1 resposta

3

Você só precisa criar um filterchain que consiste em seus filtros adicionais:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -c:a copy -filter_complex "[0:v][1:v]overlay,vflip,hflip,format=yuv420p[out]" -map "[out]" -map 0:a output.mkv
  • Gosto de rotular explicitamente os rótulos de link de entrada e saída do filtro para que você saiba exatamente o que está acontecendo, em vez de confiar em padrões possivelmente desconhecidos. [0:v] refere-se ao (s) fluxo (s) de vídeo da primeira entrada ( Upside_Down.mov ) e [1:v] refere-se ao (s) fluxo (s) de vídeo da segunda entrada ( overlays_%d.png ).

  • Adicionei -c:a copy a cópia de fluxo do áudio em vez de recodificá-lo, mas Não tenho certeza se Upside_Down.mov contém áudio. Esse é um dos motivos pelos quais você deve sempre incluir a saída completa do console ffmpeg do seu comando.

  • Como a alteração do formato de pixel pode ser realizada por meio de filtragem, alterei de -pix_fmt para format video filter então qualquer conversão potencial pode ocorrer exatamente quando você quiser. Eu fiz o mesmo com -r e o fps filtro de vídeo (mas não tenho certeza por que você potencialmente altera a taxa de quadros: a saída do console teria sido útil).

  • Veja também: Como virar um vídeo em 180 ° (vertical / de cabeça para baixo) com o FFmpeg?

por 22.01.2014 / 21:05