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

append time lapse image to video file

本文关键字:视频 文件 图像      更新时间:2023-10-16

我想每 2 秒从 USB 相机抓取一张图像并将其保存在视频文件中。在我看来,这个问题是:如果PC/笔记本电脑因某种原因出现故障或停止,视频文件将不会关闭 - 并且所有图像都将丢失。

我的问题是:有没有办法将每个捕获的图像附加到视频文件中并再次关闭文件以避免丢失?Opencv 似乎不提供此功能 - SFML 也没有。

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

谢谢。

我以前遇到过这个问题。老实说,我没有对此进行深入搜索。我很确定video writer中有一些未记录的部分可能包含您正在寻找的内容。但是,我可以为您提供一个适用于小视频的棘手解决方案。将每个cv::Mat保存到std::vector和每个帧(或每个 n 帧)中,serialize vector保存到hard disk。然后,完全清除vector。完成后,deserialize所有数据并使用 OpenCV video writer将其写入视频文件一次。

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