- 利用opencv videoCapture实现RTSP解码;
- 实现对解码出的cv::Mat帧进行处理,如区域选择;
- 实现对解码出的cv::Mat帧进行本地存储;
- 基于Gstreamer的gst-rtsp-server套件实现对Mat帧进行H.264编码、组流、推流至服务器指指定url(端口、index);
- 利用互斥线程锁将解码、处理、编码、组流等步骤封装成管线,每一路管线对应一路RTSP流;
- 利用多进程管理实现同时处理多路流;
- 交叉编译opencv和cuda,使用nvidia video codec sdk加速RTSP解码,解放CPU资源、降低延迟;
- 通过init配置文件启动系统,其中包括rtsp路数以及每一路流各自的参数;
本RTSP流媒体服务器实现了预期的系统功能,但由于cv::Ptrcv::cudacodec::VideoReader解码一路4K的RTSP视频流需要占用580M的显存,解码一路1080P的视频流需要约200M的显存,故在11GB显存的1080Ti显卡上,最多只能同时处理18路4K流、或者50路1080P流。