• 国标GB28181协议客户端开发(三)查询和实时视频画面


    国标GB28181协议客户端开发(三)查询和实时视频画面

    本文是《国标GB28181协议设备端开发》系列的第三篇,探讨了信息查询和实时视频在GB28181协议中的应用。首先,介绍了设备目录查询、设备信息查询和设备状态查询三个重要的信息查询功能,并详细解释了它们在协议中的信令交互流程。随后,深入讨论了实时视频的实现方式,包括数据传输协议和传输规范要求。读者将通过本文了解到GB28181协议设备端开发中信息查询和实时视频的关键知识点。

    一、设备目录查询

    设备目录查询是GB28181协议中的一项重要功能。其通过查询设备目录,获取到当前系统中的所有设备信息。设备目录查询的信令交互流程如下:

    1. 设备端发送查询请求信令(Query Catalog)到设备管理平台;

    2. 设备管理平台接收到请求后,返回设备目录信息(Catalog)给设备端。

    通过设备目录查询,设备端能够获取到系统中所有设备的基本信息,包括设备ID、名称、类型等。

    GB28181平台 -> 设备端

    MESSAGE sip:34020000001110000001@3402000000 SIP/2.0
    From: ;tag=bccedfd000105
    To: 
    Content-Length: 127
    CSeq: 5 MESSAGE
    Route: <sip:34020000001110000001>
    Call-ID: 12345678900105
    Via: SIP/2.0/UDP 192.168.1.54:5060;wlsscid=377aa9afcf1b36f;branch=123133532300105
    Content-Type: Application/MANSCDP+xml
    Max-Forwards: 70
    
    
    <Query>
    <CmdType>CatalogCmdType>
    <SN>2SN>
    <DeviceID>34020000001110000001DeviceID>
    Query>
    

    设备端 -> GB28181平台

    MESSAGE sip:34020000002000000001@192.168.1.54:5060 SIP/2.0
    Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
    From: 
    To: 
    Call-ID: 000072AE00002CD6@192.168.1.54
    CSeq: 3 MESSAGE
    Max-Forwards: 70
    User-Agent: HTSIP UA/2.1
    Content-Type: Application/MANSCDP+xml
    Content-Length: 558
    
    
    <Response>
    <CmdType>CatalogCmdType>
    <SN>2SN>
    <DeviceID>34020000001110000001DeviceID>
    <SumNum>1SumNum>
    <DeviceList Num="1">
    <Item>
    <DeviceID>34020000001310000001DeviceID>
    <Name>34020000001110000001Name>
    <Manufacturer>HBStreamManufacturer>
    <Model>IP CameraModel>
    <Owner>OwnerOwner>
    <CivilCode>CivilCodeCivilCode>
    <Address>192.168.1.54Address>
    <Parental>0Parental>
    <ParentID>34020000001110000001ParentID>
    <RegisterWay>1RegisterWay>
    <Secrecy>0Secrecy>
    <Status>ONStatus>
    Item>
    DeviceList>
    Response>
    

    二、设备信息查询

    设备信息查询允许设备端通过设备ID查询特定设备的详细信息。其信令交互流程如下:

    1. 设备端发送查询请求信令(Query Device)到设备管理平台,携带要查询设备的ID;

    2. 设备管理平台接收到请求后,返回设备详细信息(Device Info)给设备端。

    设备信息查询使设备端能够获取到特定设备的更多信息,如设备的制造商、型号、固件版本等。

    GB28181平台 -> 设备端

    MESSAGE sip:34020000001110000001@3402000000 SIP/2.0
    From: ;tag=bccedfd000104
    To: 
    Content-Length: 134
    CSeq: 5 MESSAGE
    Route: <sip:34020000001110000001>
    Call-ID: 12345678900104
    Via: SIP/2.0/UDP 192.168.1.54:5060;wlsscid=377aa9afcf1b36f;branch=123133532300104
    Content-Type: Application/MANSCDP+xml
    Max-Forwards: 70
    
    
    <Query>
    <CmdType>DeviceInfoCmdType>
    <SN>17430SN>
    <DeviceID>34020000001110000001DeviceID>
    Query>
    

    设备端 -> GB28181平台

    MESSAGE sip:34020000002000000001@192.168.1.54:5060 SIP/2.0
    Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
    From: 
    To: 
    Call-ID: 00003D6C00004AE1@192.168.1.54
    CSeq: 2 MESSAGE
    Max-Forwards: 70
    User-Agent: HTSIP UA/2.1
    Content-Type: Application/MANSCDP+xml
    Content-Length: 308
    
    
    <Response>
    <CmdType>DeviceInfoCmdType>
    <SN>17430SN>
    <DeviceID>34020000001110000001DeviceID>
    <DeviceName>HbsDeviceDeviceName>
    <Result>OKResult>
    <Manufacturer>HBStreamManufacturer>
    Response>
    

    三、设备状态查询

    设备状态查询允许设备端获取设备的实时状态信息。其信令交互流程如下:

    1. 设备端发送查询请求信令(Query Status)到设备管理平台,携带要查询设备的ID;

    2. 设备管理平台接收到请求后,返回设备的状态信息(Status Info)给设备端。

    设备状态查询可获得设备的在线状态、网络连接状态等关键信息,帮助设备端监控和管理设备。

    GB28181平台 -> 设备端

    MESSAGE sip:34020000001110000001@3402000000 SIP/2.0
    From: ;tag=bccedfd000106
    To: 
    Content-Length: 134
    CSeq: 5 MESSAGE
    Route: <sip:34020000001110000001>
    Call-ID: 12345678900106
    Via: SIP/2.0/UDP 192.168.1.54:5060;wlsscid=377aa9afcf1b36f;branch=123133532300106
    Content-Type: Application/MANSCDP+xml
    Max-Forwards: 70
    
    
    <Query>
    <CmdType>DeviceStatusCmdType>
    <SN>248SN>
    <DeviceID>34020000001110000001DeviceID>
    Query>
    

    设备端 -> GB28181平台

    MESSAGE sip:34020000002000000001@192.168.1.54:5060 SIP/2.0
    Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
    From: 
    To: 
    Call-ID: 00005F9000006952@192.168.1.54
    CSeq: 4 MESSAGE
    Max-Forwards: 70
    User-Agent: HTSIP UA/2.1
    Content-Type: Application/MANSCDP+xml
    Content-Length: 295
    
    
    <Response>
    <CmdType>DeviceStatusCmdType>
    <SN>248SN>
    <DeviceID>34020000001110000001DeviceID>
    <Result>OKResult>
    <Online>ONLINEOnline>
    <Status>OKStatus>
    <Encode>ONEncode>
    <Record>OFFRecord>
    <DeviceTime>2023-06-28T13:54:52DeviceTime>
    Response>
    
    

    四、实时视频

    实时视频是GB28181协议中最核心的功能之一。其数据传输协议和传输规范要求如下:

    1. 数据传输协议:
      GB28181协议规定了两种数据传输协议,分别是实时传输协议(RTP)和实时控制协议(RTCP)。RTP负责传输实时音视频数据,而RTCP则用于控制数据传输过程中的反馈和控制信息。

    2. 传输规范要求:
      GB28181协议对实时视频的传输做出了一些规范要求。其中包括视频编码格式、分辨率、帧率、码率等参数的定义,以及数据传输时的加密和压缩要求。

    通过实时视频功能,设备端可以实时获取到设备摄像头捕捉的图像和音频数据,实现实时监控和远程查看。

    下面是一个完整的实时视频信令交互过程:

    1. GB28181平台需要查看实时画面的时候,向目标设备发送实时视频邀请信令(Invite)。

    2. 目标设备接收到邀请信令后,返回确认应答信令(200 OK)给设备管理平台。

    3. GB28181平台接收到确认应答后,返回确认ACK应答信令给设备端,表示实时视频请求成功。

    4. 设备端发送RTP数据包,携带视频和音频数据,通过网络传输给目标设备。

    5. 目标设备接收到RTP数据包,解析并播放视频和音频数据。

    6. 设备端或目标设备中任一方发送终止信令(Bye)表示结束实时视频。

    7. 对方接收到终止信令后,返回确认应答信令(200 OK)。

    8. 双方停止传输媒体数据。

    GB28181平台 -> 设备端, INVITE

    INVITE sip:34020000001310000001@3402000000 SIP/2.0
    Call-ID: helloVideo
    CSeq: 1 INVITE
    From: ;tag=bccedfd0111
    To: 
    Max-Forwards: 70
    Contact: 
    Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-bff9-4f3000109
    Content-Type: application/sdp
    Content-Length: 225
    
    v=0
    o=34020000001310000001 0 0 IN IP4 192.168.1.54
    s=Play
    c=IN IP4 192.168.1.54
    t=0 0
    m=video 6000 RTP/AVP 96 98 97
    a=recvonly
    a=rtpmap:96 PS/90000
    a=rtpmap:98 H264/90000
    a=rtpmap:97 MPEG4/90000
    y=0100000001
    f=
    

    设备端 -> GB28181平台,200OK

    SIP/2.0 200 OK
    Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-bff9-4f3000109
    From: ;tag=bccedfd0111
    To: ;tag=2ea6bb3
    Contact: 
    Call-ID: helloVideo
    CSeq: 1 INVITE
    Max-Forwards: 70
    Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,REFER,UPDATE,INFO
    Supported: timer
    Session-Expires: 200;refresher=uac
    Server: Happytime Agent Ver 1.0
    Content-Type: application/sdp
    Content-Length: 151
    
    v=0
    o=34020000001110000001 0 0 IN IP4 192.168.1.54
    s=Play
    c=IN IP4 192.168.1.54
    t=0 0
    m=video 19002 RTP/AVP 96
    a=rtpmap:96 PS/90000
    a=sendonly
    
    

    GB28181平台 -> 设备端,ACK

    ACK sip:34020000001310000001@3402000000 SIP/2.0
    Call-ID: helloVideo
    CSeq: 1 ACK
    From: 34020000002000000001@3402000000>;tag=bccedfd0111
    To: 34020000001110000001@3402000000>
    Max-Forwards: 70
    Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-00110
    Content-Length: 0
    

    BYE

    BYE sip:34020000001310000001@3402000000 SIP/2.0
    From: 34020000002000000001@3402000000>;tag=bccedfd0111
    To: sip:34020000001110000001@3402000000;tag=2ea6bb3
    CSeq: 2 BYE
    Call-ID: helloVideo
    Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-00111
    Max-Forwards: 70
    Content-Length: 0
    

    合作请加WX:hbstream
    合作请加作者hbstream(http://haibindev.cnblogs.com),转载请注明作者和出处

  • 相关阅读:
    Zabbix监控平台环境部署
    Android 13.0 无源码app修改它的icon图标
    前端知识案例101-javascript基础语法-捕获介绍
    如何找回删除的文件?数据恢复,看这几个方法
    云服务器重启后无法获取IP地址怎么办?
    Pytorch实现RNN预测模型并使用C++相应的ONNX模型推理
    Worthington蘑菇多酚氧化酶的特性及测定方案
    AOP实现系统告警
    单例模式(饿汉式和懒汉式 )(简洁版)(Java)
    python的反射机制
  • 原文地址:https://www.cnblogs.com/haibindev/p/17519260.html