首页 > 解决方案 > ffmpeg 在图像上覆盖视频并删除视频黑色背景

问题描述

我使用这个 ffmpeg 命令在图像上覆盖视频(去除黑色背景):

ffmpeg -loop 1 -i image.png -i video.mp4 -filter_complex [1:v]colorkey=0x000000:0.1:0.1[ckout];[0:v][ckout]overlay[out] -map [out] -t 5 -c:a copy -c:v libx264 -y result.mp4

在此处输入图像描述

但正如你在图片中看到的那样,球的黑色部分也消失了。我怎么解决这个问题?

标签: ffmpegoverlayvideo-processing

解决方案


单独使用 colorkey/chromakey 是不可能的。背景与您要移除的颜色过于相似。你有两个选择。

面具

使用口罩。如果视频带有 alpha 蒙版,您可以使用它使用alphamerge过滤器剪切背景:

ffmpeg -i bg.jpg -i video.mp4 -i alpha.mp4 -filter_complex "[1][2]alphamerge[alf];[0][alf]overlay" output.mp4

使用不同的颜色

替换颜色与您要删除的颜色不同的视频。


推荐阅读