摘要随着宽带互联网技术的普及和多媒体技术在互联网上的应用,视频点播已经不再局限于有线网络,扩展到了3G移动领域。本文首先介绍了一个3G视频点播系统,并在此平台上介绍了3G流媒体协议栈的概念、特点及其架构,然后针对该系统的整体框架具体论述了3G流媒体协议栈的模块实现,并讨论了各个功能模块的作用及相互之间的影响,最后详述了流媒体传输的要害环节——同步机制,从而在3G终端实现客户端\服务器式的流媒体数据的实时传输。
1、概述
1.1 3G视频点播系统概述
视频点播技术即VOD(VideoOnDemand),最初出现是缘于人们对广播电视的需求,但之前VOD一直局限于有线网络,从而无法给用户提供一个完全自主便捷的环境。在这样的情况下,无线移动视频点播业务的出现提供了一个可以和外界交流的平台。3G技术的成熟,更是为这项业务提供了一个可靠的实现基础,人们在任何时间,任何地点,只要通过一部3G手机,就可以像在家通过电视或电脑连接上有线网络一样的在整个网络环境中随意浏览任何自己感爱好的节目,从而提供给人们一个交互式的主控权利,随机随时的获取网络资源。在3G视频点播系统中,手机客户端接受来自基站服务器发送的媒体数据,经过一系列的处理呈现给用户播放的图像,服务器接收客户端返回的质量报告进行分析,并根据网络的实际状况给出合适的传输方式以及合适的图像编码格式,进行流量控制。客户端完全是被动的数据处理,媒体数据解码,视频和音频的同步。而服务器则承担了大部分的网络质量状况监测任务。这个方式有点类似于HTTP方式下的客户机/服务器模式。而上述这种实时流媒体传输的运行架构则需要完善可靠的流媒体协议栈来支持。
本文即介绍一个3G视频点播系统(如图1所示)中流媒体协议栈的实现,该系统由3部分组成:服务器,Internet和手持设备,针对该系统,本文首先介绍了实时流媒体协议栈的概念、特点及其发展背景,然后在此基础上讨论了实时流媒体协议栈在此3G视频点播系统中的软件架构,最后具体论述各个模块的设计及流媒体传输的要害环节——同步机制。
图1 系统概述图
1.2 系统平台
系统工作的硬件平台、软件平台如下:
硬件平台:SH-mobilesolutionincludesa SH3-DSP core MCU,memory,IO,and LCD etc,Abase-band controller(AT91 RM9200 Base-Band board),一台服务器(即PC机)。
软件平台:SH-7300实时操作系统(Norti4),MPEG-4audio/videoencoder/decodermiddleware,流媒体协议栈(如图2所示)。
图2 系统软件平台
2、基于3G终端的流媒体协议栈的架构
2.1 流媒体协议栈及其特点
以3G协议栈为基础的实时流媒体协议栈(real-timestreamingmediaPRotocols)具有强大的兼容性,能根据基站服务器通信准则建立最优播放效果,并根据网络状况,实时适应以改变通信策略和媒体播放效果。协议栈将可以保证以下业务:
(1)进行视频通话,三方举行视频会议;
(2)替代以电视为媒体的广告与节目播放,提供更具吸引力的多媒体点播等互动服务;
(3)享受移动银行,股票信息,以及电子交易等各种信息服务。
实时流媒体协议栈可以设计为一个与系统无关的模块,以实现在目前3种3G标准WCDMA、cdma2000、TD-SCDMA之上无缝移植和嵌入。我们以协议为指导,根据无线移动网络的实际情况,做出合适的裁减和改变。流传输控制机制将根据3G网络的特性和嵌入式实时系统的要求定制,使协议栈能够发挥可靠的,高效率的作用。同时协议栈不仅提供标准的应用程序接口,还可以根据客户的要求非凡定制专用的应用程序接口。
2.2 流媒体协议栈整体架构
基于3G终端的流媒体协议栈由RTSP协议栈,RTP/RTCP协议栈,TCP/ip协议栈组成。
2.2.1 TCP/IP协议栈
TCP/IP协议栈是由3G的协议栈提供,负责对流媒体数据的传送。TCP、UDP的协议都将使用到,并且根据不同的网络情况,分别使用。TCP是用于可靠的连接,RTSP协议将尽量使用这个协议进行传输,UDP是无连接的协议,RTP/RTCP协议栈将通过这个协议传送数据。当然这也不是绝对的,在必要的时候,RTSP可以使用UDP协议,比如防火墙的强制隔离,要求代理服务器转发,这时需要由协议栈来保障RTSP协议的可靠性,包括使用重发机制;RTP/RTCP也可以使用TCP连接,比如要求跨防火墙,建立直接连接的通道,这时可能牵涉到RTSP和RTP/RTCP协议的算法,需要由协议栈来提供。
2.2.2 RTP/RTCP协议栈
RTP/RTCP协议是流媒体协议栈中要害的一部分,它承担了媒体数据的传送,由2个相互紧凑的协议组成,数据报文实时传输使用的RTP协议和QoS监视的RTCP协议。协议设计者并不考虑RTP协议的纠错功能,而要求下层协议来保证,以提高媒体帧传输的数量,节省带宽,节省程序的开销,其传输机制专注于媒体本身的可靠性传输。RTP直接面向媒体数据,是一种以带宽和网络质量为先决条件的传输协议,其传输方式是随着带宽和网络质量变化而动态调整的协议,其宗旨是以最大的可能性利用网络的负载能力,确保大容量的多媒体数据能及时的传输。在这样的设计思想下,3G信道带宽不至于过度浪费,因此适合于手机终端的使用。同时,RTCP协议作为传输控制协议,也是网络质量的监测者,它为互动的双方提供了统计意义上的报告,为双方提供网络实际的质量,也为流量控制,编码方式,提供了可靠的保证和参考。作为独立于3G协议栈的应用层媒体协议栈,RTCP根据其机制,提供质量服务QoS,为网络运营商监视网络情况提供参数。
2.2.3 RTSP协议栈
RTSP协议栈是流媒体协议栈中与界面和RTP/RTCP协议相关的控制协商操作。RTSP提供响应界面操作的接口,直接响应界面发送的命令。同时RTSP也提供互联的双方或多方的一个传输方式和编码方式的协商操作,在网络答应情况下,建立一条最佳传输通道。以最匹配的情况传输数据,而无须每次传输都要求双方解析,节省了大量的时间,也减少了出错的可能性。
RTSP和RTP/RTCP协议栈组成整个流媒体协议栈的核心部分,他们各自的控制机制是需要根据无线移动网络的实际情况和媒体编码格式统筹设计,在协议中是没有硬性规定的。
3、3G视频点播系统中流媒体协议栈的模块设计
系统的模块化有利于整体功能的实现,本系统框架从流媒体协议栈进行规划,分为5个模块:人机界面、RTSP模块、RTP/RTCP模块,以及硬件媒体编解码器模块。模块架构如图3所示。
点击查看大图图3 视频点播系统架构
3.1 人机界面(MMI)
界面部分是手机终端提供给用户的交互界面。用户可以使用它来控制播放的动作,比如通过点击Web的链接,接入流媒体服务器。可以进行播放、暂停、终止、快进、后退等操作,当然,所有操作是在服务答应的范围,超出服务范围的操作将被禁止。通过界面,用户就可以享受到视频/音频的多媒体服务,可以点播电影,也可以召开会议。
3.2 RTSP模块
RTSP模块是以客户端为主的应用控制模块,以适应3G手机终端对媒体点播的需要。主要内容包括:RTSP协议栈的会话的建立、会话的传输、会话的协商和会话的终止,以及文本指令的解析。在流媒体协议栈架构中,RTSP处于TCP/IP层之上,使用TCP协议传输会话数据。处于界面控制程序直接操作下,为应用界面提供编程接口。同时RTSP对媒体数据层和RTP协议有着控制的权利,可以调整RTP会话参数,以及媒体层同步等等。RTSP是一个类似HTTP的服务器-客户端的模型,但与HTTP不同的是双方都可发送请求并都可以响应请求,是一个对等互动的协商协议。
在此视频点播系统中,RTSP模块通过TCP协议的三次握手机制来保证命令消息通道的可靠性。一方面接收服务器的确认信息传给应用层进行处理;另一方面接收来自客户端的命令信息,解析后反馈给服务器。此外,RTSP模块支持以下操作:
(1)从媒体服务器端获取媒体。客户端能够通过HTTP或者其它模式来请求一个的图像描述。假如图像正被多点传输,那么图像描述就包含了用来传输连续媒体多点传输的地址和端口。假如图像只能被单点传送,那客户端就要因为安全原因而提供给目的地址。
(2)邀请媒体服务器参加会议。一个媒体服务器端能够被“邀请”参加一个存在的会议,可以回放媒体成为图像,或者记录图像中的媒体的全部或者一部分。
(3)在存在图像中增加媒体。尤其对于活动图像,假如服务器能告诉客户端,增加的媒体是有用的。
3.3 RTP/RTCP模块
RTP/RTCP模块是以客户端为主的应用传输模块。主要内容包括:RTP/RTCP协议栈的会话的建立,会话的传输,会话的控制和会话的终止。此模块位于TCP/IP层之上,使用UDP协议传输数据。当应用程序开始一个RTP会话时通常使用两个端口:一个给RTP,一个给RTCP。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP的媒体数据载荷加载准则依靠于不同的媒体编码格式而不同,数据报文的格式按照RFC规定的实现,如图4所示。
点击查看大图图4 RTP报文头格式
同时应用程序可以通过此模块调整传输频率去和接受者的能力相匹配,或者以适应网络拥塞。通过参加多点传送组的适当的子集,接受者能适应不同的网络并控制他们的接受带宽。此外模块中所有的多媒体会话,都将视频和音频分别存放,这是为了保证在与某些不具有视频功能的终端通信或者在网络质量恶劣的情况下,可以只提供音频服务,而将视频服务关闭。
3.4 硬件媒体编解码模块
硬件媒体编解码器是基于MPEG-4实现的硬件Codec,采集的视频音频原始数据通过它压缩后形成mp4的数据格式,通过传输协议发往服务器;来自服务器的MP4视频音频数据通过Codec还原为原始数据,送往终端显示器,提供用户动态界面。当然画面可能因为压缩和传输的损伤有所下降,针对这样的情况,协议栈将提供纠错,补偿,同步功能来修复损伤,力图保持最完美的视频语音效果。
4、流媒体同步机制
流媒体数据和传统数据的一个主要不同是不同媒体流的集成,主要表现为同步方式。在3G视频点播系统中,流媒体传输的同步机制是一个非常要害的问题,同步机制设计的好坏直接涉及到了播放效果,而播放效果则是直接面向用户,是检验媒体播放质量的直接证据。
媒体同步定义是不同媒体流之间以及数据流内的基于时间的关系。目前有3层同步,分别是系统同步(流内同步)、媒体间同步(流间同步)和用户层同步(目标间同步)。
媒体数据的同步丢失是由于从服务器发往客户端的媒体数据报文因为不同的路由路径导致,而且所有媒体数据的存储转发都将产生延迟和抖动。延迟以及延迟的可变性将导致以上3种同步的丢失。因此,媒体间同步机制是必须的,以确保在客户端正确的播放媒体数据。
4.1 系统同步(流内同步)
系统同步(流内同步)是底层同步。
连续媒体或者时间相关的数据(比如,视频和音频)的媒体层同步是最底一层。媒体层的最小单位是逻辑数据单位(LDU),比如视频和音频帧,需要严格的按照时间顺序以确保用户可以精确的回放。系统同步缺失将导致播放暂停或跳跃。
4.2 媒体间同步(流间同步)
时间相关数据的流层同步是第二层。流层的最小单位是整个流。没有流间的同步将导致不同媒体数据的失调。
网络的带宽是完成流媒体传输的物质基础,在传输声音、图像、视频等多媒体信息流时,即使这些媒体流予以压缩,所需的带宽仍然比文字文件大,但并不是有足够的带宽就可以完全解决流媒体传输问题。一般而言,所需带宽的多少是与应用密切相关的,从应用角度来看,只要用户数不断增加、信息服务量不断增加,带宽有多少都是不够的。同步是媒体流的基本控制方法。流媒体是时间属性的表现,这依靠于RTSP协议栈。
4.3 用户层同步(目标间同步)
这是多媒体文献中规定的最高层次的同步,是对象之间的同步,它集成了流和与时间无关的数据。对象间同步要求,假如某个以前定义的与时间相关的媒体目标到达客户端,那么在一个答应的时间间隔内,必须开始与之相对应的与时间无关的数据,同时停止与之不匹配的当前的与时间无关的数据。
用户层同步或交互同步,是最上层的同步,要求能反映和满足用户的交互性,轻易为用户理解接受。用户层同步是交互性参与的同步,用户可以控制和使用信息,如反复调用感爱好的内容、快速擦过不感爱好的部分。虽然RTSP协议支持类似录像机的功能:播放、快进、暂停、停止,但流媒体的交互性同步能力主要体现在数据流编码过程中对交互性能的考虑。
5、小结与展望
近年来,无线移动通信技术的发展日新月异,日趋成熟的第三代移动通信不仅能够提供现有的各种移动电话业务,还能提供高速率的宽带视频业务,支持高质量的话音、分组数据业务,以及实时的视频传输。3G技术融合了无线通信与互联网、视频等技术,由此产生的无线视频和无线IP业务也将成为未来无线移动通信业务新的增长点,而流媒体技术正是因为3G提供的可靠平台成为其应用之一,本文所介绍的视频点播系统就是流媒体协议栈基于无线移动通信技术的典型应用方案。而今,功能日渐增强的流媒体协议栈以其优势已经应用于各个领域,尤其在嵌入式领域与无线Web浏览技术相融合,并将一定程度上推动3G手机的发展。(张翀编辑)
进入讨论组讨论。