【问题标题】:create thumbnails from big movies with FFmpeg takes too long使用 FFmpeg 从大电影创建缩略图需要太长时间
【发布时间】:2011-05-18 07:00:22
【问题描述】:

我正在使用这个 shell 命令从 VIDEO_FILE 从 123 秒开始制作缩略图并将其保存到 THUMBNAIL_FILE。

ffmpeg -i VIDEO_FILE  -r 1 -ss 123 -f image2 THUMBNAIL_FILE

它有效,但对于大电影来说真的很慢。有什么办法可以让它更快一点?

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    这也发生在我身上,改变参数顺序解决了这个问题。 在 1.4GB 90 分钟的 mp4 视频上测试 - 大约需要 1-2 秒。在此之前,它需要 MINUTES...

    试试这个:

    ffmpeg -ss 123 -i "VIDEO_FILE" "THUMBNAIL_FILE" -r 1 -vframes 1 -an -vcodec mjpeg
    

    【讨论】:

    • 在我得到的 4GB MKV 文件上进行测试:使用mplayer 需要 1.23 秒,使用上述ffmpeg 命令需要 1.687 秒。两者均取自视频的第三秒,分辨率和大小相同。
    • 请注意,这种方式不如“慢速方式”可靠——它有时会抓取错误的帧(当然这可能很重要,也可能不重要),有时会抓取“p帧或b-frame" - 一个不包含足够信息来重新创建完整图像的框架 - 简而言之,它可能全是灰色或块状。
    • @DarrenGreaves - 警告不适用于给定的命令,至少不再适用。转码时,ffmpeg 会从之前的关键帧内部解码。
    • 如何在我的 nodejs 代码中解决这个问题。 stackoverflow.com/questions/53202448/…
    • 如何在 c# 中做到这一点?
    【解决方案2】:

    正如我所调查的那样,Ffmpeg 并不擅长创建缩略图。人们推荐使用 mplayer(由 ffmpeg 创建者提供)。

    mplayer VIDEO_FILE -ss 00:10:11 -frames 1 -vo jpeg:outdir=THUMBNAILS_DIRECTORY
    

    【讨论】:

      【解决方案3】:

      Kirzilla 代码的一个小增强:如果要创建PNG文件(带压缩),可以使用以下代码:

      mplayer VIDEO_FILE -ss 00:10:11 -frames 1 -vo png:z=9:outdir=THUMBNAILS_DIRECTORY
      

      这可能会创建更好的缩略图,但当然比 JPEG 更大。

      【讨论】:

        猜你喜欢
        • 2010-11-19
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 2011-12-31
        • 2015-01-24
        • 2016-12-09
        • 2014-09-07
        • 2017-12-27
        相关资源
        最近更新 更多