目前我有超过 20000 个 FLV。它们目前没有 Alpha 通道,都是黑色背景上的 CGI 生成文本。
我的问题: 我需要能够移除黑色背景并使其透明,这样我才能使用这些视频在我的 Flash 项目中叠加图片。
它需要是一个自动化的过程,可以遍历整个视频目录并删除背景
我试过什么?
在过去的三天里,我一直在拔头发。目前我看到的选项是为 ffmpeg 编写一个自定义过滤器。
最终目标:
在 flex 内置的 adobe air 应用程序中,将 flv 视频叠加在随机生成的视频上。
目前我有超过 20000 个 FLV。它们目前没有 Alpha 通道,都是黑色背景上的 CGI 生成文本。
我的问题: 我需要能够移除黑色背景并使其透明,这样我才能使用这些视频在我的 Flash 项目中叠加图片。
它需要是一个自动化的过程,可以遍历整个视频目录并删除背景
我试过什么?
在过去的三天里,我一直在拔头发。目前我看到的选项是为 ffmpeg 编写一个自定义过滤器。
最终目标:
在 flex 内置的 adobe air 应用程序中,将 flv 视频叠加在随机生成的视频上。
我刚刚找到了这个 - 包括来源。它非常令人印象深刻,只需进行一些调整,可能就是您正在寻找的东西。我喜欢玩实时视频过滤器。
http://blog.onthewings.net/2009/12/10/chroma-key-and-thresholding-in-flash-pixel-bender-revised/
祝你好运!
如果您有 gstreamer,这里有一个管道可以执行此操作并查看您的输出。这个用另一个视频的内容替换了视频 hi.mp4 中的全黑。使用这些值来获得你需要的东西。如果您的文本或背景(其中之一)具有统一的颜色并在一定范围内,则将起作用。
gst-launch filesrc 位置=hi.mp4 !解码bin2!ffmpeg色彩空间!alpha alpha=1 方法=3 目标-r=0 目标-g=0 目标-b=0 白色灵敏度=0 黑色灵敏度=128 !视频混音器名称=vm!ffmpeg色彩空间!sdlvideosink 文件rc location=hi2.mp4 !解码bin2!ffmpeg色彩空间!阿尔法阿尔法= 1!虚拟机。
然后,您可以用编码器 x264enc 替换 sdlvideo 接收器,并通过其中一个视频中的音频来创建您的容器。
如果您不知道 gstreamer 是什么或不倾向于使用它,那么带有 frei0r 的 ffmpeg 将起到 lordneckbeard 提到的作用。我只是觉得这样更快。:)
如何到达这条管道?
sudo apt-get install gstreamer-0.10 base,好坏和丑陋以及 libav/ffmpeg 插件和 gstreamer-tools 包 - 如果您想从源代码构建,请查看 gstreamer.net。
上面的命令行将工作并显示文件。将 sdlvideo 接收器替换为:x264enc bitrate= !!文件接收器位置=文件名.flv
如果您之前从未使用过 gstreamer,您将不得不阅读一下管道是什么以及如何运行管道。大量可用的教程。如果您不倾向于使用 gstreamer,那么其他答案中指出的其他工具可能会有所帮助。但是我建议您使用 gstreamer,因为如果您将来需要,您还可以使用它进行其他操作。