在之前,我有写过Android平台GB28181设备接入模块的好多blog,包括参数设置、功能支持与扩展等,以数据接入为例,支持的数据类型涉及编码前、编码后或直接流数据(RTSP或RTMP流)。可用于如智慧教育、远程办公、生产运输、智慧交通、车载或执-法-记录仪等场景。
- 编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型),其中,Android平台前后摄像头数据,或者屏幕数据,或者Unity拿到的数据,均属编码前数据;
- 编码后数据(如无人机等264/HEVC数据,或者本地解析的MP4音视频数据);
- 拉取RTSP或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。
以下就具体功能,做个简单描述:
[视频格式]H.264/H.265(Android H.265硬编码)
一般来说,GB28181平台建议H.264,GB28181-2016没有专门针对H.265的描述,H.265数据上去,由于网页端没法直接播放H.265,部分平台的做法是,转H.264后再播放,这样无疑增加了平台端的性能压力,而且除了不当,不仅产生时延,而且容易导致音视频不同步。
[音频格式]G.711 A律、AAC
GB28181平台侧,一般建议G.711 A律,如果支持AAC编码,用AAC也未尝不可;
[音量调节]Android平台采集端支持实时音量调节
这个是针对好多Android设备,采集出来的音频声音过大或过小,做的音频消弱或放大;
[H.264、H.265硬编码]支持H.264/H.265特定机型硬编码
支持上层mediacodec硬编码和Native层的硬编码;
[软硬编码参数配置]支持gop间隔、帧率、bit-rate、软编码profile、软编码速度、可变码率设置
常规设置,帧率一般25-30帧,gop间隔,可以设置到帧率的2-4倍,编码bitrate可以根据分辨率帧率左一定的测算,其他针对软编码的参数不做赘述;
支持纯视频、音视频PS打包传输、支持RTP OVER UDP和RTP OVER TCP被动模式、支持信令通道网络传输协议TCP/UDP设置、支持注册、注销,支持注册刷新及注册有效期设置、支持设备目录查询应答、支持心跳机制,支持心跳间隔、心跳检测次数设置、支持移动设备位置(MobilePosition)订阅和通知、支持国标GB/T28181—2016平台接入、支持语音广播及语音对讲
以上是GB28181平台接入特有的功能;
[实时水印]支持动态文字水印、图片水印
我们是以层级结构是实现的动态文字水印、图片水印,确保水印位置可设置、水印可实时控制显示时间;
[镜像]Android平台支持前置摄像头实时镜像功能
镜像功能系常规功能,不做赘述;
[实时静音]支持实时静音/取消静音
如果不想调节采集端的实时音量,也可以直接实时静音非静音的模式,来看音频要不要推到GB28181国标平台接入测;
[实时快照]支持实时快照
实时快照用处比较大,特别是关键数据留底。
[降噪]支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测
专门针对音频做的处理。
[扩展录像功能]支持和录像模块组合使用录像相关功能
GB28181接入侧,需要考虑到上传数据的时候,或者网络抖动亦或异常的时候,把数据归档存到本地,特别是我们实现了暂停|恢复备份,非常实用。
以上就是Android平台设备接入侧需要实现的大概细节,有感兴趣的开发者,可以酌情参考。