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

У меня возникли некоторые проблемы с этим, у меня есть исходное видео, которое было записано с ног на голову. Мне нужно повернуть это видео и наложить поверх него несколько прозрачных файлов 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 затем запустите код выше по завершении?

1 ответ

Вам просто нужно создать цепочку фильтров, состоящую из ваших дополнительных фильтров:

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
  • Мне нравится явно маркировать метки входных и выходных ссылок фильтра, чтобы вы точно знали, что происходит, вместо того, чтобы полагаться на неизвестные значения по умолчанию. [0:v] относится к видеопотоку (ам) первого входа (Upside_Down.mov), а также [1:v] относится к видеопотоку (ам) второго входа (overlays_%d.png).

  • я добавил -c:a copy потоковое копирование аудио вместо перекодирования, но я не уверен, если Upside_Down.mov содержит аудио Это одна из причин, почему вы должны всегда включать полный ffmpeg консольный вывод из вашей команды.

  • Так как изменение формата пикселя может быть выполнено с помощью фильтрации, я изменил с -pix_fmt к format видео фильтр, поэтому любое потенциальное преобразование может произойти именно тогда, когда вы этого хотите. Я сделал то же самое с -r и fps видеофильтр (но я не уверен, почему вы потенциально можете изменить частоту кадров: вывод на консоль был бы полезен).

  • См. Также: Как перевернуть видео на 180° (по вертикали / вверх ногами) с помощью FFmpeg?

Другие вопросы по тегам