对接国标28181

对接国标的几个理由

1.国标28181是一个通用的标准,如果你想服务于公检法之类的政府视频平台,是绕不过国标的

2.国标28181的使用,意味着在这些平台通用,不需要改来改去

3.国标28181也意味着你的企业有了进入公检法的基本门槛

国标-码流规范

码流需要用ps流承载

截图国标的说明书

至于码流的详细分析如下

http://blog.csdn.net/chen495810242/article/details/39207305

国标-设备编码

所有的设备采用20 位编码表征,其中的11-13位表明id的身份,是用户,还是摄像头(132),还是服务器,

如果自己的id构造不正确是不能正常通过国标的sip的通信的

<Device Id="xxxxxxx00001327895126" Name="南天门" Status="ON"/>
<Device Id="XXXXXX00001327895127" Name="五指山" Status="ON"/>
<Device Id="XXXXXX00001327895128" Name="盘丝洞" Status="ON"/>
<Device Id="XXXXXX00001327895129" Name="东京" Status="ON"/>
<Device Id="XXXXXX00001327895131" Name="xxx" Status="ON"/>
详细见下文

 国标-协议的使用

国标要求使用sip做相互通信的协议,好处就是,所有的设备(摄像头,服务器,代理服务器,用户终端)都分配一个id,

从设备的id能分析出设备信息,编制的时候的对应位置之类的

sip的扩展也是很容易,通信也很简单,并且有开源库osip2,exosip2的支持,集成也很容易

sip协议详解

https://www.ibm.com/developerworks/cn/opensource/os-cn-sip-intro/

 国标-摄像头配置

首先需要配置摄像头支持gb28181,进入配置页面

 sip的个列分析

 http://blog.csdn.net/pengrui18/article/details/21563421

 国标-流的传输

sip依靠代理服务器能做到p2p的传播,主要原因在于sip协议在协商的传输的过程中,记录了每个注册设备,用户的公网地址加端口的记录,

所以流的传播可以直接通过公网进行,屏蔽了局域网的局限,而且协商好了之后,服务器只在中间做消息的传播,流直接p2p,这样避免了传输级数的增加而带来的数据丢失的增加

下面是关于传输的一些讨论

http://blog.csdn.net/ljh081231/article/details/28898049

 国标-对接流程

对接国标,要使用别的平台的标准流,工作需要

一般别的厂商已经把国标摄像头平台已经对接好了,

别的设备或者用户想接入有两种方式,

第一种摄像头的的接入,只能是下级,摄像头要主动向平台注册,然后等其他用户来拉流,处于随时待命状态,但是摄像头不能拉取设备列表,不能主动发起请求

第二种以国标平台的级联服务器的形式接入平台,然后其他的用户端(甚至我们自己的服务器本机)注册到自己的服务器平台,自己的服务器平台转发请求,这样的好处在于,你可以拉取设备列表,然后给每个用户,用户可以根据需要请求任意一个设备,相当于每个用户都有一份通讯录

也就是  用户-----------》自己服务器-------------》国标平台------》摄像头

应该就是sip的背靠背模式(虽然我们只用了单向的请求,可是理论上来讲可以实现双向的通信)

sip通信过程中,会把处于局域网里面的设备的地址修改,变成公网地址+端口,所以,能实现p2p通信

所以,请求成功,视频流数据不会经过两个服务器,直接设备到用户

还有目前很多平台都说自己是国标流,但是是不是很难讲,毕竟每过段时间国标也在修改,而且流里面有些位是可以变化的,所以看见很多厂商说自己是国标,一边私底下都想做一个自己的标准,不停地向别人推自己sdk,所以一个平台,用他平台的sdk解码是最好的

解码的话,大华,海康的播放器sdk都提供播放回调接口,直接朝里面扔一个个的RTP数据就可以,他会回调给你图片流

服务器为192.168.3.199  服务器id 34010000002000030199

客户端为192.168.3.111  用户id 34010000004000000001

客户端拉取流的过程如下

sip 111注册

REGISTER sip:34010000002000030199@192.168.3.199 SIP/2.0 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport;branch=z9hG4bK1295772622 
From: <sip:34010000004000000001@3401000000>;tag=2211489183 
To: <sip:34010000004000000001@3401000000> 
Call-ID: 3061738487 
CSeq: 1 REGISTER 
Contact: <sip:34010000004000000001@192.168.3.111:62475;line=e8317b383eca8a3> 
Max-Forwards: 70 
User-Agent: eXosip/4.1.0 
Expires: 3600 
Content-Length: 0 

sip 199回应,未授权

SIP/2.0 401 Unauthorized 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport=62475;branch=z9hG4bK1295772622 
From: <sip:34010000004000000001@3401000000>;tag=2211489183 
To: <sip:34010000004000000001@3401000000>;tag=3481274187 
Call-ID: 3061738487 
CSeq: 1 REGISTER 
User-Agent: SipSvr 1.0 
WWW-Authenticate: Digest realm="3401000000", nonce="1524463850-6b981277faed8cb24f208ec4a2fb0d47" 
Content-Length: 0 

sip 111再注册

