OpenCV在内存中加载视频

时间:2016-10-27 17:26:00

标签: c++ opencv

使用cv::VideoCapture从磁盘读取视频时,究竟会发生什么?

  1. 读取内存中的整个文件,然后逐帧解码?
  2. 直接为磁盘提取帧?
  3. 如果第二个选项是答案,是否可以以第一种方式进行?

1 个答案:

答案 0 :(得分:1)

要在Linux上的Python中完成此操作,我只需将输入文件的副本复制到/dev/shm,这是RAM支持的文件系统。

tempdir = tempfile.TemporaryDirectory(dir='/dev/shm')
copypath = os.path.join(tempdir.name, os.path.basename(args.video))
shutil.copy(args.video, copypath)
args.video = copypath

当然也有复制操作的开销,但是它不仅仅是读取整个文件(因为在复制的另一侧没有写入慢速磁盘)不应该多。 / p>