如何获取VideoCapture::read得到的帧的PTS或帧号?
How to get the PTS or frame number of the frame got by VideoCapture::read?
在我们的实现中,我们需要知道OpenCV解码后的帧的pts或者frame-number,然后在解码帧的基础上做一些处理之后,再构建一个pts或者frame-number之间的映射原始流和处理结果。
查了OpenCV VideoCaptureI/F,没找到这种方法
OpenCV 视频接口没有公开很多关于视频流的细节。它旨在成为一个便于抓取帧的高级接口,它不提供对编解码器低级信息的访问。
VideoCapture::read
返回的帧只是图像,它们不包含有关视频的任何信息(如帧编号)。您需要单独手动保存该信息。
如果您从文件的开头开始解码,您可以只对从 VideoCapture::read
.
返回的成功解码的帧使用整数计数器
然后是VideoCapture::get
,你可以通过它访问CV_CAP_PROP_POS_MSEC
、CV_CAP_PROP_POS_FRAMES
和CV_CAP_PROP_FPS
,这与你可以通过OpenCV接口访问PTS一样近.
在我们的实现中,我们需要知道OpenCV解码后的帧的pts或者frame-number,然后在解码帧的基础上做一些处理之后,再构建一个pts或者frame-number之间的映射原始流和处理结果。
查了OpenCV VideoCaptureI/F,没找到这种方法
OpenCV 视频接口没有公开很多关于视频流的细节。它旨在成为一个便于抓取帧的高级接口,它不提供对编解码器低级信息的访问。
VideoCapture::read
返回的帧只是图像,它们不包含有关视频的任何信息(如帧编号)。您需要单独手动保存该信息。
如果您从文件的开头开始解码,您可以只对从 VideoCapture::read
.
然后是VideoCapture::get
,你可以通过它访问CV_CAP_PROP_POS_MSEC
、CV_CAP_PROP_POS_FRAMES
和CV_CAP_PROP_FPS
,这与你可以通过OpenCV接口访问PTS一样近.