如何将视频帧保存到缓冲区中?
Posted
技术标签:
【中文标题】如何将视频帧保存到缓冲区中?【英文标题】:How can i save video frames into a buffer? 【发布时间】:2016-05-31 09:14:23 【问题描述】:我使用 VideoCapture 从网络摄像头读取帧并使用 VideoWriter 写入目录。但是我想到了一个新想法,比如如果我想在按下按钮时将视频保存在 50 帧之前,然后继续使用实时帧。 有没有办法做到这一点。 正如我所观察到的,从源写入应该是连续的,如果我们要更改源,我们需要重新初始化 VideoWriter.open()。
【问题讨论】:
【参考方案1】:因此您需要存储最后 50 帧并按需将它们写入视频文件。
您可以使用ring buffer (circular queue)。用传入的帧填充它,每次都用新的帧更新最旧的帧。什么是网络摄像头帧格式和目标操作系统/计算机平台?在某些情况下,内存消耗可能是个问题。
开始重新编码时,一一提取帧并将它们添加到 VideoWriter。在此过程中,将传入的帧插入缓冲区以避免丢帧,直到缓冲区为空。
【讨论】:
是的,我需要存储 50 帧,当我开始录制旧的 50 帧时,应该使用 VideoWriter 然后输入帧,这样我就可以记录视频录制开始之前发生的事情. 好的。我已经描述了你需要的一切。以上是关于如何将视频帧保存到缓冲区中?的主要内容,如果未能解决你的问题,请参考以下文章