opencv GStreamer拉rtsp流之Windows平台

目录

  • [1. 先决条件](#1. 先决条件)
  • [2. 代码](#2. 代码)
  • [3. GStreamer参数说明](#3. GStreamer参数说明)

1. 先决条件

opencv要想使用GStreamer拉rtsp流,那么编译opencv必须带上GStreamer编译选项,具体参见:opencv带GStreamer之Windows编译

2. 代码

cpp 复制代码
#include <opencv2/opencv.hpp>

using namespace cv;

int opencv_gstreamer_decoder_demo()
{
	cv::VideoCapture capture;
	capture.open("rtspsrc location=rtsp://admin:a88888888@192.168.1.64:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1 latency=0 ! decodebin ! videoconvert ! video/x-raw,format=BGR ! appsink", cv::CAP_GSTREAMER);
	if (!capture.isOpened())
	{
		cout << "open video faild" << std::endl;
		std::cout << cv::getBuildInformation() << std::endl;
		return -1;
	}
	cv::Mat frame;
	while (capture.read(frame))
	{
		imshow("frame", frame);
		if (waitKey(1) == 'q') break;
	}
	// 释放资源
	capture.release();
	cv::destroyAllWindows();

	return 0;
}

int main()
{
	opencv_gstreamer_decoder_demo();
	return 0;
}

3. GStreamer参数说明

cpp 复制代码
"rtspsrc location=rtsp://admin:a88888888@192.168.1.64:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1 latency=0 ! decodebin ! videoconvert ! video/x-raw,format=BGR ! appsink"
  1. rtspsrc location={rtsp_url} :这是GStreamer的元素,用于指定RTSP流的位置。 {rtsp_url} 是您实际的RTSP流URL,包括用户名、密码、IP地址、端口号和流路径。

  2. latency=0 :这是 rtspsrc 元素的属性,用于设置延迟时间。在这种情况下,将延迟设置为0,以尽可能减少延迟。

  3. decodebin :这是GStreamer的元素,用于自动选择适当的解码器来解码输入流。它根据输入流的编码格式动态选择解码器。

  4. videoconvert :这是GStreamer的元素,用于进行视频格式转换。它将解码后的视频帧转换为指定的格式,以便后续处理或显示。

  5. video/x-raw,format=BGR :这是GStreamer的媒体类型,用于指定输出视频帧的格式。在这种情况下,它指定输出视频帧的格式为BGR。

  6. appsink :这是GStreamer的元素,用于将视频帧传递给应用程序进行处理。它充当视频帧的接收器,以供后续在应用程序中使用。

综上所述,该GStreamer管道的作用是从指定的RTSP流中拉取视频数据,然后通过解码、格式转换等处理,将视频帧传递给应用程序进行进一步处理或显示。

相关推荐
2501_9416527716 小时前
基于DETR模型的棉花品种识别与分类检测研究_r50_8xb2-150e_coco数据集训练
人工智能·数据挖掘
Elastic 中国社区官方博客16 小时前
金融服务公司如何大规模构建上下文智能
大数据·人工智能·elasticsearch·搜索引擎·ai·金融·全文检索
无人装备硬件开发爱好者16 小时前
RV1126B 边缘端 AI 实战:YOLOv8+DNTR 微小目标跟踪监测全栈实现 1
人工智能·yolo·目标跟踪
新缸中之脑16 小时前
为AI代理设计分层记忆
人工智能
爱吃泡芙的小白白16 小时前
机器学习输入层:从基础到前沿,解锁模型性能第一关
人工智能·机器学习
朴实赋能16 小时前
生死线:2026年跨境电商大洗牌,AI赋能者存,守旧者亡——AI助力怎样重塑品牌出海新规则
人工智能·独立站运营·智矩引擎·跨境电商创业·ai跨境电商·tiktok电商运营·2026跨境电商新趋势
梵得儿SHI16 小时前
深度拆解 Google Personal Intelligence:下一代个性化 AI 的技术架构、隐私保障与未来愿景
大数据·人工智能·agi·pi·跨产品数据整合
Turboex邮件分享16 小时前
邮件投递全流程故障排查手册
运维·人工智能
runner365.git16 小时前
做一个基于ffmpeg的AI Agent智能体
人工智能·ffmpeg·大模型
策知道16 小时前
2026年北京政府工作报告产业指标深度解析
大数据·数据库·人工智能·搜索引擎·政务