使用 ffmpeg 时如何提高图像 export/extract 速度?
How to increase image export/extract speed when using ffmpeg?
我正在使用 fps -r 25
参数从 mp4 视频(视频 fps:25)中提取所有帧,使用 ffmpeg。
这是我使用的命令:ffmpeg -i input.mp4 -r 25 frame_%%02d.bmp
。有用。
在提取过程 ffmpeg 开始时有 speed=~4x
,在 200-300 帧后速度减慢到 ~0.3x
。但是CPU using is only 3% max,内存还可以。输出元数据:
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
也没有。
回顾一下评论中的答案:您受到磁盘速度的限制。
BMP 图像未压缩,这意味着单个 1920x1080 帧导出的大小约为 6MB。在 25fps 下,这将是 150MB/s 的数据流。在您期望的 4 倍速下,这将是 600MB/s。只有最快的 SSD 才能跟上这个速度,甚至只是在理论上。
如果图像质量是一个重要因素,我建议改为导出为 PNG 文件。这提供了良好的图像质量,同时仍然产生小得多的文件。否则只需使用 JPG,根据使用的压缩设置,它们也可以在更小的文件大小下产生良好的图像质量。
我正在使用 fps -r 25
参数从 mp4 视频(视频 fps:25)中提取所有帧,使用 ffmpeg。
这是我使用的命令:ffmpeg -i input.mp4 -r 25 frame_%%02d.bmp
。有用。
在提取过程 ffmpeg 开始时有 speed=~4x
,在 200-300 帧后速度减慢到 ~0.3x
。但是CPU using is only 3% max,内存还可以。输出元数据:
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
也没有。
回顾一下评论中的答案:您受到磁盘速度的限制。 BMP 图像未压缩,这意味着单个 1920x1080 帧导出的大小约为 6MB。在 25fps 下,这将是 150MB/s 的数据流。在您期望的 4 倍速下,这将是 600MB/s。只有最快的 SSD 才能跟上这个速度,甚至只是在理论上。
如果图像质量是一个重要因素,我建议改为导出为 PNG 文件。这提供了良好的图像质量,同时仍然产生小得多的文件。否则只需使用 JPG,根据使用的压缩设置,它们也可以在更小的文件大小下产生良好的图像质量。