为什么使用GB28181而不是直接rtsp拉流

本文对比了GB28181 sip协议和RTSP协议在视频流传输中的应用。尽管两者在底层协议上相似,但GB28181更适合服务器作为服务端的场景,而RTSP更适用于客户端拉流。RTSP连接可能面临资源消耗大、需额外启动服务和外网拉取内网资源的限制。因此,大规模连接推荐使用接收推流方式,如sip协议,以实现更好的资源管理和扩展性。对于少量连接,RTSP仍可用于测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、GB sip和rtsp

实际上,sip协议和rtsp协议大同小异,并没有什么本质上得不同,那为什么我们不使用rtsp 而转而使用GB28181国标得sip协议?原因是:使用得方向不同,我们使用rtsp拉流是作为客户端,这时摄像机是服务端,而使用国标sip,摄像机是客户端,我们得服务器是服务端,方向不同,所以更好得方式是使用接收推流,当然,世事无绝对,由于某些场合得需求,是使用rtsp拉流比较合适得。

2、rtsp连接得问题

并不是rtsp 协议自身有问题,rtsp协议是非常成熟得,和sip一样,两者使用得相同得子协议为:
1 RTP协议
2 SDP协议
    rtp当然包括rtcp 等协议,rtsp和sip协议属于信令,而实际传输离不了RTP,终究是实时传输协议来进行传输层得工作。
    七层协议里,传输层有两种协议主导,1 tcp 2 udp,而rtp既可以使用tcp,也可以使用udp,两者工作得方式不同,看情况来进行选择。既然两者内部使用相同得协议,那又有多大得区别呢?说重点,这是rtsp连接得问题就在于:

  • 资源消耗较多
  • 再其他连接再需要启动一个服务
  • 无法在外网直接拉内网得资源

而接受推流得方式本身就是服务模式,没有拉流动作,主动接受流,所以优点体现在此。
使用sip协议
上图使用sip进行接收数据流协议,接受推流得方式无论是单点和多点接收比较容易扩展,rtsp连接需要更多得资源,包含断线重连。

3、总结

所以情况如下:
     少量连接使用rtsp进行测试,在大量连接得情况下,rtsp客户端需要做得比较完善,一般来讲,几十个乃至几百个摄像头如果使用rtsp连接,代码是比较难控制得,很多程序员使用一路多个线程控制,系统资源会吃很多。在程序员编程良好得情况下,依然多出拉得资源。

     大量连接最好使用接收推流得方式,使用异步服务器来接收数据,再分流进行各种工作。

<think>好的,用户想了解如何用ZLMediaKit实现GB28181标准的支持。首先,我需要回顾一下GB28181标准的基本概念和ZLMediaKit的功能。GB28181是中国制定的视频监控联网系统标准,主要涉及设备之间的信令交互和媒体的传输。而ZLMediaKit是一个开源的媒体服务器,支持多种协议,如RTSP、RTMP、HLS等,但原生并不直接支持GB28181。 接下来,用户的问题是如何集成这两者。根据之前提供的引用内容,WVP项目结合了ZLMediaKit来实现GB28181的支持。WVP负责处理信令部分,比如设备的注册、控制命令等,而ZLMediaKit则负责媒体的转发和分发。所以,可能需要将WVP作为中间层,处理GB28181的信令,然后通过ZLMediaKit进行媒体的处理。 需要明确步骤:首先部署ZLMediaKit,然后配置WVP来连接摄像头和ZLMediaKit。WVP会处理SIP信令,摄像头进行通信,然后通过ZLMediaKit的API进行推。可能还需要设置NAT穿透,确保设备能够正确注册和传输。 另外,引用中提到的BXC_SipServer也是一个基于C++的信令服务器,可能可以作为替代方案。不过用户主要问的是ZLMediaKit,所以重点应放在WVP和ZLMediaKit的组合上。 可能的问题点包括信令服务器的配置、媒体的转发设置,以及如何测试整个系统的连通性。需要详细说明每个组件的安装步骤、配置文件的关键参数,以及如何验证各组件是否正常工作。例如,在WVP的配置文件中指定ZLMediaKit的地址和端口,确保媒体能正确转发。 最后,用户可能需要了解应用场景,比如如何通过浏览器播放摄像头视频,或者如何将非国标设备接入系统。这些都可以通过WVP和ZLMediaKit的组合实现,需要简要提及这些应用案例。</think>### 如何使用 ZLMediaKit 实现 GB28181 标准的支持? GB28181 是中国国家标准《公共安全视频监控联网系统信息传输、交换、控制技术要求》,主要用于视频监控设备的互联互通。ZLMediaKit 是一个轻量级媒体服务器框架,原生不直接支持 GB28181 协议,但可通过信令服务器(如 WVP、BXC_SipServer)结合实现完整的 GB28181 功能[^2][^4]。 --- ### 集成方法分步说明 #### 1. **核心组件角色分工** - **ZLMediaKit**:负责媒体的接收、转码、录制及多协议分发(如 RTSP/RTMP/HLS 等)[^3][^4]。 - **信令服务器(如 WVP 或 BXC_SipServer)**:处理 SIP 信令交互(设备注册、心跳、点播、云台控制等),并 ZLMediaKit 联动实现媒体转发[^1]。 #### 2. **部署程** **步骤 1:部署 ZLMediaKit** ```bash # 克隆源码并编译 git clone --depth 1 https://github.com/ZLMediaKit/ZLMediaKit cd ZLMediaKit git submodule update --init mkdir build && cd build cmake .. -DENABLE_WEBRTC=ON # 根据需要启用功能 make -j4 ``` **关键配置**(`config.ini`): ```ini [rtp] # 启用 RTP 接收(GB28181 基于 RTP over TCP/UDP) rtp_proxy.check_source=0 ``` **步骤 2:部署信令服务器(以 WVP 为例)** - **WVP 安装**: ```bash git clone https://github.com/648540858/wvp-GB28181-pro.git # 配置数据库并启动(需 Java 环境) ``` - **WVP 配置**(`application.yml`): ```yaml zlm: # 指向 ZLMediaKit 的媒体地址 media-ip: 192.168.1.100 media-port: 30443 # SIP 服务配置 sip-id: 34020000002000000001 sip-domain: 3402000000 ``` **步骤 3:设备接入媒体转发** 1. **摄像头配置**:在摄像头后台填写 WVP 的 SIP 服务器地址和端口。 2. **信令交互**:WVP 接收设备的注册、心跳信令,并通过 SIP 协议发起视频点播请求。 3. **媒体转发**:摄像头推送 RTP 至 ZLMediaKit,ZLMediaKit 将其转换为 RTSP/RTMP 等协议供客户端播放。 #### 3. **关键功能验证** - **设备注册**:检查 WVP 管理界面是否显示在线设备。 - **实时播放**:通过 `ffplay rtsp://zlm-ip:554/stream_id` 测试分发。 - **云台控制**:通过 WVP 接口发送 PTZ 指令,验证摄像头响应。 --- ### 应用场景 1. **无插件浏览器播放**:ZLMediaKit 支持 HLS/WebRTC,可将 GB28181 转换为网页兼容格式[^4]。 2. **多协议接入分发**:将非国标设备(如 RTMP 推)通过 WVP 转发至国标平台。 3. **级联上级平台**:通过 WVP 实现跨区域视频监控平台级联。 --- ### 常见问题 - **NAT 穿透问题**:若设备在私有网络,需在 WVP 中配置 STUN 或端口映射。 - **延迟优化**:调整 ZLMediaKit 的缓存参数(如 `mscfg.modify_stamp`)以降低延迟。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qianbo_insist

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值