zoukankan      html  css  js  c++  java
  • 对接国标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 
  • 相关阅读:
    快速搭建 STF开源云测平台 测试人员专用
    快速搭建sonarqube代码检测平台
    使用jenkins交付微服务应用至kubernetes集群
    普通主机拥有集群控制权限
    为ingress资源添加basic auth认证
    GO语言入门
    GO语言入门
    GO语言入门
    GO语言入门
    关闭提示的下拉框
  • 原文地址:https://www.cnblogs.com/baldermurphy/p/7603892.html
Copyright © 2011-2022 走看看