【问题标题】:Create single image ofmultiple video frames using FFMPEG使用 FFMPEG 创建多个视频帧的单个图像
【发布时间】:2014-05-06 09:53:31
【问题描述】:

我想从视频中的几个帧创建一个图像,即创建多个图像并混合它们,或者从多个帧创建一个图像。我一直在使用 FFMPEG 使用下面的代码获取单帧图像,但找不到混合这些图像并保存为单个图像或让 FFMPEG 从多个帧创建图像的方法。

-ss 00:05:40 -i video.AVI -vframes 1 -vf image.jpg'

【问题讨论】:

  • google + "ffmpeg 马赛克" = trac.ffmpeg.org/wiki/…
  • 感谢您的回答。但是,我不想创建瓷砖或马赛克,但实际上将图像混合成一个。你知道怎么做吗?
  • “混合”是什么意思?你能提供一个示例图片吗?
  • 我还不能将它添加到帖子中,因为我的声誉不够高,但您可以在此处看到一个链接,指向带有沙质底物的鱼缸中的鱼的混合图像i.stack.imgur.com/dpHdJ.png

标签: image ffmpeg


【解决方案1】:

考虑使用 ImageMagick - 它是免费的并且可用here。它具有 C、C++、Perl 和 PHP 绑定,可以从命令行使用。

根据您希望如何合并图像,您可以使用以下之一:

convert -evaluate-sequence mean a.jpg b.jpg c.jpg d.jpg

这需要 3 张图像(a.jpg、b.jpg、c.jpg),我人为地添加了噪点,然后对它们进行平均以创建 d.jpg,您可以看到它的噪点更少。或者,也许您更喜欢在每个点取像素的中值:

convert -evaluate-sequence median a.jpg b.jpg c.jpg d.jpg

或者你可以使用:

composite -blend 30 foreground.jpg background.jpg blended.jpg

用于 30% 的混合。

已编辑

如果您的鱼在图像中较暗并且您想将其移除,您可以选择图像中每个点的两个像素中较亮的一个,如下所示:

convert a.jpg b.jpg -compose lighten -composite result.jpg

【讨论】:

  • 谢谢,这听起来是个不错的选择。我一直试图让它在带有命令提示符的 Windows 上工作,但几乎没有任何信息可以帮助我设置它,而且大部分都集中在 php 上。我尝试运行您的代码行,但它不起作用。它如何知道它在哪个目录中工作?即使我指定了正确的目录,它也不起作用..
  • 尝试使用 ImageMagick 的便携式、静态链接、免安装版本(我认为它在最后列出),然后在运行它时指定完整路径,因为 Windows 有另一个名为“convert”的实用程序转换 NTFS 文件系统和名称冲突。
  • 谢谢你确实成功了。今天我花了大约 4 个小时来尝试 ImageMagick 的工作。谢谢!
  • 实际上,我现在设法获得了混合图像(请参阅此处i.stack.imgur.com/VSTzZ.png),但是有没有办法创建包含所有图像之间大多数像素相同的图片?这样,它不会在每张单独的图片中显示鱼,而是根本不显示鱼,因为大多数其他图像中的沙子保持不变,除了显示鱼的图像(我希望这很清楚),即在三者之间那只会显示沙子
  • 我认为如果您编辑您的问题,并说出您有多少输入图像,并提供指向 2-3 个输入图像的链接以及您希望如何处理的一些指示,您会得到更好的答复要查看的图像...
猜你喜欢
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多