FFmpeg бок о бок видео (широкоэкранный) и воспроизведение каждого видео по одному - PullRequest
0 голосов
/ 06 мая 2020

новичок в ffmpeg, я уже сделал это, чтобы объединить 3 или более видео, которые у меня есть, в одно видео:

ffmpeg -i left.mp4 -i center.mp4 -i right.mp4 -filter_complex "[0:v:0][1:v:0][2:v:0]hstack=inputs=3" -c:v libx264 -tune film -crf 16 -b:a 256k output.mp4

Теперь у меня проблемы с тем, что видео имеют разное время воспроизведения ( в секундах) то, что я хочу достичь, - это расположить их все рядом (работая с приведенным выше кодом), а затем сначала воспроизвести left.mp4 (со своим собственным звуком), когда будет выполнено воспроизведение center.mp4 (с собственным звуком), а когда тоже сделано, правильно .mp4 воспроизводится (имеет собственный звук), а видео окончено.

Может кто-нибудь просветить меня, как этого добиться? Спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Добавьте фильтры tpad и concat . Пример, где каждый ввод длится 10 секунд:

ffmpeg -i left.mp4 -i center.mp4 -i right.mp4 -filter_complex "[1:v]tpad=start_duration=10:start_mode=clone[v1];[2:v]tpad=start_duration=20:start_mode=clone[v2];[0:v:0][v1][v2]hstack=inputs=3,format=yuv420p[v];[0:a][1:a][2:a]concat=n=3:v=0:a=1[a]" -map "[v]" -map "[a]" -c:v libx264 -tune film -crf 16 -b:a 256k -movflags +faststart output.mp4

При этом первый кадр каждого видео фиксируется до его начала. Если вам нужен цвет solid, замените start_mode=clone на start_mode=add.

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