FFMPEG: вырезать, добавить водяной знак и объединить - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть 2 видеофайла (input.mp4, leadout.mp4) и изображение (watermark.png).Мне нужно сократить первое видео до 54 секунд, добавить водяной знак, а затем объединить его со вторым видео.Я выполнял этот вызов ffmpeg 3 раза:

ffmpeg -ss 0 -i input.mp4 -t 54 -c copy temp.mp4

ffmpeg -i temp.mp4 -i watermark.png -pix_fmt yuv420p -filter_complex "[0:v][1:v] overlay=0:0" -vcodec libx264 -crf 27 -preset ultrafast -strict -2 temp2.mp4

ffmpeg -i temp2.mp4 -i leadout.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -vcodec libx264 -crf 27 -preset ultrafast -strict -2 output.mp4

Это очень неэффективно и требует много времени, как вы можете видеть.Есть ли способ использовать filter_complex, чтобы выполнить эти 3 действия одновременно?Заранее спасибо!

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете объединить все три команды в одну:

ffmpeg -t 54 -i input.mp4 -i watermark.png -i leadout.mp4 -filter_complex "[0:v][1:v]overlay[v0];[v0][0:a][2:v][2:a]concat=n=2:v=1:a=1[vv][a];[vv]format=yuv420p[v]" -map "[v]" -map "[a]" -c:v libx264 -crf 27 -preset ultrafast -movflags +faststart output.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...