c++ - G streamer 视频流和接收
问题描述
我需要从连接到视频图像采集卡(支持 G-streamer)的相机设备接收笔记本电脑中的视频。在笔记本电脑中,我需要使用 opencv 处理视频,然后以 RTSP 格式流式传输视频。如何接收视频,然后使用 G-streamer c++ 在 RTSP 中流式传输视频?请分享示例代码
这是我的代码 sender.cpp 在笔记本电脑 #1 中,receiver.cpp 代码在笔记本电脑 #2 中。我无法在接收端看到视频。此外,附上我的构建信息供您参考
发件人.cpp
cv::VideoCapture video;
cv::Mat frame;
cv::VideoWriter videoOut;
videoOut.open("appsrc ! videoconvert ! video/x-raw, format=YUY2,width=640,height=480,farmerate=30/1 ! jpegnc ! rtpjpegpay ! udpsink host=192.168.1.200 port=5000", cv::CAP_GSTREAMER, 0 , 30, cv::Size(640,480),true);
if(video.open(0)) {
while(video.isOpened()) {
video >> frame;
cv::putText(frame, "Processed Video", cv::Point(100,80),cv::FONT_HERSHEY_PLAIN, 2, cv::Scalar(0,0,255), 2);
if(videoOut.isOpened())
videoOut.write(frame);
else
cout<<"Writer Not Opened";
cv::imshow("Sender", frame);
cv::waitKey(25);
}
}
else {
cout<<"Camera Not Opened";
}
接收器.cpp
cv::VideoCapture cap("udpsrc port=5000 ! application/x-rtp, encoding-name=JPEG, payload=26 ! rtpjpegdepay ! jpegdec ! videoconvert ! appsink sync = true async = true", cv::CAP_GSTREAMER);
if(cap.isOpened()) {
cv::Mat m;
cout<<"Video Init";
while(1) {
cout<<"Video Streaming";
cap >> m;
cv::imshow("Receiver", m);
cv::waitKey(10);
}
}
else
cout<<"Cap Not Opening";
解决方案
要使用 gstreamer 提取视频,请确保使用 GStreamer 构建 opencv。完成此操作后,只需为 GStreamer 创建管道并将其作为参数传递给cv::VideoCapture()
对象,如下所示
std::string videoAddress = "udpsrc port=50004 ! application/x-rtp, encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! videoconvert ! appsink sync = true async = true";
cv::VideoCapture *camera = new cv::VideoCapture();
cameraOpened = camera->open(videoAddress, cv::CAP_GSTREAMER);
我不确定如何帮助您解决问题的第二部分。
推荐阅读
- python-3.x - 我们可以使用 boto3 库调用具有大负载的 lambda 函数吗
- sql - 另一列的每一行上的类似 SQL 的运算符
- reactjs - 如何修复janus连接期间与网关的连接丢失(是否关闭?)的错误?
- typescript - 如何在 TypeScript 中动态调用类方法?
- node.js - 修复返回之外的 Typescript 函数
- mongodb - 无法将一个字段复制到另一个已归档的 Mongo db Native 查询
- android - 我被阻止构建我的应用程序,Android Studio 错误:'app:mergeDebugResources'
- javascript - 使用 requirejs 加载 npm 包
- solr - Solr FastVector 短语突出显示多值字段
- javascript - 如何使用函数组件根据另一个列表将新属性添加到 JSON 列表中