技术背景
好多开发者在跟我们沟通直播模块的时候,对GB28181设备接入和RTSP模块特别是轻量级RTSP服务,区分不清楚,不知道分别用在什么场景下。针对这个问题,我们做个简单的探讨。
一、定义差别
- GB28181:GB/T28181是中国国家标准委员会发布的关于视频监控安防领域的网络视频监控系统技术规范(GB/T 28181-2016)。它主要用于视频监控系统的设备接入、视频流传输、设备控制等功能,适用于大规模的视频监控系统,如城市安防、企事业单位、交通监控等场景。
- RTSP:RTSP是一种用于流媒体传输控制的应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交给IETF的RFC标准(RFC2326)。它主要用于实现对流媒体服务器中的多媒体资源的控制,如播放、录制、暂停、快进等操作。
二、使用场景
- GB28181:主要应用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景,通过定义设备接入、流媒体传输、信令交互、存储管理、安全防护等规范,实现视频监控系统的设备间通信和控制。它支持视频流、音频流和数据流的传输和控制,可以实现视频监控、语音对讲、设备控制等功能。
- RTSP:则广泛应用于各种流媒体应用,如直播、点播服务、视频会议等。它通过建立客户端和服务器之间的会话,控制流媒体的播放、录制等操作。RTSP本身不传输音视频数据,而是使用RTP(Real-Time Transport Protocol)来传输音视频数据。
三、技术特点
- GB28181:
- 使用SIP(Session Initiation Protocol)作为信令协议,通过RTP/RTCP传输实时音视频流。
- 支持设备的注册、鉴权、配置等接入要求。
- 定义了音视频数据的传输协议和格式,包括实时流媒体传输协议、码流封装格式等。
- 规定了前端设备与管理平台之间的信令交互方式,包括设备状态上报、告警信息推送、远程控制等。
- 强调安全防护要求,包括设备的身份认证、流媒体传输、数据的安全存储等。
- RTSP:
- 位于RTP和RTCP之上,使用TCP或UDP完成数据传输。
- 提供了一个可扩展框架,使实时数据(如音频与视频)的受控点播成为可能。
- 允许同时多个串流需求控制,支持多方视讯会议。
- 与HTTP 1.1的运作方式相似,代理服务器的快取功能也适用于RTSP。
模块区别
先说Android平台GB28181设备接入模块(SmartGBD),大牛直播SDK推出的Android平台GB28181接入SDK,可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务。系统架构如下:
功能设计
- [视频格式]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媒体流传输客户端);
- 支持信令通道网络传输协议TCP/UDP设置;
- 支持注册、注销,支持注册刷新及注册有效期设置;
- 支持设备目录查询应答;
- 支持心跳机制,支持心跳间隔、心跳检测次数设置;
- 支持移动设备位置(MobilePosition)订阅和通知;
- 适用国家标准:GB/T 28181—2016;
- 支持语音广播;
- 支持语音对讲;
- 支持图像抓拍;
- 支持历史视音频文件检索;
- 支持历史视音频文件下载;
- 支持历史视音频文件回放;
- 支持云台控制和预置位查询;
- [实时水印]支持动态文字水印、png水印;
- [镜像]Android平台支持前置摄像头实时镜像功能;
- [实时静音]支持实时静音/取消静音;
- [实时快照]支持实时快照;
- [降噪]支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测;
- [外部编码前视频数据对接]支持YUV数据对接;
- [外部编码前音频数据对接]支持PCM对接;
- [外部编码后视频数据对接]支持外部H.264数据对接;
- [外部编码后音频数据对接]外部AAC数据对接;
- [扩展录像功能]支持和录像SDK组合使用,录像相关功能。
再说轻量级RTSP服务,轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,实现本地的音视频数据(如摄像头、麦克风),编码后,汇聚到内置RTSP服务,对外提供可供拉流的RTSP URL,轻量级RTSP服务,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。:
功能设计
- [基础功能]支持Windows/Linux(含x86_64|aarch64)/Android/iOS平台RTMP直播SDK除推送RTMP外的所有常规功能;
- [音频格式]AAC;
- [视频格式]H.264、H.265;
- [协议类型]RTSP;
- [传输模式]支持单播和组播模式;
- [端口设置]支持RTSP端口设置;
- [鉴权设置]支持RTSP鉴权用户名、密码设置;
- [获取session连接数]支持获取当前RTSP服务会话连接数;
- [多服务支持]支持同时创建多个内置RTSP服务;
- [RTSP url回调]支持设置后的rtsp url通过event回调到上层。
总结
GB28181设备接入模块和轻量级RTSP服务模块,在视频监控和流媒体传输领域各有侧重。GB28181作为中国国家标准,专注于视频监控系统的设备接入、视频流传输和设备控制等功能,适用于大规模的视频监控系统。轻量级RTSP服务,主要是用于内网环境下,不需要额外部署流媒体服务,实现音视频数据共享的目的。二者可以在同一个APP共存,也可以单独使用。感兴趣的开发者,可以单独跟我交流。