我需要opencv读取rtsp图像处理后推流rtmp的代码
时间: 2023-03-31 15:01:17 浏览: 236
你可以使用以下代码来实现:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
// 打开rtsp流
VideoCapture cap("rtsp://xxx.xxx.xxx.xxx:xxxx/xxx/xxx");
// 检查是否成功打开
if (!cap.isOpened())
{
cout << "无法打开rtsp流" << endl;
return -1;
}
// 创建推流器
VideoWriter writer;
int codec = VideoWriter::fourcc('F', 'M', 'P', '4');
double fps = 25.;
Size frameSize(cap.get(CAP_PROP_FRAME_WIDTH), cap.get(CAP_PROP_FRAME_HEIGHT));
writer.open("rtmp://xxx.xxx.xxx.xxx:xxxx/xxx/xxx", codec, fps, frameSize, true);
// 检查是否成功创建推流器
if (!writer.isOpened())
{
cout << "无法创建推流器" << endl;
return -1;
}
// 处理每一帧图像并推流
Mat frame;
while (true)
{
cap >> frame;
if (frame.empty())
{
break;
}
// 在这里添加你的图像处理代码
writer.write(frame);
}
// 释放资源
cap.release();
writer.release();
return ;
}
阅读全文