ffmpeg мультиплексирует 4 видео в 1 и проблемы с drawtext

У меня есть четыре видео, которые я хотел бы объединить в одно видео и поместить текст в верхний левый угол каждого квадранта. Я могу успешно мультиплексировать видео таким образом, чтобы vid1 был в верхнем левом углу, vid2 — в верхнем правом, vid3 — в нижнем левом, а vid4 — в нижнем правом.

Однако я не могу вывести даже простой текст с помощью команды drawtext.

Я хотел бы указать имя исходного видеофайла в каждом квадранте.

На данный момент моя команда такова:

ffmpeg.exe -i "vid1.mp4" -i "vid2.mp4" -i "vid3.mp4" -i "vid4.mp4"  -filter_complex "[0:0]scale=iw/2:ih/2,pad=iw*2:ih*2[a];[1:0]scale=iw/2:ih/2[b];[2:0]scale=iw/2:ih/2[c];[3:0]scale=iw/2:ih/2[d];[a][b]overlay=w[x];[x][c]overlay=0:h[y];[y][d]overlay=w:h" -vf [0]drawtext=fontsize=12:fontcolor=white:fontfile="/Windows/Fonts/arial.ttf":text="vid1":x=35:y=35[out] "4UP_Video.mov"

Если я удалю команду drawtext, я получу тот же результат: хорошее видео 4-Up, но без текста. Я предполагаю, что для других квадрантов я бы добавил еще одну команду drawtext с входным потоком #, например.

[1]drawtext ...

Любая помощь приветствуется!


person user1895639    schedule 11.12.2012    source источник


Ответы (1)


Добавьте фильтры drawtext в текущую цепочку фильтров вместо создания новой.

ffmpeg.exe -i vid1.mp4 -i vid2.mp4 -i vid3.mp4 -i vid4.mp4 -filter_complex "[0:0]scale=iw/2:ih/2,pad=iw*2:ih*2[a];[1:0]scale=iw/2:ih/2[b];[2:0]scale=iw/2:ih/2[c];[3:0]scale=iw/2:ih/2[d];[a][b]overlay=w[x];[x][c]overlay=0:h[y];[y][d]overlay=w:h,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid1':x=35:y=35,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid2':x=(w/2)+35:y=35,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid3':x=35:y=(h/2)+35,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid4':x=(w/2)+35:y=(h/2)+35" 4UP_Video.mov

Пожалуйста, задавайте вопросы об использовании ffmpeg в будущем на superuser.com. Stack Overflow предназначен только для программирования.

person llogan    schedule 11.12.2012