技术背景语音广播功能是GB28181设备接入端非常重要的功能属性,语音广播让终端和平台之间,有了实时双向互动,可以满足执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通 这里我们先回顾下GB28181规范关于语音广播的描述:语音广播功能实现用户通过语音输入设备向前端语音输出设备的语音广播。 例如,对IPC 发送语音广播通知,表示对该IPC 接入的所有语音输出设备进行广播;对 NVR 发送语音广播通知,表示对 NVR 下所有 IPC以及自身的语音输出设备进行广播。 技术实现本文我们不再探讨GB28181语音广播的具体流程,这里我们假定信令交互已经完成,准备接收数据:图片收到broadcast语音广播后,我们的处理逻辑如下:private boolean startAudioPlay 其中PlayerExternalPCMOutput()主要是把数据塞到GB28181数据采集处理的模块,来实现语音广播的回音消除的目的。
上篇文章提到Android端GB28181接入端的语音广播和语音对讲的实现,从spec角度大概介绍了下流程和简单的接口设计,好多开发者私信我,希望展开说一下。 语音广播的流程大家应该非常清楚了,简单来说,SIP服务器发送Broadcast语音广播命令到android接入端,接入端应答,在收到200 OK后,发送INVITE消息,Android接入端收到INVITE 从DEMO来看,当有语音广播接入进来后,GB28181语音广播按钮会处于可用状态。 图片 语音广播信令Listener如下: package com.gb28181.ntsignalling; public interface GBSIPAgentListener { /* *收到语音广播通知 */ void ntsOnNotifyBroadcastCommand(String fromUserName, String fromUserNameAtDomain
如果接入端,不对SSRC做判断,假设有多台设备向Android端GB28181设备接入设备(如执法记录仪、智能头盔等)发送语音广播RTP包,如何过滤哪个设备发过来的数据? 以下就以Android平台GB28181设备接入模块,语音广播这块为例:当收到GB28181平台端的语音广播请求后,客户端做出响应,并在ntsOnNotifyBroadcastCommand()回调做出相应的处理 ret ) { destoryRTPReceiver(); btnGB28181AudioBroadcast.setText("GB28181语音广播 "); } else { btnGB28181AudioBroadcast.setText("GB28181语音广播呼叫中"); { btnGB28181AudioBroadcast.setText("GB28181语音广播"); } if (is_need_bye)
GB28181平台广播和对讲这块,重要性不言而喻,没有广播的接入终端,数据只是单向流入,加入后,指挥中心和终端之间的联系更紧密,实时双向沟通更方便,适用的行业范围也更广泛。 技术实现图片语音广播接收这块,由于有之前的RTMP和RTSP播放器积累,直接在player端做相应扩展即可,当收到广播后,GB28181语音广播按钮使能。 ret ) { destoryRTPReceiver(); btnGB28181AudioBroadcast.setText("GB28181语音广播 { btnGB28181AudioBroadcast.setText("GB28181语音广播"); } if (is_need_bye) 特别是语音广播和语音对讲这块,是GB28181终端接入模块的一个核心扩展功能,在智能门禁、工业与物联网、监控等行业,用途非常广泛,技术实现这块,不要忽略的技术点还有降噪和回音消除这块,由于之前我们有技术积累
技术背景 对接Android平台GB28181设备接入端语音广播的时候,我们有遇到过INVITE SDP需要PCMA格式的audio,对方同时回了PS和PCMA两种,然后,发数据的时候,直接发了PS的。 更遗憾的是,GB28181-2016规范里面,针对语音广播PCMA格式有明确的说明和范例,并没有针对PS的描述。 场景还原 服务员:先生您好,您要点咖啡吗? 遇到这种情况,要么push厂商调整,既然SDP回的有PCMA格式,那就直接发送PCMA的语音广播数据,要么只能我们这边兼容,就像明明不喜欢红茶拿铁,还是要耐着性子喝。 GB28181平台,点击页面的“启动GB28181”即可,有语音广播过来后,使能“GB28181语音广播”按钮,用于主动关闭语音广播之用。 语音广播"); btnGB28181AudioBroadcast.setEnabled(true);
我在之前的blog,有提到过Android端GB28181接入端的语音广播和语音对讲,今天主要从GB/T28181-2016官方规范和交互流程,大概介绍下Android平GB28181接入端的语音广播和语音对讲 语音广播通知、语音广播应答命令 消息头 Content-type字段为 Content-type:Application/MANSCDP+xml。 语音广播通知、语音广播应答命令采用 MANSCDP协议格式定义。 平台,点击页面的“启动GB28181”即可,有语音广播过来后,使能“GB28181语音广播”按钮,用于主动关闭语音广播之用。 Android端GB28181接入端针对语音广播的技术实现,感兴趣的开发者可酌情参考。
Android平台GB28181设备接入,语音广播功能非常重要,本文要介绍的,不是语音广播的流程,语音广播流程,之前的blog也有非常详细的分享,感兴趣的可以参考官方规范书的交互流程:图片语音广播这块 ,有开发者提出这样的诉求,如何适时调节语音广播的音量? 因为我们的语音广播,audio的播放,是基于我们RTMP、RTSP直播播放模块设计实现的,对应的接口如下:/** * 设置播放音量 * * @param handle: return value from
GB28181语音广播这块,我们依据GB/T28181-2016针对流程和实例代码,做过详细的描述,本次主要是探讨下,广播数据过来后,如何处理。 鉴于我们之前有非常成熟的RTMP|RTSP低延迟播放模块,语音广播数据过来后,调用startAudioPlay(),ntsOnInviteAudioBroadcastResponse()处理如下:@Overridepublic 语音广播");btnGB28181AudioBroadcast.setEnabled(true);}}} else {btnGB28181AudioBroadcast.setText("GB28181语音广播 语音广播");btnGB28181AudioBroadcast.setEnabled(false);}}private long handle_;}停止广播数据播放:private void stopAudioPlayer 平台端音频广播播放的一点说明,感兴趣的开发者,可以酌情参考,也可以和我探讨Android平台GB28181接入模块的测试。
图片SIP服务器发起广播流程示意图如下:图片 需要注意的是:语音广播通知、语音广播应答命令消息头 Content-type字段为 Content-type:Application/MANSCDP+xml 语音广播通知、语音广播应答命令采用 MANSCDP协议格式定义。 消息示例如下:a) 语音广播通知MESSAGE sip:34020000001310000056@192.168.100.9:6720 SIP/2.0\Via: SIP/2.0/UDP 192.168.100.10 ret ) { destoryRTPReceiver(); btnGB28181AudioBroadcast.setText("GB28181语音广播 "); } else { btnGB28181AudioBroadcast.setText("GB28181语音广播呼叫中");
接口描述在谈国网B接口的语音广播和语音对讲的时候,大家会觉得,国网B接口是不是和GB28181大同小异?实际上确实信令有差别,但是因为要GB28181设备接入测的对接,再次做国网B接口就简单多了。 语音对讲和广播包括信令接口和媒体流接口,采用与“调阅实时视频”流程相同的机制,不同之处 在于用户发出的请求消息的 SDP 仅携带音频描述信息。 语音所采用的编解码算法为 ITU-T G.711A。 语音对讲和广播,被调阅的平台无需进行音频分发行为。 return this; } }.set(deviceId, sessionDescription),0); }总结国网B接口的语音广播和语音对讲 ,和GB28181的还是有些差别,B接口的语音广播和语音对讲,不需要先发broadcast过来,不用设备接入端发invite请求,而是电网平台侧发invite,类似实时视频请求播放流程,感兴趣的开发者,
支持信令通道网络传输协议TCP/UDP设置;支持注册、注销,支持注册刷新及注册有效期设置;支持设备目录查询应答;支持心跳机制,支持心跳间隔、心跳检测次数设置;支持移动设备位置(MobilePosition)订阅和通知;支持语音广播 以大牛直播SDK的Android平台GB28181设备接入模块为例,如果需要对接到GB28181智能安全帽,需要关注信令和媒体数据两块部分,这里说说大概的设计思路:GBSIPAgentListener主要系 语音广播处理相关,如有语音广播相关需求,可参照demo实例实现:public interface GBSIPAgentAudioBroadcastListener { /* *收到语音广播通知 fromUserName, String fromUserNameAtDomain, String sn, String sourceID, String targetID); /* *需要准备接受语音广播的 语音对讲相关处理:public interface GBSIPAgentTalkListener { /* *收到s=Talk 语音对讲 */ void ntsOnInviteTalk
GB28181语音对讲流程是一个涉及多个组件交互的复杂过程,主要包括前端页面、信令服务、流媒体服务以及摄像头等关键部分。 以下是一个基于GB28181协议的语音对讲流程概述: 一、概述 GB28181是中国公共安全视频监控领域的国家标准,用于实现视频监控设备的互联互通。 信令服务交互 发送语音广播请求:前端页面向信令服务发送HTTP请求,告知要进行语音广播的目标设备(如摄像头)的GB编码等信息。 信令服务处理请求:信令服务根据GB编码查询到对应的摄像头设备,并发送SIP广播通知(如MESSAGE请求),该请求中包含语音广播的指令类型、序列号、源ID和目标ID等信息。 摄像头对接收到的音频流进行解码和播放,实现语音对讲功能。 三、关键步骤与协议细节 SIP信令交互:整个流程中,SIP协议用于信令服务的交互,包括广播通知、应答、INVITE请求等。
好多开发者对GB28181规范里面,broadcast和talk模式区分不清,今天借此机会,针对GB28181标准中的Broadcast(广播)和Talk(对讲)是两种不同的通信模式,它们在视频监控系统中扮演着不同的角色 功能和用途Broadcast(广播): 功能:主要用于平台侧向设备侧发送单向的通知或消息,如紧急通知、广播指令等。 Talk(对讲): 功能:实现设备侧与平台侧之间的双向语音通信,类似于电话通话。用途:适用于需要实时语音交流的场景,如远程指挥、语音对讲等。2. 应用场景Broadcast(广播): 适用于需要统一管理和控制多个设备的场景,如公共安全监控、应急指挥等。Talk(对讲): 适用于需要实时语音沟通的场景,如远程监控、语音报警、现场指挥等。5. 技术实现两者都基于GB28181标准实现,但具体的技术细节和信令流程有所不同。
这里,我们对接大牛直播SDK的SmartGBD GB28181设备接入模块为例,Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、语音广播和语音对讲 准备工作确保SmartPublisherJniV2.java放到com.daniulive.smartpublisher包名下(可在其他包名下调用);如需集成语音广播、语音对讲功能,确保SmartPlayerJniV2 包名下(可在其他包名下调用);smartavengine.jar和smartgbsipagent.jar加入到工程;拷贝libSmartPublisher.so和libSmartPlayer.so(如需语音广播或语音对讲 GBSIPAgentTalkListener, GBSIPAgentQueryRecordInfoListener{}媒体数据处理接口,可参照SmartPublisherJniV2.java,如需语音广播或语音对讲 语音广播处理相关,如有语音广播相关需求,可参照demo实例实现:public interface GBSIPAgentAudioBroadcastListener { /* *收到语音广播通知
Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、语音广播和语音对讲、云台控制回调和预置位查询,支持对接数据类型如下:编码前数据(目前支持的有 准备工作确保SmartPublisherJniV2.java放到com.daniulive.smartpublisher包名下(可在其他包名下调用);如需集成语音广播、语音对讲功能,确保SmartPlayerJniV2 包名下(可在其他包名下调用);smartavengine.jar和smartgbsipagent.jar加入到工程;拷贝libSmartPublisher.so和libSmartPlayer.so(如需语音广播或语音对讲 语音广播处理相关,如有语音广播相关需求,可参照demo实例实现:public interface GBSIPAgentAudioBroadcastListener { /* *收到语音广播通知 native int DestoryRTPSender(long rtp_sender_handle);RTP数据接收对应RTP Receiver(SmartPlayerJniV2.java)相关接口设计,如无语音广播或语音对讲相关技术需求
Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、语音广播和语音对讲。 支持注册刷新及注册有效期设置;支持设备目录查询应答;支持心跳机制,支持心跳间隔、心跳检测次数设置;支持移动设备位置(MobilePosition)订阅和通知;支持国标GB/T28181—2016平台接入;支持语音广播及语音对讲 其他方面不再赘述,以下展示下,和语音广播语音对讲相关的设计:/* * CameraPublishActivity.java * CameraPublishActivity * 语音广播通知"); } } private String from_user_name_; private btnGB28181AudioBroadcast.setText("GB28181语音广播呼叫中"); }
Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、图像抓拍、语音广播和语音对讲、历史视音频下载和回放,支持对接数据类型如下:编码前数据(目前支持的有 准备工作确保SmartPublisherJniV2.java放到com.daniulive.smartpublisher包名下(可在其他包名下调用);如需集成语音广播、语音对讲功能,确保SmartPlayerJniV2 包名下(可在其他包名下调用);smartavengine.jar和smartgbsipagent.jar加入到工程;拷贝libSmartPublisher.so和libSmartPlayer.so(如需语音广播或语音对讲 GBSIPAgentTalkListener, GBSIPAgentQueryRecordInfoListener{}媒体数据处理接口,可参照SmartPublisherJniV2.java,如需语音广播或语音对讲 语音广播处理相关,如有语音广播相关需求,可参照demo实例实现:public interface GBSIPAgentAudioBroadcastListener { /* *收到语音广播通知
GB28181执法记录仪核心功能语音对讲与广播: 配备麦克风和扬声器,支持语音对讲和广播功能。 指挥中心可以通过系统向执法人员发送语音指令或进行紧急广播;执法人员也可以通过执法记录仪进行语音回复或上报现场情况。 GBSIPAgentTalkListener, GBSIPAgentQueryRecordInfoListener{}媒体数据处理接口,可参照SmartPublisherJniV2.java,如需语音广播或语音对讲 语音广播处理相关,如有语音广播相关需求,可参照demo实例实现:public interface GBSIPAgentAudioBroadcastListener { /* *收到语音广播通知 native int DestoryRTPSender(long rtp_sender_handle);RTP数据接收对应RTP Receiver(SmartPlayerJniV2.java)相关接口设计,如无语音广播或语音对讲相关技术需求
利用网络平台,把指挥中心和前端各个求助点连接起来,所有的通讯信号和控制协议通过网络进行传输,采用基于网络数字IP网络对讲系统,是一套基于国标实现的对讲系统,同时系统满足派出所网点对讲、报警、录音、视频监控、公共广播 在EasyGBS视频平台中,语音对讲系统优势主要体现在以下方面: 1、 施工布线简单:无需独立另外组建网络,可与视频监控网络、计算机网络、IP电视网络、IP电话网络等多系统共网,大大减少施工成本。 5、传输距离远,减少信号衰减:利用网络传输,音频传输距离无限制,音频不受距离的影响,解决传统广播系统传输距离远,音频信号损失大,音质变差等问题。 EasyGBS平台支持直接下载试用,如果大家对语音对讲功能或者其他功能还想做进一步了解,可以直接进行试用,我们都会为大家提供为期30天的试用期,期间可以进行二次开发或者调用集成,欢迎了解。
技术背景GB28181协议是一种用于设备状态信息报送的协议,可以在不同设备之间进行通信和数据传输。 语音广播处理相关,如有语音广播相关需求,可参照demo实例实现:public interface GBSIPAgentAudioBroadcastListener { /* *收到语音广播通知 fromUserName, String fromUserNameAtDomain, String sn, String sourceID, String targetID); /* *需要准备接受语音广播的 语音对讲相关处理:public interface GBSIPAgentTalkListener { /* *收到s=Talk 语音对讲 */ void ntsOnInviteTalk native int DestoryRTPSender(long rtp_sender_handle);RTP数据接收对应RTP Receiver(SmartPlayerJniV2.java)相关接口设计,如无语音广播或语音对讲相关技术需求