ffmpeg как разместить неподвижное изображение поверх полного vstack? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь создать простой видеоредактор и использую ffmpeg на заднем плане. Мне нужно как можно больше разных фильтров / свойств в одной команде, но мне не удается поместить неподвижное изображение перед всем остальным (первый кадр). Я хочу vstack после того, как изображение показывается в видео.

Я пробовал много разных команд и т. Д., И большую часть времени видео рендерится, но изображение, включенное в vstack, или видео неНачните с количества секунд, в течение которых я хочу показать неподвижное изображение.

ffmpeg -hide_banner -i "header.jpg" -i "video.mp4" -i "footer" -i "still-image.jpg" -filter_complex "[1][3]overlay=0:0:enable='between(t,0,4)';vstack=inputs=3" -pix_fmt yuv420p -c:a copy -y output.mp4

В большинстве случаев я не получаю сообщение об ошибке. Он просто не делает то, что ожидается. Приведенная выше команда является одной из многих, которые я пробовал, но в основном то, что я хочу. Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 17 октября 2019

Есть несколько способов сделать это. Этот метод задерживает vstack и перекрывает still-image.jpg во время задержки.

ffmpeg -i "header.jpg" -i "video.mp4" -i "footer.jpg" -i "still-image.jpg" -filter_complex "[0][1][2]vstack=inputs=3[v0];[v0]tpad=start_duration=4[bg];[bg][3]overlay=(W-w)/2:(H-h)/2:enable='between(t,0,4)',format=yuv420p[v];[1:a]adelay=4s|4s[a]" -map "[v]" -map "[a]" output.mp4

Это предполагает, что ваш ffmpeg достаточно новый, чтобы использовать 4s в adelay. В противном случае используйте вместо этого миллисекунды (4000|4000).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...