杨明极,许雪松,李天池
(哈尔滨理工大学 测控技术与通信工程学院,黑龙江哈尔滨150080)
责任编辑:任健男
随着第三代通信网络的覆盖和移动互联网技术的快速发展,在无线网络中传输实时视频成为通信和计算机领域研究的热点,适用于无线视频传输的带宽发展为无线视频系统的发展带来了新的飞跃,而无线3G网络以其高速的灵活性、便捷性、移动性等特性成为了最佳网络的传输环境[1]。信息技术的发展也推进了社会的进步,各个领域也把移动视频模块应用到各自的行业中,例如手机实时视频在政府、电力、交通、金融、公安等部门有了广泛的应用。
本移动视频服务器基于3G网络环境,视频卡采集到实时视频流,流媒体服务器采用了MPEG-4压缩标准对视频流进行压缩编码。无线网络的传输具有带宽波动大、高误码率、异类性和严格的时延等问题,因此本文采用RTP/RTCP协议端到端传输和控制,并经过RTP(Realtime Transport Protocol)封装的MPEG-4码流传输到手机客户端。系统总体模型如图1所示。
图1 系统总体模型
MPEG-4对音视频和图形的压缩采取了基于内容的存取、传输,它提供了针对对象而非像素的浏览、访问、操作技术,并且给用户提供了与可视内容进行交互的高水平能力。MPEG-4包括支持形状编码、运动估计与补偿、纹理编码、差错复原、分级编码和Sprite编码的各种应用工具集组成[2]。在MPEG-4中,把视频信号看成为不同的对象(object)组成,这些对象可以单独地进行编码操作和直接访问,从而以内容为核心的描述方法的编码标准有着更优越的压缩性能[3]。MPEG-4支持的功能可以分为基于内容的交互性、高效的压缩性和通用的访问性三种特性。
RTP/RTCP协议是建立在因特网上的处理实时多媒体数据流的传输协议。RTP协议在一对一或一对多机制下协同工作,负责提供实现流和时间信息同步,RTP是建立在UDP协议上,所以不能为多媒体流数据提供可靠的传输机制,只能保障数据的实时传输而不能提供拥塞控制和流量控制[4]。而RTCP(RTP Control Protocol)是RTP的控制协议,负责管理传输在当前应用进程之间交换的控制信息[5]。在RTP传输的会话期间,每个用户端周期性的传输RTCP数据包,其中包括已经发送或者丢失的数据包的相关信息,这时反馈到服务器端,而服务器端可根据反馈信息的调整数据流的传输[6]。在流媒体数据传输的过程中,服务器端和客户端的RTP和RTCP协议成对的协调使用,服务器程序启动RTP连接的同时会占用两个供RTP和RTCP使用的端口[7]。QoS的监控信息放在RTCP的数据报中,RTCP对服务质量和网络阻塞情况进行动态控制和反馈[8]。
本系统由视频采集终端、视频服务器端、3G通信传输网络和手机客户端组成。视频采集终端负责视频流的采集,视频服务器端负责把接收到的视频流通过MPEG-4压缩编码,并将标准的视频码流通过3G网络传输至客户端,服务器系统框图如图2所示。
图2 视频服务器框图
视频服务器的主要任务是通过RTP Sender和客户端RTP Recv通信以及发送视频流数据,而在客户端监控到视频流的状态信息和质量信息,并通过RTCP/UDP/IP协议将反馈信息传输到视频服务器。在服务器中以RTCP控制信息提供给流媒体服务器,在网络端口进行TCP监听,与已经请求到连接的客户端进行流媒体数据通信,服务器收到客户端监听的RTP端口信息,并在RTP发送列表中加入客户端的端口和IP地址。服务器在接收到了客户端的信息之后,就开始向请求服务的客户端的相应端口和IP地址发送视频流数据,在通信结束后服务器收到Teardown信息后即停止向指定的客户端发送数据。客户端向视频服务器发送RTCP反馈信息,获取到实时视频流信息并向服务器发送客户端的视频模块的通信监听端口,客户端初始化视频解码模块和分配视频缓冲区,接收到的视频流通过流媒体播放器对解码播放。
Xvid是MPEG-4标准中的一个开放源代码的视频解码器,它在一定程度上继承了OpenDivX EncoreZ,性能极大提高,目前被业界看作是MPEG-4中最快的解码器之一,因此在本视频服务器中采用XviD的开源代码库xvidcore-1.0.1作为解码库。
在打开视频采集模块之后,设置视频输入通道和缓冲,并直接把采集到的信号类型RGB直接映射到内存上,然后把RGB转换成Xvid编码器所支持的YUN格式传给编码端。编码器的主要模块由传统的运动和纹理编码和VOP形状编码部分构成,零散的VO内容被VOP的形状信息整合成场景,实现Simple/Level 1框架将整个帧看作是一个矩形VOP,而不采用形状编码,基于VOP的编码结构图如图3所示。
图3 基于VOP的编码结构图
MPEG-4编码标准是基于VOP的编码结构设计而实现的,根据CIR来判断当前的帧是Delta帧,Delta帧运动估计/补偿模块是按照宏块进行的,对像素差值根据不同的编码质量按照宏块进行半像素搜索,然后当前的编码模式由SAD计算确定。通过运动估计/补偿以后,得到Delta帧的编码模式为P-VOP。经过预测补偿后的残差数据就是此时的编码数据,同时需要获取MV信息。在MV编码过程中,分离出的垂直和水平的分量独立编码,还有右下方的MV编码值利用之前3个值的均值来进行预测。得到的此时MV预测值之间的差值限制在ME的搜索范围(可变长度和固定长度的编码),其中编码过程为:
在流媒体服务器端,通过数据源组件获取到由视频采集卡采集到的数据流,探测组件与网络发送端将经过压缩处理的视频数据发送到手机客户端,同时RTCP的通信状态反馈给服务器的控制模块,服务器根据客户端传送的命令启动实时源Filter,发送Filter和创建过滤器图表。客户端检索到流媒体数据并启动接收Filter流,创建过滤器图表并启动手机端的流媒体播放器。服务器和客户端的RTP/RTCP通信过程如图4所示。
图4 RTP/RTCP通信流程图
在MPEG-4编码标准中,包含了RTP数据包通信字段所应用的使用规范和分片规则,RTP内容中的时间戳能够独一无二地替代VOP的分帧时间,为了达到使基本流配置信息在同一个RTP端口上进行通信的目的,本文采用的是合并配置/基本流模式。在RTP信息包放在上层函数头的后面或者开始位置,把Group_of_videoObject-Plane()和配置信息嵌入其中,特定的RTP包接收特定的VOP,也就是每个RTP对应着唯一的VOP时间相关的数据包,将视频流包放到RTP数据包中进行发送,其中RTP包的数据值不得超过路径的最大传输单元MTU值。
数据源组件RTP Source Filter属于Source Filter,它的主要过程是首先从文件读出视频数据或者从视频采集卡获取实时视频数据,再传送给网络发送与探测组件,RTP Source Filter的接口定义如下:
IRTPSourceFilter接口代表的是设定数据源类型,Filter数据源的传输是利用Sample信息得到的,Sample则是实现和映射了固定数值大小的COM组件,通信中的服务器和客户端的端口必须使用匹配相同的分配器。根据客户端的反馈信息的要求把Sample设定为索引数字,在服务器端则启动实时视频流作为数据源向Sample输入内容和有效数据长度。在网络发送和探测组件的过程中,RTP Send Filter与RTP Source Filter连接在一起,然后将RTP Source Filter传送过来的视频流使用RTP协议通过网络组件发送出去,RTP Send Filter接口定义为:
流媒体客户端设计了流媒体接收组件RTP Rec Filter,通过接收视频流文件来构建流媒体播放端,最后完成视频的成功接收和播放。在客户端中的接收模块使用独立的线程接收视频流数据,通过数据缓冲将视频流以Sample的形式提供给下一级的Filter。
本文移动视频服务器在Windows操作系统环境下进行开发,通过3G网络或无线与Internet连接。应用CF无线网卡,基于IEEE802.11a标准无线局域网架构多点到多点的通信模式,传输的无线广播为2.45 GHz频段,应用DSSS传输技术,最大速率为11 Mbit/s。实际中的传输速率为10~100 kbit/s,视频的传输帧率为0.8~10 f/s,完成了服务器实时视频的数据传输测试。其中视频数据传输部分数据如表1所示,实时视频实验截图如图5所示。实验证明该服务器基本上满足了实时视频传输的需求。
表1 视频实时数据传输部分数据
本文应用MPEG-4视频编码标准和RTP/RTCP协议设计了一个基于智能手机的视频传输服务器,分析了MPEG-4编码标准和RTP/RTCP流媒体传输协议,实现了MPEG-4对视频流的编码和解码,设计了基于RTP/RTCP的流媒体传输的编码和对实时源Filter的处理过程,在手机端经过测试证明服务器的实时性较好,实现了很好的效果。
图5 视频实验截图
[1]KIKKUCHI Y,NOMURA T.RFC3016,RTP payload format for MPEG-4 audio/visual[S].2000.
[2]冯琪,裴海龙.视频采集与实时传输系统的软件实现方法研究[J].计算机应用研究,2005,32(7):188-190.
[3]张宛方,苏鸿根.基于RTP/UDP/IP协议实时传输MPEG-4流媒体文件[J].计算机工程与设计,2004,25(8):1409-1410.
[4]WU D,HOU Y T.Adaptive QoS control for MPEG-4 video communication over wireless channels[C]//Proc.2000 IEEE International Symposium on Circuits and Systems.[S.l.]:IEEE Press,2000:48-51.
[5]孙知信,陈亚当,任至广.基于P2P流媒体直播系统的数据传输策略[J].通信学报,2011,32(6):3-5.
[6]袁晓梅.视频网络直播与流媒体的融合[J].电视技术,2003,27(7):82-84.
[7]张晓,胡维华,徐小良.基于RTCP的移动流媒体研究[J].计算机仿真,2009,26(5):170-172.
[8]刘洋志,杨明,黄鑫阳.多服务组的流媒体安全通信机制[J].电视技术,2006,30(3):56-57.