如何将视频帧保存到缓冲区?

时间:2016-05-31 09:14:24

标签: c++ opencv vector

我使用 VideoCapture 从网络摄像头读取帧并使用 VideoWriter 写入目录。但是我想到了一个新的想法,比如如果我想在按下按钮的时候按下PUSH按钮保存视频50帧,然后继续使用实时帧。 有没有办法做到这一点。 正如我所观察到,从源代码编写应该是连续的,如果我们要更改源代码,我们需要重新初始化 VideoWriter.open()

1 个答案:

答案 0 :(得分:1)

因此您需要存储最后50帧并按需将其写入视频文件。

您可以使用ring buffer (circular queue)。用传入的帧填充它,每次用新的帧更新最旧的帧。什么是网络摄像头帧格式和目标OS /计算机平台?在某些情况下,内存消耗可能是个问题。

重新编码开始时,逐个提取帧并将其添加到VideoWriter。在此过程中,将输入帧插入缓冲区以避免帧丢失,直到缓冲区为空。

相关问题