Python 如何在OpenCV中将视频写入内存
你能把视频写入内存吗?我使用Raspberry Pi,我不想继续写入和删除sd卡上创建的videowriter对象(或者这样做可以吗?)Python 如何在OpenCV中将视频写入内存,python,python-3.x,opencv,video,video-capture,Python,Python 3.x,Opencv,Video,Video Capture,你能把视频写入内存吗?我使用Raspberry Pi,我不想继续写入和删除sd卡上创建的videowriter对象(或者这样做可以吗?) 如果条件不满足,我想放弃书面视频每秒钟。我使用的是一种运动检测器记录,我想捕捉到运动被检测到之前的瞬间(在本例中为1秒),因为否则写入的视频会丢失所发生的部分内容。我在python环境中使用opencv。视频文件通常会太大,甚至通常会太大,无法放入主内存,因此您不太可能将整个视频保存在主内存中 还值得注意的是,您的操作系统本身可能会决定在快内存、慢内存、磁盘等
如果条件不满足,我想放弃书面视频每秒钟。我使用的是一种运动检测器记录,我想捕捉到运动被检测到之前的瞬间(在本例中为1秒),因为否则写入的视频会丢失所发生的部分内容。我在python环境中使用opencv。视频文件通常会太大,甚至通常会太大,无法放入主内存,因此您不太可能将整个视频保存在主内存中 还值得注意的是,您的操作系统本身可能会决定在快内存、慢内存、磁盘等之间移动数据,因为它管理多个进程,但这在本讨论中可能并不重要 这取决于您的用例,但典型的视频场景可能是:
- 从摄像机或源流接收视频帧
- 对视频帧进行一些处理-例如,对其进行转码、检测对象、添加文本或图像等
- 将更新的帧存储或发送到某个位置
- 回到第一步
我认为最好的答案取决于您的具体用例,但不管是什么,将整个视频保存在内存中都不太可能是必要的,甚至是可能的。谢谢您的回答。这不应该是个问题,因为我想在内存中存储最多1或2秒,这样我就有了整个事件的录像。一旦触发运动检测器,一切都可以保存在硬盘上。正如我在上面解释的那个样,问题是有时运动检测器给出的信号太晚了(因为它每秒更新一次以节省cpu)。这就是为什么我想在开始录制之前将片段保存在内存中,并“真实地”保存。您的写入和删除方法可能会给您带来更大的灵活性,并提供更安全的时间缓冲,如果您发现性能正常,并且您对SD卡的性能感到满意,则会有不同的报告显示其持续写入的时间,这可能还取决于品牌。如果它是一个关键的应用程序,你可能需要某种冗余和/或备份到网络上。它本来应该很好,但我如何在opencv中创建内存缓冲区?你的意思是在阅读它们时把你的名声放进去?当您为一个帧定义一个Mat(例如,在c++中:Mat frame),然后将一个帧从相机或文件中读取到其中时,则该帧在内存中,而不是在磁盘上等。