Наложение ffmpeg на несколько выходов

Я использую ffmpeg 3.4.1 для перекодирования видеофайла высокого разрешения в несколько более низких разрешений с логотипом в углу:

ffmpeg -i "test.mxf" -i "logo.png" ^
-filter_complex "[0:v][1:v] overlay" ^
-s 640x480 -c:v libx264 -b:v 1000K -c:a aac -b:a 96k "test.640x480K.1000K.logo.mp4" ^
-s 1280x720 -c:v libx264 -b:v 2200K -c:a aac -b:a 192k "test.1280x720K.2200K.logo.mp4"

Но таким образом в первом выходном файле есть только логотип.

Я попытался использовать карту, это дает мне логотипы в обоих выходных файлах, но затем звук исчезает:

ffmpeg -i "test.mxf" -i "logo.png" ^
-filter_complex "[0:v][1:v] overlay [output1]; [0:v][1:v] overlay [output2]" ^
-map [output1] -s 640x480 -c:v libx264 -b:v 1000K -c:a aac -b:a 96k "test.640x480K.1000K.logo.mp4" ^
-map [output2] -s 1280x720 -c:v libx264 -b:v 2200K -c:a aac -b:a 192k "test.1280x720K.2200K.logo.mp4"

Что я делаю неправильно?

Я хотел бы сделать 5 выводов за один раз, чтобы избежать запуска ffmpeg 5 раз подряд. Это должно быть более эффективно / быстрее, чтобы сделать это за один раз.

1 ответ

Решение

Использование

ffmpeg -i "test.mxf" -i "logo.png" ^
-filter_complex "[0:v][1:v] overlay,split=2[a][b]" ^
-map [a] -map 0:a -s 640x480 -c:v libx264 -b:v 1000K -c:a aac -b:a 96k "test.640x480K.1000K.logo.mp4" ^
-map [b] -map 0:a -s 1280x720 -c:v libx264 -b:v 2200K -c:a aac -b:a 192k "test.1280x720K.2200K.logo.mp4"
Другие вопросы по тегам