代码之家  ›  专栏  ›  技术社区  ›  ravin.wang

如何获取VideoCapture::read获取的帧的PTS或帧号?

  •  0
  • ravin.wang  · 技术社区  · 6 年前

    在我们的实现中,我们需要知道用OpenCV解码的帧的pts或帧号,然后根据解码后的帧进行一些处理,然后在原始流中的pts或帧号与处理结果之间建立一个映射。

    在检查了OpenCV视频捕获I/F之后,我没有找到这种方法。

    1 回复  |  直到 6 年前
        1
  •  0
  •   w-m    6 年前

    OpenCV视频接口没有公开视频流的许多细节。它旨在成为一个高级接口,便于抓取帧,它不允许访问编解码器的低级信息。

    VideoCapture::read 只是图像,它们不包含任何关于视频的信息(比如帧号)。你需要单独手工保存这些信息。

    视频捕获::读取 .

    然后是 VideoCapture::get CV_CAP_PROP_POS_MSEC , CV_CAP_PROP_POS_FRAMES CV_CAP_PROP_FPS ,使用OpenCV接口可以尽可能接近PTS。