【问题标题】:ffmpeg image generation in equal interval等间隔的ffmpeg图像生成
【发布时间】:2010-11-17 22:03:51
【问题描述】:

我在 Ubuntu 中使用 ffmpeg 进行图像创建和视频转换,我的问题是我想以不同的时间间隔生成图像(缩略图)。假设我上传了一个视频,然后它计算视频时间并以相等的间隔生成 5 个图像(缩略图)。(例如,假设视频的时间段是 50 分钟,那么图像在 0、10、20、30、40 处获取, 50 个间隔)

请帮忙

谢谢

【问题讨论】:

  • 请不要每隔几个小时继续发布完全相同的问题。使用您在自己的调查中发现的新信息编辑原始问题。

标签: video ffmpeg


【解决方案1】:

好吧,如果你只是运行:

ffmpeg -i 文件.mp4

输出将包含 stderr 上视频的长度。如果您运行程序并将其输出通过管道传输到文件,您可以读取它,或者如果您愿意,您可以读取 stderr 的输出,然后用您使用的任何语言编写一些代码来查找该输出中的位置。这很漂亮,因为我相信它实际上在字符串中为“持续时间:00:15:00”或其他任何内容。

如果你运行:

ffmpeg -ss 00:03:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:06:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:09:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:12:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:15:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg

然后,您将每 3 分钟生成一次 jpeg 帧。希望这会有所帮助。

【讨论】:

  • ya john 谢谢,但我的问题有点不同,我想以相等的间隔从视频中提取 5 张图像,无论视频的长度是多少
  • 好吧,您只需在程序中早些时候计算出的持续时间,然后以均匀的间隔循环以获取缩略图。如果不编写一些代码(至少据我所知),您将无法做到这一点。
【解决方案2】:

短版:

ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg

此命令在视频的第 4 秒生成一个 320×240 大小的 PNG 缩略图。 将其放入更改时间和文件名的脚本中,您就完成了。

长版:http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/

【讨论】:

  • 不,这个概念是不同的,假设我的视频时长是 60 分钟,那么获得的每张图像应该是每 12 分钟一次,所以视频时长是可变的
  • 找出视频时长,然后除以您想要拥有的图片数量。
  • ffmpeg -i test.avi 将转储有关视频的信息。解析该数据以获取视频时长
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 2018-11-11
  • 2023-01-30
  • 2010-10-13
  • 1970-01-01
相关资源
最近更新 更多