opencv - 如何获取 VideoCapture::read 获取的帧的 PTS 或帧号?
问题描述
在我们的实现中,我们需要知道 OpenCV 解码的帧的 pts 或 frame-number,然后根据解码后的帧做一些处理,然后在原始流中的 pts 或 frame-number 和处理结果。
检查OpenCV VideoCapture I/F后,没有找到这种方法。
解决方案
OpenCV 视频接口并没有暴露很多关于视频流的细节。它旨在成为一个易于抓帧的高级接口,它不提供对编解码器的低级信息的访问。
返回的帧VideoCapture::read
只是图像,它们不包含有关视频的任何信息(如帧号)。您需要单独手动保存该信息。
如果您从文件的开头开始解码,您可以只使用整数计数器来获取从VideoCapture::read
.
然后是VideoCapture::get
, 您可以通过它访问CV_CAP_PROP_POS_MSEC
,CV_CAP_PROP_POS_FRAMES
和CV_CAP_PROP_FPS
, 您可以通过 OpenCV 界面访问 PTS。
推荐阅读
- react-native - 如何在 React Native V5 中提取 JSON 数据
- flutter - Flutter 问题,我无法根据 API 数据切换按钮
- html - 如何在 JSP 中将值传递给 html?
- python - 我怎样才能优化这个python代码来降低时间复杂度
- omnet++ - 使用 Qtenv 从终端运行 OMNeT++ 模拟
- reactjs - 在 MERN 堆栈中使用 multer 上传文件
- r - 如何在R的for循环中为字符向量添加索引
- php - CodeDeploy 卡在 Install 或 AfterInstall 上
- fonts - 这是什么字体以及如何在 Latex 中写这个?
- javascript - 当第一个函数完成且为真时如何运行第二个函数