FFMPEG объединяет несколько видео в сетке - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь присоединиться к серии видео в сетке. Вот команда, которую я использовал для 3 видео.

ffmpeg -y -i /mnt/labserver/vid1.mp4 -i /mnt/labserver/vid2.mp4 -i /mnt/labserver/vid3.mp4 -filter_complex "color=s=360x360:c=Black [nbase];[0:v]setpts=PTS-STARTPTS,scale=180x180[b0];[1:v]setpts=PTS-STARTPTS,scale=180x180[b1];[nbase][b0]overlay=shortest=1:x=0:y=180[temp0];[temp0][b1]overlay=repeatlast=1:x=0:y=360[temp1];[temp1][b2]overlay=repeatlast=1:x=0:y=540[temp2]" -c:v libx264 -pix_fmt yuv420p /mnt/labserver/videos_joined.mp4

Я получаю следующую ошибку

Invalid stream specifier: b2

Насколько я помню, это ранее работало для меня. Может кто-нибудь сказать мне, что здесь может быть не так и, возможно, ошибка зависит от версии FFmpeg?

Спасибо !!

1 Ответ

1 голос
/ 31 марта 2020

Вы получаете сообщение об ошибке, поскольку в последовательности фильтров нет b2, который использовался в качестве промежуточного выхода.

Возможно, вы имели в виду использование [2:v] вместо [b2]:

ffmpeg -y -i vid1.mp4 -i vid2.mp4 -i vid3.mp4 -filter_complex "color=s=360x360:c=Black [nbase];[0:v]setpts=PTS-STARTPTS,scale=180x180[b0];[1:v]setpts=PTS-STARTPTS,scale=180x180[b1];[nbase][b0]overlay=shortest=1:x=0:y=180[temp0];[temp0][b1]overlay=repeatlast=1:x=0:y=360[temp1];[temp1][2:v]overlay=repeatlast=1:x=0:y=540[temp2]" -map "[temp2]" -c:v libx264 -pix_fmt yuv420p videos_joined.mp4

Я также добавил -map "[temp2]" для отображения temp2 в качестве вывода.

Я не получаю сетку в качестве выхода ...

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