将透明视频叠加在其他视频之上
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
我有两个视频。我使用下面的命令将第一个视频 (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