我正在使用ffmpeg从fps -r 25
参数的mp4视频(视频fps:25)中提取所有帧。
这是我使用的命令:ffmpeg -i input.mp4 -r 25 frame_%%02d.bmp
。有用。
在开始提取过程时,ffmpeg具有speed=~4x
,并且在200-300帧速度之后减速至~0.3x
。但是CPU使用率最高仅为3%,内存也可以。输出元数据:
Encoder : Lavf58.12.100
Stream #0:0(und): Video: bmp, bgr24, 1920x1080, q=2-31, 200 kb/s, 25 fps, 25
tbn, 25 tbc (default)
问题:如何更快地提取?
我尝试使用此参数,但速度未更改:
-threads 4
线程数已更改,但速度未更改,-preset
和veryfast
和ultrafast
也没有。答案 0 :(得分:1)
回顾一下评论中的答案:您受到磁盘速度的限制。 BMP图像未压缩,这意味着单个1920x1080帧导出的大小约为6MB。在25fps下,这将是150MB / s的数据流。您期望以4倍的速度达到600MB / s。只有最快的SSD才能跟上这一步,甚至在理论上也是如此。
如果图像质量是一个重要因素,我建议改为导出到PNG文件。这样可以提供良好的图像质量,同时仍然可以产生明显较小的文件。否则,仅使用JPG,根据所使用的压缩设置,它们甚至在较小的文件尺寸下也可以产生良好的图像质量。