ffmpeg - 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
但正如你在图片中看到的那样,球的黑色部分也消失了。我怎么解决这个问题?
解决方案
单独使用 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
使用不同的颜色
替换颜色与您要删除的颜色不同的视频。
推荐阅读
- c# - 将 Label 的 target 属性设置为自定义 UserControl 中的对象
- c# - Blazor 事件回调问题父/子组件“没有与名称 'OnClickCallback' 匹配的属性”
- laravel - 迁移包和 Laravel 的问题
- python-3.x - 从 Pandas 数据框列中剥离字符
- python - 在 Python 中构造对称块矩阵
- google-chrome - 如何将 cookie 从 Chrome 传递到通过自定义协议处理程序启动的 IE?
- python - 烧瓶,无法在同一目录中导入python模块
- excel - Excel - 使用一个标准计算日期范围内的不同日期
- javascript - 在 ReactJS 应用程序的生产环境中添加源映射对性能有影响吗?
- php - .htaccess 文件在尝试清理 url 后抛出 500 错误