OpenCV视频帧元数据写入和读取

时间:2012-07-30 16:10:29

标签: opencv metadata video-processing

我想在视频的每一帧中编码日期/时间戳,以便计算机可以轻松读回。在我的系统上,帧速率是可变的,因此计算帧似乎不是一个好的解决方案。我在框架上以人类可读的形式(文本)显示日期和时间,但是将其读回计算机似乎并不像我想的那样微不足道。录制的视频很大(10英寸GB),所以写一个文本文件似乎也很麻烦,除了是另外一个要跟踪的文件。有没有办法在视频中存储逐帧信息?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。

  1. 如果压缩不是很强,您可以在图像的顶行或底行编码时间戳。这些可能不包含太多有价值的信息。您可以添加某种形式的纠错(例如CRC)来纠正压缩机造成的任何损坏。
  2. 更通用的解决方案(我过去使用的)是拥有视频文件,例如: AVI,包含另一个单独的文本流。除了AVI,大多数格式都支持多个流,因为它们用于立体声 - 音频流,sub等。这里的缺点是没有很多工具可以让你编写这些流,你必须自己实现(使用相关的API)为您要支持的每种视频格式。在某种程度上,这类似于在视频旁边保留文本文件,只有这个文件内容在同一视频文件中作为单独的流进行多路复用。