读取rtsp视频流
完整演示:
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
int main()
{
// rtsp地址变量
// 一般main 主码流,sub 子码流
std::string rtsp1 = "rtsp://admin:SEGJKL@192.168.3.75:554/h264/ch1/sub/av_stream";
// std::string rtsp1 = "rtsp://localhost:8554/live1.sdp";
// CAP_FFMPEG:使用ffmpeg解码
cv::VideoCapture stream1 = cv::VideoCapture(rtsp1, cv::CAP_FFMPEG);
if (!stream1.isOpened())
{
std::cout << "有视频流未打开" << std::endl;
return -1;
}
cv::Mat frame1;
// // 使用namedWindow创建窗口,WINDOW_AUTOSIZE:自动调整窗口大小
// cv::namedWindow("rtsp_demo", cv::WINDOW_AUTOSIZE);
while (true)
{
if (!stream1.read(frame1))
{
std::cout << "有视频流未读取" << std::endl;
continue;
}
cv::imshow("rtsp_demo", frame1);
if (cv::waitKey(1) == 27)
{
break;
}
}
return 0;
}