首页 > 解决方案 > 如何获取 VideoCapture::read 获取的帧的 PTS 或帧号?

问题描述

在我们的实现中,我们需要知道 OpenCV 解码的帧的 pts 或 frame-number,然后根据解码后的帧做一些处理,然后在原始流中的 pts 或 frame-number 和处理结果。

检查OpenCV VideoCapture I/F后,没有找到这种方法。

标签: opencvopencv3.0opencv3.1

解决方案


OpenCV 视频接口并没有暴露很多关于视频流的细节。它旨在成为一个易于抓帧的高级接口,它不提供对编解码器的低级信息的访问。

返回的帧VideoCapture::read只是图像,它们不包含有关视频的任何信息(如帧号)。您需要单独手动保存该信息。

如果您从文件的开头开始解码,您可以只使用整数计数器来获取从VideoCapture::read.

然后是VideoCapture::get, 您可以通过它访问CV_CAP_PROP_POS_MSEC,CV_CAP_PROP_POS_FRAMESCV_CAP_PROP_FPS, 您可以通过 OpenCV 界面访问 PTS。


推荐阅读