在内存上写视频OpenCV2
Writing video on memory OpenCV 2
我们目前正在为需要OpenCV的程序开发一些功能。摆在桌面上的一个想法是使用一个"缓冲区",它将一分钟的视频数据保存到内存中,然后我们需要为每个事件触发器从缓冲区中提取大约13秒的视频文件。
目前,我们对OpenCV没有足够的经验,所以我们不知道这是否可能。查看文档,唯一允许在内存中写入的函数是imencode和imdecode,但它们是图像。如果我们能找到一种将图像序列写入视频文件的方法,那将是整洁的,但目前我们的想法是使用视频缓冲区。
我们还使用OpenCV版本2规范。
TL;DR我们想知道是否可以将视频的一部分写入内存。
在OpenCV中,每个视频都被视为帧(图像)的集合。根据相机的FPS,您可以定期捕捉帧并用它们填充缓冲区。同时,您可以销毁最旧的帧(之前1分钟拍摄)。因此,可以实现FIFO数据结构来实现您的目标。获取一个13秒的样本很容易,只需跳到一个随机帧,然后将13*FPS帧顺序写入视频文件即可。
但是AFAIK会有一些同步和定时问题,就我使用过的OpenCV而言。
这是OpenCV文档中关于视频i/o的链接。尤其是最后一块代码是您将用于编写的代码。
TL;DR:没有视频,只有序列图像,差别很小。所以你需要这样对待他们。
相关文章:
- 如何在c++中录制具有精确帧时间戳的视频
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- 如何在 c++ 中通过 http 发送大型视频文件?
- 在 QLabel 中显示视频
- OpenGL 调试上下文警告 -"将使用视频内存作为缓冲区异议的来源
- 这个工厂类在这个C++视频中的意义何在?
- 如何使用Qt在新窗口中显示视频帧
- Qt GUI使用Qfiledialogbox和qlabel显示视频,这是我的代码
- 如何OPENCV+CUDA+视频捕获?
- 在内存上写视频OpenCV2