GB28181协议中基于数字摘要的挑战应答式安全技术进行注册流程如下图2所示: 图2 基本注册流程示意图 注册流程描述如下: (a) SIP代理向SIP服务器发送Register请求; (b) SIP 具体命令流程如图3: 图3 保活命令流程 命令流程描述如下: (a) 源设备向SIP服务器发送设备状态信息报送命令。 命令流程描述如下: (a) 媒体流接收者向SIP服务器发送INVITE消息, 消息头域中携带Subject字段, 表明点播的视频源ID、发送方媒体流序列号、媒体流接收者ID、接收端媒体流序列号等参数,SDP (q) SIP服务器向媒体服务器发送BYE消息,断开消息2、3、6建立的同媒体服务器的INVITE会话。 (r) 媒体服务器收到BYE消息后回复200 OK响应,会话断开。 3.1 GB28181 demuxer 首先我们在FFmpeg中实现了GB28181协议的demuxer,方案的框架图如图6所示。
首先,介绍了设备目录查询、设备信息查询和设备状态查询三个重要的信息查询功能,并详细解释了它们在协议中的信令交互流程。随后,深入讨论了实时视频的实现方式,包括数据传输协议和传输规范要求。 设备目录查询的信令交互流程如下: 设备端发送查询请求信令(Query Catalog)到设备管理平台; 设备管理平台接收到请求后,返回设备目录信息(Catalog)给设备端。 其信令交互流程如下: 设备端发送查询请求信令(Query Device)到设备管理平台,携带要查询设备的ID; 设备管理平台接收到请求后,返回设备详细信息(Device Info)给设备端。 下面是一个完整的实时视频信令交互过程: 图片 GB28181平台需要查看实时画面的时候,向目标设备发送实时视频邀请信令(Invite)。 GB28181平台 -> 设备端, INVITE INVITE sip:34020000001310000001@3402000000 SIP/2.0 Call-ID: helloVideo CSeq:
接口描述 国网B接口调阅实时视频,相关规范写的比较粗略: 调阅实时视频包括信令接口和媒体流接口,采用标准的SIP INVITE+SDP流程,媒体传输使用RTP/RTCP。 调阅实时视频的接口流程 图片 主要功能流程如下: a) F1:用户发送 INVITE 消息,携带 SDP 内容通过平台转发到前端设备。 g)F6:前端系统发送确认,将媒体通道拆线。 技术实现 由于国网B接口的invite实现和GB28181的差异不大,之前我们GB28181这块,已经有非常好的积累了。 tag=482531896 To: <sip:1301110005010100001@192.168.0.102:5060> Call-ID: 804531783 CSeq: 6 GB28181流程基本一致,感兴趣的开发者,可以参考相关的规范实现,B接口相对GB28181来说,面更窄,资料也更少,如果产品化,有测试平台的话,还是不难实现的。
前面三篇blog分别介绍国网B接口注册、资源上报和资源信息获取,今天过一下国网B接口调阅实时视频相关的接口描述和消息示例,做过GB28181设备接入的都知道,国网B接口调阅实时视频流程和GB28181的基本一致的 接口描述国网B接口调阅实时视频,相关规范写的比较粗略:调阅实时视频包括信令接口和媒体流接口,采用标准的SIP INVITE+SDP流程,媒体传输使用RTP/RTCP。 调阅实时视频的接口流程图片主要功能流程如下: a) F1:用户发送 INVITE 消息,携带 SDP 内容通过平台转发到前端设备。 g)F6:前端系统发送确认,将媒体通道拆线。 再看看GB28181客户端主动发起的实时视音频点播流程:具体流程不再赘述,看看大牛直播SDK针对GB28181 invite的处理吧:图片收到Invite后,除了正常信令交互回复外,初始化Sender
接受和处理GB28181接入服务器的推流请求(如有推流权限验证则调用验证服务器接口);2. 接受和处理GB28181设备的推流;3. 实时流媒体处理,PS(TS)转ES;4. 接受和处理GB28181接入服务器的断开推流请求;6. 对外提供服务器获取状态、信息,控制等http API接口;GB28181流媒体服务器对接SkeyeSMS云平台整体框架图片流媒体点播详细流程1 接入服务器发送Invite请求接入服务器向流媒体服务器发送 Invite请求,请求流媒体服务返回携带SDP 消息体,消息体中描述了媒体服务器接收媒体流的IP、端口、媒体格式等内容;Invite请求代码如下: const options = 请求处理并ACK应答流媒体服务接受Invite请求,并在回调函数中处理请求,js代码如下: uas.on('invite', async ctx => { const
技术背景 在我们研发Android平台GB28181前端音视频接入模块之前,业内听到最多的是,如何用Android或者Windows端,在没有国标IPC设备的前提下,模拟GB28181的信令和媒体流交互流程 ,实现GB28181整体方案的测试? 设计思路 信令设计和媒体数据传输分离,上层实现国标GB28181的注册、注销、CATALOG、INVITE、ACK、BYE、SUBSCRIBE等交互处理,如注册成功后,返回注册时间,并检测传输或心跳等异常状态 ,服务端发送catalog请求后,组织本地catalog信息,并以message的形式发送到服务端,服务端收到相关信息后,开始发送invite请求,客户端解析INVITE返回的SDP信息,组织相关的response 为Android平台赋能,像支持GB28181协议的IPC一样,方便的把摄像头、屏幕、麦克风或外部RTSP、RTMP流,顺利接入到GB28181平台。
相关SPEC解读关于语音广播和对讲,感兴趣的开发者可直接参阅GBT 28181-2016.pdf相关技术规范里面的9.12章节,以下是部分精选介绍:图片命令交互流程图片命令描述流程a) 1:SIP服务器向语音流接收者发送语音广播通知消息 /RTP/AVP 8a=setup:activea=connection:newa=recvonlya=rtpmap:8 PCMA/8000y=0200006727f=v/////a/1/8/1f) 6: u) 21:SIP服务器向媒体服务器发送 BYE消息,断开消息6、7、10建立的同媒体服务器的Invite 会话。 v) 22:媒体服务器收到 BYE消息后回复200OK 响应,会话断开。 后续呼叫流程与上述流程相同。语音对讲语音对讲功能实现中心用户与前端用户之间的一对一语音对讲功能。 地址类型 * * @param rtp_receiver_handle, CreateRTPReceiver * @param ip_address_type, 0:IPV4, 1:IPV6,
GB28181标准规定了公共安全视频监控联网系统(以下简称联网系统) 的互联结构, 传输、 交换、 控制的基本要求和安全性要求, 以及控制、 传输流程和协议接口等技术要求。 4、GB28181具体功能: GB28181协议规定支持的功能有如下几项: (1)注册和注销 应支持设备或系统进入联网系统时向SIP 服务器进行注册登记的工作模式。 命令流程描述如下: (a) 媒体流接收者向SIP 服务器发送Invite 消息, 消息头域中携带 Subject 字段, 表明点播的视频源ID、 发送方媒体流序列号、 媒体流接收者ID、 接收端媒体流序列号等参数 (q)SIP 服务器向媒体服务器发送 BYE 消息, 断开消息2、3、6 建立的同媒体服务器的Invite会话。 (r)媒体服务器收到 BYE 消息后回复200 OK 响应, 会话断开。 (6)状态信息报送 应支持以主动报送的方式搜集、 检测网络内的监控设备、 报警设备、 相关服务器以及连接的联网系统的运行情况。
GB28181信令交互流程GB28181 规范中的信令交互流程主要包括注册、保活、设备信息查询、实时视频预览等环节,具体如下:注册流程下级设备发起注册请求:下级监控设备(如摄像头、编码器等)向上级监控平台 保活流程下级设备发送保活请求:注册成功后,下级设备需要定期向上级平台发送保活请求,以维持连接的有效性。 实时视频预览流程GB28181 规范中的实时视频预览流程主要包括以下步骤:发起预览请求34: 上级平台(客户端)动作:上级监控平台或有权限的客户端想要预览下级设备的实时视频时,会向下级设备发送INVITE Sender IP地址类型 * * @param rtp_sender_handle, CreateRTPSender返回值 * @param ip_address_type, 0:IPV4, 1:IPV6, 同时,也会适应网络技术的发展,更好地支持 5G、IPv6 等新的网络环境,以满足大规模、高并发的视频传输需求。安全性增强:视频监控涉及到公共安全和个人隐私等重要信息,因此安全性将是未来发展的重点。
技术背景 对接Android平台GB28181设备接入端语音广播的时候,我们有遇到过INVITE SDP需要PCMA格式的audio,对方同时回了PS和PCMA两种,然后,发数据的时候,直接发了PS的。 15060> Via: SIP/2.0/UDP 192.168.43.177:5060;rport;branch=z9hG4bK-353834-ae5e552996a10590419bd216b81ebaa6 规范回顾 说了这么多废话,还是回顾下语音广播的交互流程,因为之前的blog做过几次说明,这里不再赘述: 图片 技术实现 本文以大牛直播SDK的Android平台基于Camera2的采集demo为例,如果需要注册到 GB28181平台,点击页面的“启动GB28181”即可,有语音广播过来后,使能“GB28181语音广播”按钮,用于主动关闭语音广播之用。 总结 GB28181设备接入这块,遇到的国标平台侧的问题真的是五花八门,真是印证了那句话:GB28181相关的模块,做demo容易,做产品,真的太难了,怪不得这么多公司懒得搞这块。
我在之前的blog,有提到过Android端GB28181接入端的语音广播和语音对讲,今天主要从GB/T28181-2016官方规范和交互流程,大概介绍下Android平GB28181接入端的语音广播和语音对讲 关于交互流程,本文不再赘述,一张图足矣:图片接下来,我们主要来看看规范里面提到的协议接口。 平台,点击页面的“启动GB28181”即可,有语音广播过来后,使能“GB28181语音广播”按钮,用于主动关闭语音广播之用。 消息, rtp ssrc暂时由sdk生成 *@param addressType: ipv4:"IP4", ipv6:"IP6", 其他不支持, 填充SDP用 *@param localAddress 地址类型 * * @param rtp_receiver_handle, CreateRTPReceiver * @param ip_address_type, 0:IPV4, 1:IPV6,
技术背景在实现GB28181历史视音频文件回放之前,我们已完成了历史视音频文件检索和下载,历史视音频回放,在GB28181平台非常重要,比如执法记录仪等前端设备,默认录像数据存储在前端设备侧,如果需要上传到平台统一保存 GB28181历史视音频文件回放基本要求:需采用 SIP 协议中的 Invite 方法实现会话连接;采用SIP扩展协议Info方法的消息体携带视音频回放控制命令;采用 RTP/RTCP 协议实现媒体传输 基本流程如下:本文结合Android平台GB28181设备接入侧和GB28181国标平台侧,理下基本流程:1、GB28181平台侧向Android平台GB28181设备接入侧发送Invite消息,消息头域携带 Android国标设备侧发送ACK请求,请求中不携带消息体,完成与Android国标设备侧的Invite会话建立过程;4、Android GB28181设备侧按Invite SDP中给出的IP地址和端口等信息 RTP包)到媒体服务器;5、回放过程中,播放端通过向SIP服务器发送会话内Info+MANSRTSP消息(SIP服务器再转发给安卓设备端)进行回放控制,包括视频暂停、播放、快放、慢放、随机拖放等操作;6、
好多开发者对GB28181规范里面,broadcast和talk模式区分不清,今天借此机会,针对GB28181标准中的Broadcast(广播)和Talk(对讲)是两种不同的通信模式,它们在视频监控系统中扮演着不同的角色 Talk(对讲): 流程简述:通常涉及多个SIP信令交互,如设备侧发起INVITE请求建立通话,平台侧回复200 OK确认,然后双方开始传输语音数据,通话结束后发送BYE请求终止通话。4. 技术实现两者都基于GB28181标准实现,但具体的技术细节和信令流程有所不同。 Broadcast通常通过SIP MESSAGE方法实现,而Talk则通过SIP INVITE、ACK、BYE等信令方法实现双向通话。 综上所述,GB28181标准中的Broadcast和Talk在功能、通信方式、交互流程、应用场景和技术实现等方面都存在明显的区别。这些区别使得它们能够适用于不同的视频监控和通信需求场景。
技术背景 上篇blog,我们提到了Android平台GB28181历史视音频文件检索规范探讨及技术实现,文件检索后,GB28181平台侧,可以针对文件列表进行回放或下载操作,本文主要探讨视音频文件下载相关 命令流程图片其中,信令 1,8,9、10,11,12 为 SIP 服务器接收到客户端的呼叫请求后通过 B2BUA 代理方式建立媒体流接受者与媒体服务器之间的媒体链接信令过程。 命令流程描述如下:媒体流接收者向 SIP 服务器发送Invite 消息,消息头域中携带 Subject 字段,表明点播的视频源 ID、发送方媒体流序列号、媒体流接收者 ID、接收端媒体流序列号标识等参数 SIP 服务器向媒体服务器发送 BYE 消息,断开消息 2,3,6 建立的同媒体服务器的 Invite 会话。媒体服务器收到 BYE 消息后回复 200 OK响应,会话断开。 技术实现本文以大牛直播SDK开发的Android平台GB28181设备接入侧视音频历史文件检索和下载为例(本文侧重于下载),介绍下相关设计思路:图片 Android设备接入端收到国标平台侧发过来的INVITE
规范解读GB28181 中的 “INVITE” 是会话初始协议(SIP)中的一种请求方法,主要用于邀请一个或多个参与者加入特定的会话。 在 GB28181 标准中,“INVITE” 请求通常用于发起媒体流的传输请求。 以下是 GB28181 中 “INVITE” 请求的一些关键特点和作用:一、发起会话触发媒体流传输:“INVITE” 请求是启动媒体流传输的关键步骤。 二、协商媒体参数媒体能力协商:在 GB28181 中,不同的设备可能具有不同的媒体处理能力。通过 “INVITE” 请求和响应的交互过程,可以进行媒体能力的协商。 ");}}}} GBSIPAgentPlayListener主要系GB28181的Invite、Ack、Bye等处理:public interface GBSIPAgentPlayListener {
该标准规定了城市监控报警联网系统中信息传输、交换、控制的互联结构、通信协议结构,传输、交换、控制的基本要求和安全性要求,以及控制、传输流程和协议接口等技术要求。 该标准于2012年6月1日正式发布实施,在全国范围内的平安城市项目建设中被普遍推广应用。GB/T28181-2011标准自发布以来,受到了各大视频监控厂商的积极响应。 地址类型 * * @param rtp_sender_handle, CreateRTPSender返回值 * @param ip_address_type, 0:IPV4, 1:IPV6, 相关接口---------------*/ 启动、停止GB28181 完成视频分辨率等参数配置后,点击“启动GB28181”,即可开始走信令交互流程,设备端主动发送Register,进入后续交互流程。 处理 假定整个信令交互流程顺利,Android设备端完成Register、Catalog、KeepAlive消息处理后,平台端发过来Invite请求并携带SDP消息体。
技术背景GB28181协议是一种用于设备状态信息报送的协议,可以在不同设备之间进行通信和数据传输。 信令主要包括SIP Register,SIP Message,SIP Invite,SIP NOTIFY,SIP SUBSCRIBE 等方法的请求和响应处理,还有就是MANSCDP的解析和生成。 好多开发者,希望知道我们的设计思路,以我们Android平台GB28181设备接入模块为例,我们的设计如下:图片技术实现GBSIPAgentListener主要系GB28181注册、心跳、DevicePosition Sender IP地址类型 * * @param rtp_sender_handle, CreateRTPSender返回值 * @param ip_address_type, 0:IPV4, 1:IPV6, Receiver IP地址类型 * * @param rtp_receiver_handle, CreateRTPReceiver * @param ip_address_type, 0:IPV4, 1:IPV6,
、心跳保活、设备状态通知、流媒体会话协商(INVITE/ACK/BYE)等完整流程; 可与主流国标平台(天网、雪亮、星火、融媒体中心等)实现无缝对接; 接入后可被平台像普通摄像头一样调用、录像、回放 ✅ 模块能力概览表:能力模块支持情况补充说明SIP 信令流程✅ 注册 / 心跳 / 目录 / INVITE / BYE兼容国标流程视频源接入✅ RTSP / RTMP / H.264 / H.265支持软硬解码及码率调节音频支持 四、技术强化:GB28181 接入模块能力详解大牛直播SDK在 Android 平台提供的 GB28181 接入模块(SmartGBD 模块),不仅支持完整国标流程,还针对移动端、无人机、边缘设备做了深入优化 INVITE → 建立媒体流通道 → 回 ACK,开始视频推送流程BYE 回收支持平台挂断后终止推送,回收资源、释放内存该流程已在全国各类雪亮工程、公安指挥平台、NVR系统中完成过大量兼容测试,稳定可靠 ✅ 6.
本文旨在讲如何实现无人机(如大疆无人机)数据到GB28181平台(如海康、大华、宇视等国标平台)。 当国标平台端,需要查看无人机的实时画面时,可以发送Invite,请求无人机画面,Android平台GB28181接入模块,这时启动拉取无人机回调数据,并完成数据投递,和H.264到PS到RTP的打包上传即可 GB28181 媒体流private void stopGB28181Stream() { if(! int size, int is_key_frame, long timestamp,ByteBuffer parameter_info, int parameter_info_size);其他信令交互流程前面提到很多次了 ,本文不再赘述,这里主要看看Invite和Ack的处理:先看Invite处理:@Override public void ntsOnInvitePlay(String deviceId, PlaySessionDescription
智能安全帽是一种集成先进科技的安全帽,可基于GB28181规范,适用于铁路巡检、电力、石油化工等高风险行业的作业人员,以及消防、救援等紧急情况下的安全防护。 以大牛直播SDK的Android平台GB28181设备接入模块为例,如果需要对接到GB28181智能安全帽,需要关注信令和媒体数据两块部分,这里说说大概的设计思路:GBSIPAgentListener主要系 的Invite、Ack、Bye等处理:public interface GBSIPAgentPlayListener { /* *收到s=Play的实时视音频点播 */ void ntsOnInvitePlay(String deviceId, SessionDescription sessionDescription); /* *发送play invite response void ntsOnInviteTalk(String deviceId, SessionDescription sessionDescription); /* *发送talk invite