REGISTER sip:34010000002000030199@192.168.3.199 SIP/2.0 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport;branch=z9hG4bK19408890 
From: <sip:34010000004000000001@3401000000>;tag=2211489183 
To: <sip:34010000004000000001@3401000000> 
Call-ID: 3061738487 
CSeq: 2 REGISTER 
Contact: <sip:34010000004000000001@192.168.3.111:62475;line=e8317b383eca8a3> 
Authorization: Digest username="34010000004000000001", realm="3401000000", nonce="1524463850-6b981277faed8cb24f208ec4a2fb0d47", uri="sip:34010000002000030199@192.168.3.199", response="98d81f717359bf945ac0efa4792068be", algorithm=MD5 
Max-Forwards: 70 
User-Agent: eXosip/4.1.0 
Expires: 90 
Content-Length: 0 

199回应,注册成功

SIP/2.0 200 OK 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport=62475;branch=z9hG4bK19408890 
From: <sip:34010000004000000001@3401000000>;tag=2211489183 
To: <sip:34010000004000000001@3401000000>;tag=2160197076 
Call-ID: 3061738487 
CSeq: 2 REGISTER 
User-Agent: SipSvr 1.0 
Expires: 3600 
Date: 2018-04-23T14:10:50.535 
TimeRevise: 20180423141050 
Content-Length: 0 

111 请求流

INVITE sip:34010000002000030199@192.168.3.199 SIP/2.0 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport;branch=z9hG4bK1674952390 
From: <sip:34010000004000000001@3401000000>;tag=2725342731 
To: <sip:34010000001310000223@3401000000> 
Call-ID: 995769000 
CSeq: 20 INVITE 
Contact: <sip:34010000004000000001@192.168.3.111:62475> 
Content-Type: APPLICATION/SDP 
Max-Forwards: 70 
User-Agent: eXosip/4.1.0 
Subject: 34010000001310000223:021788,34010000004000000001:3 
Content-Length:   182 
 
v=0 
o=34010000004000000001 0 0 IN IP4 192.168.3.111 
s=Play 
c=IN IP4 192.168.3.111 
t=0 0 
m=video 30168 RTP/AVP 96 126 
a=recvonly 
a=rtpmap:96 PS/90000 
a=rtpmap:126 H264/90000 

111请求流后,199的应答

SIP/2.0 100 Trying 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport=62475;branch=z9hG4bK1674952390 
From: <sip:34010000004000000001@3401000000>;tag=2725342731 
To: <sip:34010000001310000223@3401000000> 
Call-ID: 995769000 
CSeq: 20 INVITE 
User-Agent: SipSvr 1.0 
Content-Length: 0 

199应答请求流ok

SIP/2.0 200 OK 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport=62475;branch=z9hG4bK1674952390 
From: <sip:34010000004000000001@3401000000>;tag=2725342731 
To: <sip:34010000001310000223@3401000000>;tag=2651853671 
Call-ID: 995769000 
CSeq: 20 INVITE 
Contact: <sip:34010000001310000223@192.168.3.199:5060> 
Content-Type: Application/sdp 
User-Agent: SipSvr 1.0 
Content-Length:   178 
 
v=0 
o=1234567890123456 0 0 IN IP4 192.168.3.199 
s=Play 
c=IN IP4 192.168.3.199 
t=0 0 
m=video 39224 RTP/AVP 96 126 
a=recvonly 
a=rtpmap:96 PS/90000 
a=rtpmap:126 H264/90000 

111 应答

ACK sip:34010000001310000223@192.168.3.199:5060 SIP/2.0 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport;branch=z9hG4bK974740072 
From: <sip:34010000004000000001@3401000000>;tag=2725342731 
To: <sip:34010000001310000223@3401000000>;tag=2651853671 
Call-ID: 995769000 
CSeq: 20 ACK 
Contact: <sip:34010000004000000001@192.168.3.111:62475> 
Max-Forwards: 70 
User-Agent: eXosip/4.1.0 
Content-Length: 0 
 

message 请求

MESSAGE sip:34010000002000030199@192.168.3.199 SIP/2.0 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport;branch=z9hG4bK1941425718 
From: <sip:34010000004000000001@3401000000>;tag=807065409 
To: <sip:34010000002000030199@192.168.3.199> 
Call-ID: 3749161452 
CSeq: 20 MESSAGE 
Content-Type: Application/MANSCDP+xml 
Max-Forwards: 70 
User-Agent: eXosip/4.1.0 
Content-Length:   169 
 
<?xml version="1.0" encoding="GB2312" ?> 
<Notify> 
<CmdType>Keepalive</CmdType> 
<SN>4</SN> 
<DeviceID>34010000004000000001</DeviceID> 
<Status>OK</Status> 
</Notify> 

message 应答

SIP/2.0 200 OK 
Via: SIP/2.0/UDP 192.168.3.111:62475;rport=62475;branch=z9hG4bK1941425718 
From: <sip:34010000004000000001@3401000000>;tag=807065409 
To: <sip:34010000002000030199@192.168.3.199>;tag=3099450161 
Call-ID: 3749161452 
CSeq: 20 MESSAGE 
User-Agent: SipSvr 1.0 
Content-Length: 0 
原文地址:https://www.cnblogs.com/baldermurphy/p/7603892.html