引言
深度解析OpenCV中VideoCapture对象背后的视频编码与解码的第三方库支持与速度之谜。
支持的第三编解码库与类型
我们都知道OpenCV中的VideoCapture视频读取是借助其它的第三方库来完成编码与解码的过程,当前支持的视频解码主要有:
mkv / mpeg2mkv / h264mkv / h265 mkv / vp8 mp4 / mpeg2 mp4 / h264mp4 / h265avi / mpeg2avi / h264 avi / vp8
视频编码主要有:
mkv / mpeg2mkv / h264mkv / vp8mp4 / h264 avi / mpeg2avi / h264avi / vp8
我们最常见的OpenCV中读取视频文件的函数VideoCapture参数解释如下:
cv::VideoCapture::VideoCapture( const String & filename, int apiPreference = CAP_ANY)
其中参数filename表示文件名称,大家经常忽略第二个参数默认值为CAP_ANY,意思是系统自动检测选择。当读取摄像头或者IP视频流的时候:
cv::VideoCapture::VideoCapture( int index, int apiPreference = CAP_ANY)
其中index表示相机的ID标识。
当读取视频文件时候第二个参数的可以设置为:
cv::CAP_FFMPEGcv::CAP_INTEL_MFX
当读取摄像头或者视频流时候,第二个参数可以设置为
cv::CAP_DSHOW // windows只支持cv::CAP_MSMFcv::CAP_V4L
如何查询当前OpenCV版本支持哪些视频编码与解码的第三方后端库,可以通过下面的代码完成:
std::vectorvcs=cv::videoio_registry::getBackends();for(autoitem:vcs){std::cout
运行结果如下:
实事证明的确可以加速很多!该方法只在ubuntu系统下验证过,widnows系统下还没有验证过,官方说 in theory, can run~~~~作为技术人员看到这句话你懂的,就是坑很多,你自己看着办!
此外就是彻底放弃Windows的DSHOW,有钱买个加速卡,直接硬件解码加速,这样就无忧了。
为了让大家更好得理解与使用OpenVINO框架,我特别整理了OpenVINO计算机视觉加速的学习路径,图示如下:
以上就是久久派网»opencv读取视频文件(opencv读取视频的过程是解码)的相关内容了,更多精彩请关注久久派号公众号。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/92841.html