Android系统中RTMP流媒体直播的设计与实现
2017-02-09王艳
王 艳
(公安部第一研究所,北京 100048)
Android系统中RTMP流媒体直播的设计与实现
王 艳
(公安部第一研究所,北京 100048)
在人烟稀少、边远山区和高原等地区,无线基站覆盖面较小导致无线传输通道环境恶劣,无法有效实现远程高清音视频的实时播放。前端无线手持设备多采用Android操作系统,因此Android系统高质量实时传输高清音视频成为远程视频监控的关键问题。为保证高清音视频的稳定传输,解决网络拥塞和画面延迟抖动等问题,在Android系统上采用RTMP协议传输高清音视频,优化RTMP的数据传输策略,实现了高清音视频的无线传输。在严重丢失帧的恶劣环境下测试该系统,系统运行稳定,显著提高了音视频播放的流畅性和传输的服务质量。
Android;4G无线传输;RTMP;远程视频监控
无线通信传输技术飞速发展,为高清视频的无线传输提供了有效的带宽。但是在西部山区和高原等人烟稀少地区的无线基站建设较少,覆盖面积较小,或者是在人群密集的公共场所,无线线路的传输通道带宽较窄,无法满足发生群体性事件时远程视频监控的需求。因此,研究低带宽等恶劣环境下高清无线视频的传输技术成为提升远程视频监控应用性能的重要问题。
在公共安全业务领域,智能移动设备正快速成为无线通信的前端装备,基于移动设备的无线通信将是远程视频监控的重要研究领域。任何时间、任何地点和任何设备支持视频监控,成为移动远程视频监控新的要求。这一新要求减小了系统对客户端的地点限制,加快了应急事件的响应速度,提高了视频监控的效率。智能移动设备多采用Android操作系统来实现视频监控的便携化,如何在Android操作系统环境下传输高清视频成为移动远程视频监控的首要技术问题。但是,Android操作系统前端设备存在处理器速度慢和内存空间小等资源有限的问题。因此,在针对低带宽等恶劣环境下,本文提出了基于Android操作系统的远程无线视频监控传输方案,采用RTMP传输协议根据网络状况实时调整码率和传输率来提高音视频数据的传输质量,实现前端视频的流畅播放。测试该系统,Android前端传输到后端的媒体流在服务器上能流畅播放,在公安领域的应用前景广阔。
1 RTMP协议传输原理
RTMP(Real Time Messaging Protocol)支持端对端的可靠链接和完整的时间戳序列,采用TCP方式传输FLV报文,面向连接提供可靠的数据传输来减少丢包,降低了媒体流传输中丢包对播放质量的影响和失真。FLV封装以二进制编码产生的文件较小,经过高度压缩和序列化后,可靠有序传输减小网络传输消耗,视频加载速度快,占用CPU资源小,节省带宽,实现了低码率下的高速传输,适合窄带下实时播放媒体流。
RTMP属于应用层协议,其封包结构由包头和包体组成。Message Type ID为1~7的消息表示协议控制,Message Type ID为8~9的消息分别传输音频和视频的数据。Message Type ID为15~20的消息发送AMF编码的命令,完成用户与服务器间的交互。Chunk消息块首部由消息头Chunk Basic Header、负载所属消息Chunk Message Header和时间戳溢出Extended Timestamp三部分组成。RTMP消息的封装结构如图1所示。
图1 RTMP消息的封装结构
RTMP协议栈是由Chunk Stream、Message Formats和Commands Messages三部分组成。为保证在窄带宽下传输媒体流,消息被拆分成若干字节的数据块,添加消息头后重新组成消息块。前端设备将媒体流封装为消息,消息分割为较小的数据块,将分割后的数据块以TCP协议发送到服务器。终端设备接收TCP协议的消息块重新组合成消息,可播放解封装后的媒体流。
2 基于Android的RTMP协议设计
基于多台Android手机的远程视频监控系统由监控点前端手机设备、媒体服务器和后端播放器组成。音视频图像的传输分为控制流和媒体流两部分进行通信。服务器和多客户端间采用HTTP协议传输控制流,媒体流通过RTMP协议进行传输。
RTMP协议中Message包由信令和媒体数据组成,Message Head区分Message的类型,可将端口设置为1935。Message包头可动态调整,减小重复的消息头信息来提高传输效率。Message数据是chunk的数据块,StreamID作为唯一标识来区分消息流,数据块的大小由客户端和服务器端可根据网络状态来动态协商。服务器和客户端通过3次握手建立RTMP传输连接,创建传输流后设置Chunk大小发送数据。建立RTMP链接后,可交叉传递多个消息流,实现多路复用同一个链接。其Android系统下设计RTMP的传输协议如图2所示。
图2 Android操作系统下RTMP的协议设计
前端设备、服务器和后端播放器间控制流和媒体流的传输流程如下:
1)前端设备或后端播放器分别向服务器发起HTTP协议请求建立链接。
2)服务器解析HTTP请求,向前端设备或后端播放器回复HTTP应答消息信令。
3)前端设备或后端播放器向服务器发出以0X03为包头的握手请求。
4)服务器回复前端设备或后端播放器的的应答信令。该信令由客户端发起消息时的数字签名产生对应的验证包组成。数据包的第一个字节可为空,第二节字节为1 536 byte的验证信息。
5)前端设备或后端播放器向服务器发送应答信令。应答完毕后,向服务器发送媒体流数据包,或者实现服务器向后端播放器发送媒体流数据包。
RTMP链接中多个虚拟通道进行数据传输,远程调用和数据传输在逻辑上进行分离。命令消息由事务ID、命令名和命令对象组成,分为NetConnection命令和NetStream命令。NetConnection用来管理客户端和服务端间连接,由connect建立请求和call调用远程服务器的RPC操作命令组成。NetStream操作传输通道上的媒体流传输,由通道上播放流文件的play信令、销毁播放流的deleteStream信令、receiveAudio信令和pause信令组成。
3 RTMP协议中数据传输策略
前端设备启动服务器模式,采集实时音视频图像,并编码成H.264码流。后台服务器启动客户端模式向前端设备发送请求链接的信令,建立链接后接收码流并进行实时存储。前端设备采用基于Android系统下的socket编程,采用socket链接建立前端设备和服务器间的传输通道,其数据码流的传输过程如图3所示。
图3 Android中RTMP的数据传输
Android中采集进程使用RTMP协议链接多个摄像头,主线程监控RTMP的数据链接通道,子线程采集数据。将数据硬编码成H.264码流,RTMP封装后一路响应客户端的请求传输给客户端实现直播视频,一路直接传送至客户端存储为FLV文件格式。RTMP传输协议的播放请求分为直播信令和回放信令。若接收到直播信令,向采集进程发送直播请求获取H.264码流。若接收到回放请求,根据信令中的时间段字段,读取相应的FLV文件来实现回放功能。
4 测试与分析
在4G的无线网络环境下,通过多次试验测试Android系统的RTMP协议下传输高清720p流媒体的性能。搭建测试环境的网络带宽为20 Mbyte/s,前端设备分别采用RTMP和RTSP不同方式传输流媒体,后端服务器所消耗的带宽如表1所示。
表1 搭建测试环境测试RTMP的传输性能
RTMP直播RTP和RTSP直播[root@test1]#./test.sheth01[root@testc2]#./test2.sheth01IN:13Mbybe/sOUT:110Mbyte/sIN:15Mbybe/sOUT:100Mbyte/sIN:11Mbybe/sOUT:104Mbyte/sIN:9Mbybe/sOUT:92Mbyte/sIN:15Mbybe/sOUT:116Mbyte/sIN:14Mbybe/sOUT:98Mbyte/sIN:17Mbybe/sOUT:119Mbyte/sIN:15Mbybe/sOUT:103Mbyte/sIN:19Mbybe/sOUT:121Mbyte/sIN:17Mbybe/sOUT:102Mbyte/sIN:18Mbyte/sOUT:120Mbyte/sIN:15Mbybe/sOUT:112Mbyte/s
试验结果表明,4G环境下播放100 Mbyte以上的视频,测试得出RTMP传输方式比RTSP方式更节省带宽,后台服务器上的播放器直播H.264码流的效果更流畅。因此,在较低带宽下直播RTMP的媒体流,服务器能更好地承载并传输高清码流。
测试本系统的功能实现,数据传输流程是前端设备采集音视频,通过RTMP协议传送至后台服务器,手机客户端播放器支持图像预览、遥控操作和存储回放等,手机播放器可查看前置回传音视频和修改前端设备的配置参数等功能。其RTMP传输的功能展示如图4所示。
图4 音视频播放界面和控制界面
将本系统应用于群体性事件等大规模人群等应用场景中。由于人群密集导致带宽受限,在这种情况下后台服务器能很好地直播事件现场的情况。整套产品在实际工作环境中适应性强,安全稳定,具有良好的应用前景。
5 结束语
用户对无线通信传输高清音视频的要求越来越高,即使在恶劣的无线网络环境下,用户在后端监控服务器上也希望得到流畅的高清码流,这对恶劣环境下无线音视频传输技术提出了较高的要求。为了更好地满足用户的需求,本文研究RTMP传输协议的传输原理,设计RTMP的传输协议,实现了Android系统的实时数据传输,后台服务器得到了流畅的高清码流,相关产品已在应用中,并在实际工作中发挥了重要的作用。
[1] MARKER J. ActionScript for multiliayer games and virtual worlds[M]. [S.l.]:New Riders Press,2009:100-150.
[2] CAMARILLO G. Session description protocol (SDP) format for binary floor control protocol(BFCP) streams: RFC4583[S].2006.
[3] HAO Y. Design and deployment of a hybrid CDN-P2P system for live video streaming: experiences with LiveSky[C]//Proc. International Conference on Multimedia . Beijing, China: ACM,2009:10-16.
[4] JIANG H, LI J, LI Z C, et al. Efficient large-scale content distribution with combination of CDN and P2P networks[J]. International journal of hybrid information technology, 2009(2):20-25.
[5] HALIT C, CAPIN T. Multiscale motion saliency for key frame extraction from motion capture sequences[J]. Computer animation and virtual worlds, 2011(22):5-16.
[6] LI W G, WANG W L, JIN T. Evaluating spatial keyword queries under the MapReduce framework[C]//Proc. 17th International Conference on Database Systems for Advanced Applications. Berlin: Springer, 2012: 251-261.
Design and implementation of RTMP streaming media broadcast in Android system
WANG Yan
(TheFirstResearchInstituteofMinistryofPublicSecurity,Beijing100048,China)
In the sparsely populated, remote mountainous and plateau area, the coverage of wireless base station is small which lead to bad wireless channel environment. It is difficult to realize the real-time remote high-definition audio and video players. Android operating system is used in front end wireless handheld device. Android system has high quality real-time transmission of high-definition audio and video to become the key issue of remote video surveillance. In order to ensure the stability of high-definition audio and video transmission, and to solve the network congestion, picture delay and jitter problems, this paper on the Android system by RTMP protocol transmission HD audio and video, RTMP data transmission strategy optimization, realizes the wireless transmission of high-definition audio and video. The system is tested under severe environment condition, and the system is stable and service quality of audio and video playback is remarkably improved.
Android;4G wireless transmission;RTMP;remote video surveillance
王艳.Android系统中RTMP流媒体直播的设计与实现[J]. 电视技术,2017,41(1):64-67. WANG Y.Design and implementation of RTMP streaming media broadcast in Android system[J]. Video engineering,2017,41(1):64-67.
TP311
A
10.16280/j.videoe.2017.01.013
2016-06-06
王 艳(1978— ),硕士,副研究员,主要从事无线通信与嵌入式系统设备研究。
责任编辑:薛 京