国标GB28181协议客户端开发(一)整体流程和技术选型

国标GB28181协议客户端开发(一)整体流程和技术选型

本系列文章将介绍国标GB28181协议设备端的开发过程。本文旨在探讨整体设计和技术选型方面的考虑,为开发人员提供指导和参考。文章将从设备端开发的整体架构、信令交互流程以及关键技术选型等方面展开讨论,帮助有需要的读者了解和把握GB28181协议设备端开发的要点,掌握开发GB28181协议设备端所需的技术和知识,为实际项目的开发奠定基础。

一、GB28181协议简介

GB28181全称是“公共安全视频监控联网系统信息传输、交换、控制技术要求”,它定义了视频监控设备之间的联网通信协议,旨在实现视频监控系统的互联互通和统一管理。而近些年来,随着视频监控系统的快速发展,GB28181已经成为事实上的IPC网络摄像头、NVR网络硬盘录像机等各种监控设备必有的标准协议。

  1. 基本架构:

    GB28181协议的基本架构包括设备端和平台端。设备端包括视频监控设备,如摄像头、录像机等;平台端则是视频监控系统的管理平台,负责设备管理、视频流接收和存储等功能。

  2. 信令交互:

    GB28181协议使用基于SIP的信令交互机制(进行了扩展)。设备之间通过发送SIP信令来建立通信会话和传输控制信息。常用的SIP消息有注册、心跳、设备搜索、设备状态查询、设备控制等。

  3. 数据传输:

    GB28181协议使用RTP来传输音视频流。视频监控设备通过RTP协议将实时的音视频数据封装成数据包,并通过网络传输到接收端。

通过以上几点,可以看出来,GB28181是跟SIP协议有非常大的相似性,但是两者侧重领域不同,GB28181协议是在SIP协议的基础上针对视频监控领域进行了定制和扩展,以满足视频监控设备之间的联网通信需求。与SIP协议相比,GB28181协议更加专注于视频监控系统的需求,并提供了特定的功能和接口。协议所包含的主要功能有以下几点:

  • 设备注册管理
  • 设备信息查询、目录查询、状态查询
  • 实时预览
  • 录像查询、回放和下载
  • 设备控制(云台控制、布/撤防、辅助开关等)
  • 语音广播和语音对讲
  • 报警事件通知和分发
  • 校时
  • 订阅和通知

二、GB28181设备端整体架构

在这里插入图片描述

  • 网络层:负责设备的网络连接和通信。

  • 管理控制层:处理设备的控制指令、管理请求、录像存储和检索。

  • 媒体层:负责音视频编解码和媒体文件的解析。

三、GB28181设备端的运作流程

在这里插入图片描述

  1. 启动设备:设备端启动后连接网络,并初始化各个模块。

  2. 建立RTP/RTCP网络:设备端需要在启动后,初始化RTP/RTCP网络,用于之后与平台之间建立媒体通道,进行音视频流的传输。

  3. 注册平台:设备向指定的平台发送Register注册请求,包括SIP设备ID、IP地址、SIP端口等关键信息。这里面会有一个两次注册的流程,用于GB28181平台进行密码校验,这个以后会说。

  4. 心跳保活:设备定时向平台发送心跳消息,以保持与平台的连接。

  5. 响应平台管理请求:设备接收来自平台的管理请求,如设备目录查询、状态、信息等操作,然后根据请求做出相应的响应。

  6. 实时预览:设备接收来自GB28181平台的实时预览请求,将实时的音视频流,组合成RTP报文,发送给请求方。

  7. 录像存储、查询与回放:设备进行录像存储,将录像数据按时间段进行分割和存储。在GB28181平台发送录像回放请求时,设备根据请求将对应时间段的录像数据,组合成RTP报文,发送给请求方进行回放。

  8. 报警处理:设备接收报警触发信号,并发送报警通知给GB28181平台。在接收到报警处理请求时,设备可以进行相关处理,如触发报警音频、视频推送等。

  9. 网络连接保持:设备端需要保持与GB28181平台的稳定网络连接,处理网络断开和重连等异常情况。

  10. 关闭设备:设备端接收到关闭指令时,或者主动断开时,都需要对正在进行的RTP数据链路,发送相应的SIP bye报文,并进行相关资源的释放。

这其中,关键的几个步骤是注册、心跳、设备目录查询、实时预览以及网络连接维护这几项,只有实现这几点,才能算是一个基本的GB28181设备端。

四、技术选型

选择合适的技术对于GB28181协议设备端的开发至关重要。以下是一些关键技术的选型建议:

  • 开发语言和框架:项目开发,通常都是根据项目需求以及开发团队的技术背景,选择合适的开发语言和框架。根据本次项目需求,我是采用C++来实现底层进程,采用QT来做界面设计。

  • SIP协议库:选择一个稳定、成熟的SIP协议库,用于处理信令交互。常见的选择有PJSIP、JAIN-SIP、oSIP、eXosip等等,考虑到网上资料的成熟性,选择eXosip来作为SIP基础库。当然,这里面由于SIP信令都是类似于HTTP的文本协议,也可以考虑自己来实现。或者直接采用Node.js来做,由于我是C++实现整套工程,所以选择了eXosip。

  • RTP协议库:为了实现音视频流的传输,可以选择支持RTP/RTCP协议的底层库有很多,例如JRTP、ortp、live555,考虑到RTP本身并不复杂,可以自己实现,这里我采用了后者。

  • 媒体库:由于GB28181设备端需要提供视频/音频流,涉及到视频文件读取、解码、编码等多种功能,采用ffmpeg是最合适的方案。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WpzYXRQP-1686798286928)(img/logo.jpg)]

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

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
国标GB28181是中国监控领域的标准之一,该标准旨在解决公共安全视频监控系统中的数据安全、通信安全和接口标准化等问题。而安卓开源客户端则是针对GB28181标准开发的一款客户端应用,旨在为广大用户提供一种更加方便、便捷的视频监控访问和管理方式。 该开源客户端具有多种功能和特点。首先,该客户端采用了一套独特的底层实现方式,可以实现对多种视频流的支持,同时还具有缓存优化机制,使视频播放更加流畅。其次,该客户端支持多种设备连接方式,包括P2P连接、IP直连、IP组播等,满足不同用户的需求。此外,该客户端还具有多种播放控制功能,比如倍速播放、捕捉截图、录制视频等,用户可以自由地对可用视频进行编辑和管理。 除此之外,国标GB28181安卓开源客户端还具有高度的可定制性。用户可以根据自身需求进行定制,比如自定义界面、自定义功能等,同时还可以自由进行二次开发。另外,该客户端的代码开源,可以让更多的开发者参与到客户端开发与完善中来,从而让更多的人受益于该客户端。 总之,国标GB28181安卓开源客户端是一款对广大监控用户极为实用的应用软件。其具有多种功能和特点,让用户更方便地进行视频监控访问和管理。同时,该软件还具有高度的开放性和可定制性,可以让用户根据自身需求进行定制和二次开发。因此,该软件在未来还将会得到更多用户的支持和推崇。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值