将透明视频叠加在其他视频之上

overlay transparency video on top of other video

我有两个视频。我使用下面的命令将第一个视频 (overlay.mp4) 叠加在第二个视频 (main.mp4) 之上,并将 alpha 通道的透明度设置为 0.3

ffmpeg -y \
-i main.mp4 \
-i overlay.mp4 \
-filter_complex \
[1]format=yuva420p,colorchannelmixer=aa=0.3,setpts=PTS+8/TB[1d]; \
[0][1d]overlay=enable='between(t,8, 13)'[v1]; \
-map [v1] -map 0:a -c:a copy -c:v libx264 -preset ultrafast output.mp4

结果是这样的。

第一个视频的背景仍然存在(看起来比主视频背景暗)。

我只想在第二个视频上叠加 'foreground'。 如何设置覆盖视频背景的透明度只显示前景?

编辑

设置 colorkey 选项并且有效

ffmpeg -y \
-i main.mp4 \
-i overlay.mp4 \
-filter_complex \
[1]format=rgb24,colorkey=black:0.3:0.2,colorchannelmixer=aa=0.3,setpts=PTS+8/TB[1d]; \
[0][1d]overlay=enable='between(t,8, 13)'[v1]; \
-map [v1] -map 0:a -c:a copy -c:v libx264 -preset ultrafast output.mp4

您需要使用键控滤镜来移除背景颜色

ffmpeg -y \
-i main.mp4 \
-i overlay.mp4 \
-filter_complex \
[1]format=rgb24,colorkey=black,colorchannelmixer=aa=0.3,setpts=PTS+8/TB[1d]; \
[0][1d]overlay=enable='between(t,8, 13)'[v1]; \
-map [v1] -map 0:a -c:a copy -c:v libx264 -preset ultrafast output.mp4