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

Posted

技术标签:

【中文标题】在其他视频之上叠加透明视频【英文标题】:overlay transparency video on top of other video 【发布时间】:2018-09-28 03:43:06 【问题描述】:

我有两个视频。我使用以下命令将第一个视频(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

结果如下所示。

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

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

编辑

设置颜色键选项,它可以工作

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】:

您需要使用抠像过滤器来去除背景颜色

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

【讨论】:

我为 colorkey 选项设置了相似性和混合值:colorkey=black:0.3:0.2 并且它有效!谢谢

以上是关于在其他视频之上叠加透明视频的主要内容,如果未能解决你的问题,请参考以下文章

Qt视频播放窗口叠加透明窗口

带alpha透明通道视频—网页播放带alpha通道视频叠加合成方案

如何在 iOS 中将一个视频叠加到另一个视频上?

VideoView之上的android透明WebView

使用具有 100% 高度的颜色叠加层的背景视频

如何合并两个具有透明度的视频