如何在OpenCV中将视频写入内存

时间:2018-05-28 04:25:12

标签: python python-3.x opencv video video-capture

你能把视频写入内存吗?我使用Raspberry Pi,我不想继续编写和删除在SD卡上创建的视频对象(或者可以这样做吗?)。

如果条件不满足,我想每秒丢弃书面视频。我使用运动探测器记录的类型,我想在检测到运动之前捕捉瞬间(在这种情况下是一秒),因为否则写入的视频会丢失发生的一部分。我在python环境中使用opencv。

1 个答案:

答案 0 :(得分:1)

视频文件通常(或者通常)太大而无法放入主内存中,因此您不太可能只保留整个视频。

值得注意的是,您的操作系统本身可能决定在快速内存,较慢内存,磁盘等之间移动数据,因为它管理多个进程,但在本次讨论中这可能并不重要。

这取决于您的使用案例,但典型的视频方案可能是:

  • 从相机或源流接收视频帧
  • 对视频帧进行一些处理 - 例如转码,检测物体,添加文字或图像等
  • 存储或发送更新的框架
  • 回到第一步

在这样的流程中,显然有利于在处理框架时将框架保留在内存中,但是一旦完成,它通常不再具有优势,因此可以将其移动到磁盘或将其发送到磁盘目的地。

如果您使用案例需要您像一些编码算法一样处理帧组,那么将帧组保留在内存中直到您完成它们然后将它们写入磁盘可能是有意义的。

我认为最适合您的答案将取决于您的确切用例,但无论如何,将整个视频保留在内存中是不可能的,甚至是不可能的。