ffmpeg вращение исходного видео и наложение изображений

1437
Drime

У меня возникли некоторые проблемы с этим, у меня есть исходное видео, которое было записано с ног на голову. Мне нужно повернуть это видео и наложить поверх него несколько прозрачных файлов PNG. Я использую эту команду:

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

Приведенная выше команда работает отлично, но, очевидно, держит мое исходное видео вверх ногами, я знаю, что вращение может быть достигнуто с помощью -vf vflip: hflip, но это, похоже, не работает. Есть ли способ достичь этой цели или это единственная возможность перевернуть исходное видео и применить оверлей во втором запуске, т.е. сначала выполнить, а ffmpeg -i Upside_Down.mov -vf vflip:hflipзатем выполнить код, указанный выше, по завершении?

3

1 ответ на вопрос

3
LordNeckbeard

You just need to create a filterchain consisting of your additional filters:

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 
  • I like to explicitly label the filter input and output link labels so you know exactly what is going on instead of relying on possibly unknown defaults. [0:v] refers to the video stream(s) of the first input (Upside_Down.mov), and [1:v] refers to the video stream(s) of the second input (overlays_%d.png).

  • I added -c:a copy to stream copy the audio instead of re-encoding it, but I'm unsure if Upside_Down.mov contains audio. This is one reason why you should always include the complete ffmpeg console output from your command.

  • Since changing the pixel format can be performed via filtering I changed from -pix_fmt to the format video filter so any potential conversion can occur exactly when you want it to. I did the same with -r and the fps video filter (but I'm not sure why you potentially change the frame rate: the console output would have been useful).

  • Also see: How to flip a video 180° (vertical/upside down) with FFmpeg?

Похожие вопросы