GB/T28181-2016传输要求和Android平台设备接入技术实现

相关协议规范

GB/T28181-2016公共安全视频监控联网系统 信息传输交换控制技术要求相关的传输要求如下:

5.1 网络传输协议要求

联网系统网络层应支持IP协议,传输层应支持 TCP和 UDP协议。

5.2 媒体传输协议要求

视音频流在基于IP的网络上传输时应支持 RTP/RTCP协议;视音频流的数据封装格式应符合4.3.6 中的要求。

视音频流在基于IP的网络上传输时宜扩展支持 TCP协议,协议应符合附录 L的规定。

5.3 信息传输延迟时间

当信息(包括视音频信息、控制信息及报警信息等)经由IP网络传输时,端到端的信息延迟时间(包
括发送端信息采集、编码、网络传输、信息接收端解码、显示等过程所经历的时间)应满足下列要求:
a) 前端设备与信号直接接入的监控中心相应设备间端到端的信息延迟时间应不大于2s;
b) 前端设备与用户终端设备间端到端的信息延迟时间应不大于4s。

5.4 网络传输带宽

联网系统网络带宽设计应能满足前端设备接入监控中心、监控中心互联、用户终端接入监控中心的
带宽要求,并留有余量。前端设备接入监控中心单路的网络传输带宽应不低于512kbps,重要场所的
11GB/T28181—2016前端设备接入监控中心单路的网络传输带宽应不低于2Mbps,各级监控中心间网络单路的网络传输带宽应不低于2.5Mbps。

5.5 网络传输质量

联网系统IP网络的传输质量(如传输时延、包丢失率、包误差率、虚假包率等)应符合如下要求:
a) 网络时延上限值为400ms;
b) 时延抖动上限值为50ms;
c) 丢包率上限值为1×10-3;
d) 包误差率上限值为1×10-4。

5.6 视频帧率

本地录像时可支持的视频帧率应不低于25帧/s;图像格式为 CIF时,网络传输的视频帧率应不低于25帧/s;图像格式为4CIF以上时,网络传输的视频帧率应不低于15帧/s,重要图像信息宜25帧/s。

Android平台GB28181设备接入实现

Android平台GB28181接入SDK,实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如智能监控、智慧零售、智慧教育、远程办公、生产运输、智慧交通、车载或执法记录仪等场景。Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、语音广播和语音对讲。

除了符合技术规范里面的传输要求外,延迟方面,目前测试下来,Android平台GB28181设备接入延迟在毫秒级。

功能设计如下:

  •  [视频格式]H.264/H.265(Android H.265硬编码);
  •  [音频格式]G.711 A律、AAC;
  •  [音量调节]Android平台采集端支持实时音量调节;
  •  [H.264硬编码]支持H.264特定机型硬编码;
  •  [H.265硬编码]支持H.265特定机型硬编码;
  •  [软硬编码参数配置]支持gop间隔、帧率、bit-rate设置;
  •  [软编码参数配置]支持软编码profile、软编码速度、可变码率设置;
  •  支持横屏、竖屏推流;
  •  Android平台支持后台service推送屏幕(推送屏幕需要5.0+版本);
  • 支持纯视频、音视频PS打包传输;
  • 支持RTP OVER UDP和RTP OVER TCP被动模式;
  • 支持信令通道网络传输协议TCP/UDP设置;
  • 支持注册、注销,支持注册刷新及注册有效期设置;
  • 支持设备目录查询应答;
  • 支持心跳机制,支持心跳间隔、心跳检测次数设置;
  • 支持移动设备位置(MobilePosition)订阅和通知;
  • 支持国标GB/T28181—2016平台接入;
  • 支持语音广播及语音对讲;
  •  [实时水印]支持动态文字水印、png水印;
  •  [镜像]Android平台支持前置摄像头实时镜像功能;
  •  [实时静音]支持实时静音/取消静音;
  •  [实时快照]支持实时快照;
  •  [降噪]支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测;
  •  [外部编码前视频数据对接]支持YUV数据对接;
  •  [外部编码前音频数据对接]支持PCM对接;
  •  [外部编码后视频数据对接]支持外部H.264数据对接;
  •  [外部编码后音频数据对接]外部AAC数据对接;
  •  [扩展录像功能]支持录像相关功能。

