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

时间:2018-09-28 03:43:07

标签: video ffmpeg overlay alpha-transparency ffmpeg-php

我有两个视频。我在下面的命令中将第一个视频(overlay.mp4)叠加在第二个视频(main.mp4)上,并将alpha chanel的透明度设置为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

结果看起来像这样。 overlay

第一个视频的背景仍然保留(看起来比主视频背景更暗)。

我只想在第二个视频的顶部叠加“前景”。 如何设置重叠视频背景的透明度,以便仅显示前景?

修改

设置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

1 个答案:

答案 0 :(得分:1)

您需要使用抠像滤镜以去除背景色

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