ffmpeg如何用concat叠加?

ffmpeg how to overlay with concat?

ffmpeg \
-i main.avi\
-i mini.avi\
-filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]; \
[0:v:1][0:a:0][1:v:1][1:a:0]concat=n=2:v=1:a=1[outvr][outar]" \
-map "[outv]" -map "[outa]" outputMain.mp4 \
-map "[outvr]" -map "[outar]" outputMini.mp4

我可以只得到一个输出吗? 2 个视频重叠。

enter image description here

您想使用叠加滤镜:

./ffmpeg -i main.avi -i mini.avi -filter_complex "[0:v][1:v]overlay=50:50[vout]" -map "[vout]" -map 0:a out.mp4

值 50:50 是距左上角的偏移量(左 50 像素;右 50 像素)。

叠加层不会更改视频分辨率。所以它只有在小视频的分辨率已经低于主视频的情况下才能正常工作。

如果你想把迷你视频也缩小,使用以下命令:

./ffmpeg -i main.avi -i mini.avi -filter_complex "[1:v]scale=w=720:h=576[vmini];[0:v][vmini]overlay=50:50[vout]" -map "[vout]" -map 0:a out.mp4

此处使用滤镜 scale 将迷你视频调整为您想要叠加的正确分辨率。