平台功能扩展:

Android平台,主要是采集设备接入这块的考量,由于GB28181设备接入行业应用广泛,常见的数据对接类型有:

  1. 编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型),其中,Android平台前后摄像头数据(需要考虑对接camera2接口和外置OTG摄像头),或者屏幕数据,或者Unity拿到的数据,均属编码前数据;
  2. 编码后数据(如无人机等264/HEVC数据,或者本地解析的MP4音视频数据);
  3. 拉取RTSP或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。

其他方面不再赘述,以下展示下,和语音广播语音对讲相关的设计:

    /** CameraPublishActivity.java* CameraPublishActivity** WebSite: https://daniusdk.com* Github: https://github.com/daniulive/SmarterStreaming* */@Overridepublic void ntsOnNotifyBroadcastCommand(String fromUserName, String fromUserNameAtDomain, String sn, String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnNotifyBroadcastCommand, fromUserName:"+ from_user_name_ + ", fromUserNameAtDomain:"+ from_user_name_at_domain_+ ", SN:" + sn_ + ", sourceID:" + source_id_ + ", targetID:" + target_id_);if (gb28181_agent_ != null ) {gb28181_agent_.respondBroadcastCommand(from_user_name_, from_user_name_at_domain_,sn_,source_id_, target_id_, true);btnGB28181AudioBroadcast.setText("收到GB28181语音广播通知");}}private String from_user_name_;private String from_user_name_at_domain_;private String sn_;private String source_id_;private String target_id_;public Runnable set(String from_user_name, String from_user_name_at_domain, String sn, String source_id, String target_id) {this.from_user_name_ = from_user_name;this.from_user_name_at_domain_ = from_user_name_at_domain;this.sn_ = sn;this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(fromUserName, fromUserNameAtDomain, sn, sourceID, targetID),0);}@Overridepublic void ntsOnAudioBroadcast(String commandFromUserName, String commandFromUserNameAtDomain, String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnAudioBroadcastPlay, fromFromUserName:" + command_from_user_name_+ " FromUserNameAtDomain:" + command_from_user_name_at_domain_+ " sourceID:" + source_id_ + ", targetID:" + target_id_);stopAudioPlayer();destoryRTPReceiver();if (gb28181_agent_ != null ) {String local_ip_addr = IPAddrUtils.getIpAddress(context_);boolean is_tcp = true; // 考虑到跨网段, 默认用TCP传输rtp包rtp_receiver_handle_ = lib_player_.CreateRTPReceiver(0);if (rtp_receiver_handle_ != 0 ) {lib_player_.SetRTPReceiverTransportProtocol(rtp_receiver_handle_, is_tcp?1:0);lib_player_.SetRTPReceiverIPAddressType(rtp_receiver_handle_, 0);if (0 == lib_player_.CreateRTPReceiverSession(rtp_receiver_handle_, 0) ) {int local_port = lib_player_.GetRTPReceiverLocalPort(rtp_receiver_handle_);boolean ret = gb28181_agent_.inviteAudioBroadcast(command_from_user_name_,command_from_user_name_at_domain_,source_id_, target_id_, "IP4", local_ip_addr, local_port, is_tcp?"TCP/RTP/AVP":"RTP/AVP");if (!ret ) {destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181语音广播");}else {btnGB28181AudioBroadcast.setText("GB28181语音广播呼叫中");}} else {destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181语音广播");}}}}private String command_from_user_name_;private String command_from_user_name_at_domain_;private String source_id_;private String target_id_;public Runnable set(String command_from_user_name, String command_from_user_name_at_domain, String source_id, String target_id) {this.command_from_user_name_ = command_from_user_name;this.command_from_user_name_at_domain_ = command_from_user_name_at_domain;this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(commandFromUserName, commandFromUserNameAtDomain, sourceID, targetID),0);}@Overridepublic void ntsOnInviteAudioBroadcastException(String sourceID, String targetID, String errorInfo) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnInviteAudioBroadcastException, sourceID:" + source_id_ + ", targetID:" + target_id_);destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181语音广播");}private String source_id_;private String target_id_;public Runnable set(String source_id, String target_id) {this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(sourceID, targetID),0);}@Overridepublic void ntsOnInviteAudioBroadcastTimeout(String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnInviteAudioBroadcastTimeout, sourceID:" + source_id_ + ", targetID:" + target_id_);destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181语音广播");}private String source_id_;private String target_id_;public Runnable set(String source_id, String target_id) {this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(sourceID, targetID),0);}

感兴趣的开发者,可以直接查看相关规范。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无法打开Win11系统小组件怎么办

Win11操作系统也推出一段时间了,不少小伙都有下载体验,Win11与之前的Win10比较起来改动非常大,小组件是Win11系统中全新添加的功能,他类似于Win10最新的加入的兴趣模块,但是有朋友遇到了小组件无法打开的情况这是怎么回…

GB28181控制、传输流程和协议接口之注册|注销和技术实现

注册和注销基本要求 SIP客户端、网关、SIP设备、联网系统等 SIP代理(SIP UA)使用IETFRFC3261中定义的方法 15 GB/T28181—2016Register进行注册和注销。 注册和注销时应进行认证,认证方式应支持数字摘要认证方式,高安全级别的宜支持数字证书的认证方式&…

Edge浏览器网页怎么收藏 Edge浏览器网页收藏图文教程

Edge浏览器是微软最新推出的网页浏览工具。而现在有很多Edge浏览器新用户可能对它不是很了解,在使用过程中会出现小问题。今天小编就为大家解答Edge浏览器网页怎么收藏,一起来看教程吧! Edge浏览器网页收藏图文教程 一、怎么收藏网页? 1、打开Edge浏…

GB28181状态信息报送解读及Android端国标设备接入技术实现

今天主要聊聊GB/T28181状态信息报送这块,先回顾下协议规范相关细节,然后再针对代码实现,做个简单的说明。 状态消息报送基本要求 当源设备(包括网关、SIP设备、SIP客户端或联网系统)发现工作异常时,应立即向本 SIP监控域 的SIP服务器发送状…

IE浏览器怎么设置兼容性 添加兼容站点方法

IE浏览器是我们工作和生活中应用最广泛的浏览器,其安全、便捷是它的特点之一。不过这个浏览器在浏览部分网页的时候,会出现图片不刷新的情况,今天小编就带来了解决方法,告诉大家IE浏览器怎么设置兼容性。 1、首先点击IE浏览器右上…

GB28181设备接入端如何实现校时?

在探讨这个问题之前,我们先看看GB/T28181-2016官方文档怎么说的,9.10.1章节校时基本要求提到: 联网内设备支持基于SIP方式或 NTP方式的网络校时功能,标准时间为北京时间。 SIP方式校时见本节具体描述;NTP(见IETFRFC2…

Win7运行窗口的打开方法

Win7系统中运行窗口可谓是最常用的功能之一,可以帮助我们快速执行程序,在系统有问题时经常运用其协助解决。有用户问到运行窗口在哪?如何打开?找不到怎么办?其实方法不难,下面小编就跟大家详细介绍一下Win7运行窗口的打开方法。 Win7运行…

如何在Unity下采集音视频实现轻量级RTSP服务(类似于IPC)

好多开发者在做虚拟仿真、VR教育等场景的时候,遇到个问题,想把头显里面的画面在内网环境下低延迟的同步出来,又不想单独部署流媒体服务器。为此,我们在Unity下,添加了轻量级RTSP服务模块,通过头显端启动个轻…

【Datawhale 大模型基础】第十一章 环境影响

第十一章 环境影响 This blog is based on datawhale files and a paper. The initial consideration revolves around the potential positive or negative direct impact on the environment. Other transformative technological advancements, like the metaverse, are li…

Win7笔记本如何调整屏幕亮度

长期使用电脑的时候会因为视觉疲劳感觉屏幕亮度过高,需要对其调整来缓解。PC用户方法很简单,只需在显示器上点击按钮进行调整即可,那么Win7笔记本如何调整屏幕亮度?其实Win7系统本身有考虑到这个问题,在系统中有专门针对此问题的…

Android GB28181接入端实时位置订阅和上报之-如何获取当前经纬度

我们在做Android平台GB28181的时候,其中实时位置(MobilePosition)订阅和上报这块,涉及到实时经纬度的获取,特别是执法记录、车载系统的那个等场景,几乎就是标配。 今天主要是分享一段实时获取位置的代码: /** Camera…

Win7系统防火墙设置不了怎么办

防火墙是Windows系统中一项重要的防护措施,可以帮助你的电脑阻挡病毒和恶意软件,确保系统安全。近来有用户反馈win7系统的防火墙无法设置,Win7系统防火墙设置不了怎么办?无法设置说明系统设置被更改,防火墙功能应该是被禁用了&am…

如何实现Android平台GB28181设备对接Camera2数据

技术背景 在写如何实现Android平台GB28181设备对接Camera2数据说明之前,我在前两年的blog就有针对camera2的RTMP直播推送模块做过技术分享: 在Google 推出Android 5.0的时候, Android Camera API 版本升级到了API2(android.hardware.camera2), 之前使用…

Win7性能信息和工具在哪打开

在Win7系统中,有一个性能信息和工具,我们可以通过这个功能中的高级工具,查看到关于系统的关键信息,全面了解系统的运行状况,不过,对于不熟悉电脑的用户来讲,可能连性能信息和工具在哪都不清楚&a…

Android平台实现mp4文件实时推送RTMP|轻量级RTSP服务|GB28181平台

好多开发者有这样的诉求,想把本地录制的MP4文件,以实时流数据的形式,推送到RTMP服务器,注入轻量级RTSP服务,或者对接到GB28181平台,这块前几年我们就有对接。 本次以MediaExtractor为例,先利用…

Win10系统字体太小的调整设置教程

Win7系统与Win10系统还是差别挺多的,一些小伙伴们刚开始使用Win10系统对很多功能都了解。有的小伙伴就遇到了不适应字体的大小,但是又不知道Win10字体太小怎么调整,下面告诉大家Win10系统字体太小的调整设置教程。 Win10系统字体太小的调整设…

Android平台GB28181设备接入端本地SIP端口被占用或屏蔽怎么办?

好多开发者或厂商,对Android平台GB28181接入模块的定位,大多是IPC国标流程打通模拟,基于这个目的,很难按照标准SPEC规范实现Android平台GB28181设备接入,我们在跟第三方国标平台厂商对接时发现,部分公司&am…

Android平台GB28181设备接入端如何实现本地录像?

实现Android平台GB28181设备接入的时候,有个功能点不可避免,那就是本地录像,实际上,在实现GB28181设备接入模块之前,我们前些年做RTMP推送和轻量级RTSP服务的时候,早已经实现了本地录像功能。 本地录像功能…

win10笔记本电脑合上屏幕休眠该怎么设置

现在很多用户经常外出的都喜欢轻便一点的电脑,所以这类人群为自己选择的电脑就会是笔记本电脑。使用笔记本电脑有一个特点就是如您合上电脑屏幕,它就会自动锁屏,那么win10笔记本电脑合上屏幕休眠该怎么设置呢?想要设置的用户一起来看看吧。 …

Android平台GB28181设备接入端实现实时快照

Android平台GB28181设计开发的时候,有个功能必不可少的:实时快照,特别是用于执法记录仪等场景下,用于图像留底或分析等考量。 实时快照的实现并不难,目前实现有两种方式,一种是拿到数据(比如摄…