国标GB/T28181标准从海康摄像头获取PS流

本文详细描述了如何通过模拟SIPServer和SIPClient,使用IP直连的方式从海康摄像头获取PS流,包括设置SIP服务器、配置摄像头、心跳保持和接收PS流的步骤,并强调了Wireshark在调试过程中的重要性。

本文记录使用IP直连的方式从海康摄像头获取PS流的过程及注意事项。本例模拟了一个SIP Server(UAS),设置摄像头注册到上面,之后模拟了一个 SIP Client(UAC)向摄像头的IP地址发送获取视频的请求,之后监听UDP的端口来接收摄像头发送过来的PS流。

先行知识

1,了解 SIP 基本概念

2,会使用通用编程语言收发UDP包

3,通读国标《GB/T 28181-2016》文档

一些概念

1,SIP 会话初始协议栈规定了一套建立通信的流程,国标 GB28181 基于 SIP 来构建并添加规范。

2,通过 GB28181 标准,就可以调用同样支持 GB28181 标准的监控设备(IP Camera,NVR等)

3,海康网络摄像头需要连接到SIP服务器,并且需要保持心跳,否则推送的PS流会断。

我的环境

IP Camera(IPC):192.168.42.128

服务器(UAS):192.168.3.189

我的电脑(UAC):192.168.103.232

主要流程

1,编写模拟的 SIP Server,功能:提供注册和心跳的应答。

2,开启海康IPC的GB28181支持,填写SIP服务并设置IP白名单。

3,启动一个程序来监听端口,用于接收IPC返回的数据。

4,编写 SIP Client,向IPC发起 INVITE 请求,并对IPC返回的SIP消息进行应答。

模拟 SIP Server

此处基于 Pjsua2 实现

需要先完成 Pjsip/Pjsua2 环境的搭建

按照 GB28181 的流程,SIP Server 需要对设备进行验证,然后才能允许其注册,不过这里可以取巧,就是不进行验证,IPC注册就返回注册成功,心跳也是。

static pj_bool_t default_mod_on_rx_request(pjsip_rx_data *rdata)
{
  pjsip_tx_data *tdata;
  // 判断如果发送过来的数据为注册类型进行相应处理
  if (pjsip_method_cmp(&rdata->msg_info.msg->line.req.method, &pjsip_register_method) == 0)
  {
    // 解析认证请求
    // are
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值