使用FFmpeg从大型电影中创建缩略图需要太长时间。

9
我正在使用此shell命令从第123秒开始制作VIDEO_FILE的缩略图,并将其保存到THUMBNAIL_FILE。
ffmpeg -i VIDEO_FILE  -r 1 -ss 123 -f image2 THUMBNAIL_FILE

它可以工作,但对于大型电影来说速度非常慢。 有没有办法让它变快一点?

3个回答

15

我也遇到过这种情况,改变参数的顺序可以解决这个问题。在一个1.4GB 90分钟的mp4视频上测试,只需要1-2秒钟就能完成。之前可能需要几分钟...

请尝试这个:

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

1
对一个4GB的MKV文件进行测试后,我得到了这个结果:使用mplayer耗时1.23秒,而使用上述ffmpeg命令则耗时1.687秒。两者都是从视频的第三秒开始,并且分辨率和大小都相同。 - Edu Felipe
1
请注意,这种方式不如“慢速方式”可靠 - 它有时会抓取错误的帧(当然可能重要或不重要),有时会抓取“p帧或b帧” - 一帧不包含足够信息以重新创建完整图像 - 简而言之,它可能是全灰色或多方块的。 - Darren Greaves
1
@DarrenGreaves - 这个警告不再适用于给定的命令。在转码时,FFmpeg会从先前的关键帧内部解码。 - Gyan
我该如何在我的Node.js代码中修复这个问题。 - Vishnu
我该如何在C#中实现这个? - Hunzla Ali

4

我调查后发现Ffmpeg并不擅长创建缩略图。人们推荐使用mplayer(由ffmpeg的创作者创建)。

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

2

Kirzilla的代码有一个小改进:如果你想创建PNG文件(带压缩),可以使用以下代码:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接