【问题标题】:First x frames from a video视频中的前 x 帧
【发布时间】:2012-06-29 02:36:22
【问题描述】:

我需要从视频(通常是 FLV)中获取前 x 帧并将其转换为 GIF。我们的想法是使用这些 GIF 作为实物的简短预览。

目前,我们正在使用 ffmpeg 和 imagemagick 来做到这一点:

ffmpeg -y -i movie.flv -pix_fmt rgb32 -r fps extracted/%d.png

convert extracted/0.png ... extracted/50.png -delay 4 -loop 0 \
-set dispose Background -sample 256x256> preview.gif

所以基本上,首先提取帧,转换为 PNG,然后再将 PNG 组合成 GIF。这里涉及到很多不必要的步骤。

有人对加快这个过程有什么建议吗?

提前致谢!

【问题讨论】:

  • 我认为您正在创建动画 gif 是否正确?您是否尝试过直接从 ffmpeg 创建动画 gif。我认为应该可以。

标签: video ffmpeg imagemagick gif animated-gif


【解决方案1】:

FFMPEG 不太擅长创建动画 gif。根据the docs,它们将被解压缩。但是 ffmpeg 在读取不同的视频编解码器方面非常通用。

ImageMagick 可以创建好的动画 gif,但视频功能非常有限。但是,它apparently has rudimentary .avi support.

您可以通过使用 ffmpeg 将输入视频转换为通用 avi 流并将其直接通过管道传输到 convert,从而无需中间 png 文件。

这对我有用:

ffmpeg -i movie.mov -t 1 -f avi -|convert -delay 1 - preview.gif

【讨论】:

  • 我认为这会起作用,但我实际上得到了一个错误,即:convert: no decode delegate for this image format /tmp/magick-vzjPD8ux' @ error/constitute.c/ReadImage/544. convert: no images defined preview.gif' @error/convert.c/ConvertImageCommand/3044。我在 identify -list 配置中有 DELEGATES mpeg png x11 zlib。知道如何让 IM 接受 avi 吗?
猜你喜欢
  • 2015-05-19
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多