ffmpeg 叠加在多个输出上

ffmpeg overlay on multiple outputs

我正在使用 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个输出,避免连续5次运行ffmpeg。一次搞定应该更efficient/faster。

使用

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"