Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将延时图像附加到视频文件_C++_Opencv_Video - Fatal编程技术网

C++ 将延时图像附加到视频文件

C++ 将延时图像附加到视频文件,c++,opencv,video,C++,Opencv,Video,我想每2秒钟从usb摄像头抓取一张图像,并将其保存在视频文件中。我所看到的问题是:如果pc/笔记本电脑因某种原因停机或停止,视频文件将不会关闭,所有图像都将丢失 我的问题是:是否有一种方法可以将每个捕获的图像附加到视频文件中,然后再次关闭该文件以避免丢失?Opencv似乎不提供此功能,也不提供SFML 我使用g++和SFML在ubuntu中开发 谢谢。我以前有过这个问题。老实说,我并没有对此进行深入研究。我敢肯定,video writer中有一些未记录的部分可能包含您正在寻找的内容。不过,我可以

我想每2秒钟从usb摄像头抓取一张图像,并将其保存在视频文件中。我所看到的问题是:如果pc/笔记本电脑因某种原因停机或停止,视频文件将不会关闭,所有图像都将丢失

我的问题是:是否有一种方法可以将每个捕获的图像附加到视频文件中,然后再次关闭该文件以避免丢失?Opencv似乎不提供此功能,也不提供SFML

我使用g++和SFML在ubuntu中开发


谢谢。

我以前有过这个问题。老实说,我并没有对此进行深入研究。我敢肯定,
video writer
中有一些未记录的部分可能包含您正在寻找的内容。不过,我可以为您提供一个棘手的解决方案,适用于小视频。将每个
cv::Mat
保存到
std::vector
和每个帧(或每个n帧),
向量
序列化到
硬盘
。然后,完全清除
向量。完成后,
反序列化
所有数据,并使用OpenCV
视频编写器将其写入视频文件一次

无论如何,像我写的那样做是不好的。应该有另一种解决办法。您可以深入研究OpenCV代码,看看
videoWriter
类的
析构函数中发生了什么