当前位置: 代码迷 >> 综合 >> 使用opencv读取rtsp流,1080p,15fps,画面延迟
  详细解决方案

使用opencv读取rtsp流,1080p,15fps,画面延迟

热度:16   发布时间:2023-12-08 14:08:18.0

使用opencv源库进行摄像头的采集,opencv默认使用的解码库也是ffmpeg,其中,由于ffmpeg默认解码摄像头采集格式为YUY2(我的摄像头仅支持YUY2以及MJPG两种格式解码),但项目需求在高分辨率下流畅度也要最高,我的摄像头YUY2的解码格式不能满足要求,必须使用MJPG。

    //1.打开摄像机设备(默认第一个)cv::VideoCapture cap= cv::VideoCapture(0);//2.一定要先设置采集格式!!!cap.set(CV_CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));//3.然后再设置高清采集分辨率cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);

现在绝大多数摄像头所采用的是免驱摄像头,一般有两种传输格式,YUY2和MJPG,前者是无压缩图像格式的视频,系统资源占用少(因为不用解码),不需要解码器,缺点是帧率稍慢(受限于USB分配的带宽),后者是相当于JPEG图像压缩格式,优点是帧率高(视频开启快,曝光快),缺点是影像有马赛克,并且需要解码器,会占用PC系统资源。

这是其中一种方式。
参考文章:
https://blog.csdn.net/z526882183/article/details/68484323
https://blog.csdn.net/qq_41866437/article/details/89279574
https://blog.csdn.net/lunweiwangxi3/article/details/88556911?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2&spm=1001.2101.3001.4242

  相关解决方案