我想使用 avconv (ffmpeg fork) 将视频分割成帧。为了加快我想使用多线程的过程。为此,我在具有 4 个内核的 VM 上使用“-threads 3”。我发现顶部的“-threads 1”和“-threads 3”之间没有区别(总是在 100%-130% 之间。
命令:
avconv -i video.mp4 frames/frame-%05d.tiff -threads 3
我可以做些什么来加快这个过程?
谢谢,
第一个也可能是最大的减速是您在虚拟机上运行的事实。我将假设您由于某种原因无法在本地运行该命令。
瓶颈可能实际上是您的驱动器。你在同一个物理设备上读写,你可以尝试优化它。如果您有两个硬盘驱动器,您可以尝试在另一个硬盘上写入。这样一来,任何单一的寻求都会大大减少。请注意,同一物理设备上的不同分区不会解决此问题,但可能只会加剧这种情况。
想想您正在使用的文件系统,确保它针对创建大量文件进行了优化。日志系统实际上可能会减慢速度,因为您正在对 FS 本身执行许多操作,而不是简单地添加到文件中。请记住,您可能不想将整个系统从日志文件系统中移出,只是为了加快单个操作的速度(假设这不是这台机器正在做的唯一事情)。