3

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

3

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

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?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .