如何获取视频捕获::读取获得的帧的PTS或帧号?



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

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

OpenCV 视频接口不会公开有关视频流的许多详细信息。它旨在成为易于帧抓取的高级接口,它不提供对编解码器的低级信息的访问。

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

如果在文件开头开始解码,则只需对从VideoCapture::read返回的成功解码帧使用整数计数器。

然后是VideoCapture::get,您可以使用它访问CV_CAP_PROP_POS_MSECCV_CAP_PROP_POS_FRAMESCV_CAP_PROP_FPS,这是您可以使用OpenCV界面接近PTS的。

最新更新