全部博文(346)
分类: LINUX
2010-03-18 18:55:34
摘要:本文首先介绍了移动流媒体业务的概念,以及流媒体的编解码类型,随后重点描述了实现移动流媒体业务的相关协议,最后介绍了相关标准的进展情况。
关键词:移动流媒体 Streaming 3GPP RTSP SDP RTP
1 引言
流媒体业务是从Internet上发展起来的一种多媒体应用,指使用流(Streaming)方式在网络上传输的多媒体文件,包括音频、视频和动画等。
流媒体传输技术的主要特点是以流(streaming)的形式进行多媒体数据的传输。把连续的影像和声音信息经过压缩处理后放到网络服务器上,客户端在播放前并不需要下载整个媒体文件,而是在将缓存区中已经收到的信息进行播放的同时,多媒体文件的剩余部分将持续不断地从服务器下载到客户端,即“边下载,边播放”。这样就避免了用户在收看或收听媒体流的时候要花费一段时间把完整的文件下载到客户端,可以给用户带来“实时播放”的业务感知体验。
2 移动流媒体业务
移动流媒体业务就是流媒体技术在移动网络和终端上的应用,主要是利用目前2.5G或3G的移动通信网,为手机终端提供音频、视频的流媒体服务。移动流媒体业务的内容包括新闻资讯、影视、MTV、体育、教育、行业和专项应用等多种形式。
移动流媒体业务根据数据内容的播放方式可以分为三种业务类型:
● 流媒体点播(VOD):内容提供商将预先录制好的多媒体内容编码压缩成相应格式,存放在内容服务器上并把内容的描述信息以及链接放置在流媒体的门户网站上。最终用户就可以通过访问门户网站,发现感兴趣的内容,有选择的进行播放。
● 流媒体直播:流媒体编码服务器将实时信号编码压缩成相应的格式,并经由流媒体服务器分发到用户的终端播放器。根据实时内容信号源的不同,又可以分为电视直播、远程监控等。
● 下载播放:用户将流媒体内容下载并存储到本地终端中,然后可以选择在任意时间进行播放。对于下载播放,主要的限制指标是终端的处理能力和终端的存储能力,内容提供商可以制作出较高质量的视音频内容(高带宽、高帧速率),但需要考虑内容的下载时间及终端的存储空间。
移动流媒体技术是网络音视频技术和移动通讯技术发展到一定阶段的产物,它是融合很多网络技术之后所产生的技术,它会涉及到流媒体数据的采集、压缩、存储,无线网络通信,以及移动终端等多项技术。
由于流媒体的技术特点,决定了其在移动网络中的广阔应用前景。首先,流媒体技术有效降低对传输带宽和抖动的要求,使得在无线传输环境实现实时媒体播放业务成为可能。移动终端体积小、低能耗的要求决定了有限的存储空间,而媒体文件不需要在终端中保存,避免了对存储空间的要求。其次,有效的版权保护,能够确保移动流媒体应用的商用模式。
随着第三代移动通信技术的逐步成熟,将移动流媒体技术引入移动增值业务,已经成为目前全球范围内移动业务研究的热点之一。目前3GPP、3GPP2等标准化组织早已经开展了移动流媒体的应用研究工作,并已经制定了相应的标准。
3 移动流媒体的编解码类型
移动流媒体系统所支持的媒体内容编解码格式与业务类型无关,即无论是点播、直播,还是下载播放,这些格式都是适用的。
依据3GPP的PSS规范,UMTS系统的移动分组流媒体支持的编码类型包含视频、音频、静态图像、位图、向量图、普通文本和定时文本等,其中音频和视频的编解码类型可以有多种组合。本文主要描述视频与音频媒体编码格式的要求。
根据3GPP R6的PSS规范,视频的媒体编解码类型主要有三种:H.263、MPEG-4和H.264。具体包括:
● H.263 profile 0 Level 45;
● H.263 profile 3 Level 45;
● MPEG-4 Visual Simple Profile level 0b;
● H.264(AVC) Baseline Profile Level 1b,且constraint_set1_flag=1,不要求输出的时间顺序。
音频媒体编解码方面,包含4种:
● Enhanced aacPlus;
● Extended AMR-WB;
● MPEG-4 AAC Low Complexity (AAC-LC);
● MPEG?4 AAC Long Term Prediction (AAC-LTP)。
其中,MPEG-4音频解码器支持的最高采样率为48kHz。所支持的通道配置为mono(1/0)和stereo(2/0)。对于AAC-LC或AAC-LTP流,应在SDP“a=fmtp”行中包含MIME参数“profile-level-id”和“object”。其值如表1所示:
4 实现移动流媒体业务的相关协议
本章主要介绍会话建立、RTSP、SDP、RTP/RTCP等移动流媒体的重要协议,以及这些协议用于移动应用的扩展。
实现移动流媒体业务的协议栈如图1所示。其中,视频、音频等流媒体数据主要通过RTP/UDP承载,而一些静态的图像、文本则可以使用HTTP进行承载。对于能力交换(Capbility Exchange)和表示描述(Presentation Description)可以使用HTTP或者RTSP进行封装,这取决于不同的实现方式。RTSP和SDP用于会话建立和控制,MIME描述媒体类型,RTP是流媒体负载的传输协议。
4.1 会话建立
会话建立是指移动流媒体客户端获得初始会话描述的方法。初始会话描述可能是一个表示描述、或者一个场景描述、或者仅仅是一个指向该内容的URL。移动流媒体客户端应当支持按以下格式定义的初始会话描述:SMIL、SDP或者简单的RTSP URL。
除了“rtsp://”以外,移动流媒体客户端还应该支持以“file://”(用于本地存储的文件)和“http://”(用于通过HTTP协议分发的表示描述或场景描述)开头的指向有效初始会话描述的URL,移动流媒体客户端应支持至少其中一种。三种输入举例如下:
● ;
● ;
● rtsp://mediaportal/morning_news.3gp 或 rtsp://mediaportal/morning_news.3g2。
4.2 实时流媒体协议(RTSP)
RTSP(Real-time Streaming Protocol)是由RealNetworks和Netscape共同提出的一种协议,它定义了如何使一对多应用程序有效地通过IP网络传送多媒体数据。
连续的媒体是只有内在时间线的媒体。不连续的媒体则不包含自己的时间元素。话音、音频和视频属于连续的媒体,而静态图像和文本则是不连续的媒体。对于不连续的媒体的传输,例如矢量图、同步文本和合成音频,可以采用HTTP/TCP/IP协议。在这种情况下,由于HTTP已经具备这些功能,因此不需要一个独立的会话建立和控制协议。而对于使用RTP/UDP/IP的连续媒体流则需要一个会话控制协议来建立并控制独立的媒体流。流媒体业务使用RTSP协议来进行会话的建立和控制。
RTSP在体系结构上位于RTP、RTCP之上,它使用TCP或RTP完成数据传输。与HTTP相比,RTP传送的是多媒体数据,而HTTP传送HTML。在使用RTSP时,客户机和服务器均可发出请求,也就是说RTSP可双向服务,而HTTP的请求是由客户机发出,服务器进行响应。
RTSP的主要命令:DESCRIBE、PLAY、PAUSE、SET_PARAMETER、TEARDOWN、OPTIONS、SETUP。
3GPP的PSS规范中对于RTSP协议在移动分组流媒体中的应用定义了一些扩展字段,主要包括:
● Range头字段,并在PLAY的响应中包含这个字段;
● Bandwidth头字段;
● 3GPP-link-Char头字段:用于移动流媒体客户端向移动流媒体服务器报告无线链路特性;
● 3GPP-Adaptation头字段:用于移动流媒体客户端设置速率自适应参数;
● QoE头字段:用于移动流媒体客户端和服务器协商移动流媒体客户端应发送哪些QoS Metrics,以什么样的频率发送以及如何取消发送这些Metrics;
● Video Buffering头字段:用于Buffer的管理。
4.3 会话描述协议(SDP)
RTSP需要一个表示描述(Presentation Description),以便说明一个流媒体会话的基本属性,包括媒体类型和格式、所需要的传输带宽、播放的时间范围、所需Buffer信息等。作为在移动网络中应用的一种带宽和时延敏感的业务,这些信息对于保证移动终端用户的业务感受是非常重要的。
SDP协议最初用于描述SIP会话中支持的媒体类型,只是一种用于会话描述的格式(协议),它并不是一个传输协议,也不包含在媒体的编解码之中,而是用于在不同传输协议间的传递消息的通知协议,其主要目的是解决多媒体会话通知、邀请和会话的初始化工作。
3GPP的PSS规范中使用SDP协议实现RTSP的表示描述,并对SDP进行了必要的扩展,以便满足流媒体业务在移动网络中QoS需求。
SDP消息中包含两层:会话层和媒体层。一个会话描述中可能包含一个或多个媒体层的信息。SDP消息的基本内容包括:
● 会话信息:
■ 会话名和目的;
■ 会话时间;
■ 会话使用的带宽;
■ 会话的用户信息;
● 媒体信息:
■ 媒体类型,例如:视频或音频;
■ 传输协议,例如:RTP/UDP/IP;
■ 媒体格式,例如:H.263视频或者MPEG视频;
■ 多播地址和媒体传输端口(IP多播会话);
■ IP单播会话的联系地址和媒体传输端口等。
DP会话描述由许多文本行组成。文本行的格式为:类型=值。其中“类型”是一个字母,“值”是结构化的文本串。例如:
m = video 53000 RTP/AVP 31
其中:m代表这一行代表媒体信息;video代表是视频流;53000代表UDP端口号是53000;RTP/AVP指媒体传输协议使用RTP/AVP;31代表媒体格式使用H.261并且使用90KHz的时钟。
对于移动流媒体应用,3GPP在PSS规范中定义了一些扩展。SDP在移动流媒体的扩展要求包括带宽参数扩展、用于Buffer管理的扩展、完整性保护扩展等3GPP扩展要求。
移动终端需要使用SDP中的带宽(Bandwidth)字段,以便正确设置QoS参数。因此,移动流媒体服务器应在SDP中的媒体层为每个媒体流包括“b=AS:”、“b=TIAS:”和“a=maxprate”字段,并且在会话层包含“b=TIAS:”和“a=maxprate”字段。当客户端接收到SDP,它将忽略会话层的“b=AS:”参数,并且从相关流的媒体层带宽参数的值来计算会话需要的带宽。若会话层具有“b=TIAS:”和“a=maxprate”参数,由于汇聚多个媒体流时会话层能够提供所需会话带宽更为准确的描述,则优先使用会话层的这个参数,而不是媒体层的参数。
此外,3GPP的PSS规范中对于SDP中的会话层和媒体层都定义了带宽信息参数的两个扩展字段:
● “b=RS:”:为发送者(即流媒体服务器)分配的RTCP带宽;
● “b=RR:”:为接收者(即移动流媒体终端)分配的RTCP带宽。
流媒体服务器在SDP的媒体层包含每个媒体流的“b=RS:”和“b=RR:”字段。
为满足移动网络提供视频流媒体业务的性能要求或速率适配,3GPP的PSS规范也定义了一些扩展字段:
● "a=X-predecbufsize:
● "a=X-initpredecbufperiod:
● "a=X-initpostdecbufperiod:
● "a=X-decbyterate:
● "a=3gpp-videopostdecbufsize:
对于H.263格式的流媒体文件,SDP媒体层定义了framesize扩展字段。该字段定义了H.263流的最大视频帧的长度,便于终端分配适当大小的缓冲空间。格式如下:“a=framesize:
3GPP还定义了一些SDP会话层的扩展字段,用于支持会话的完整性保护,包括:
● "a=3GPP-Integrity-Key";
● "a=3GPP-SRTP-Config";
● "a=3GPP-SDP-Auth"。
4.4 数据传输协议RTP与RTCP
为了传输会话控制信息和媒体信息,移动流媒体客户端和服务器应支持基于IP的网络接口。控制信息和媒体信息基于TCP/IP和UDP/IP传输。
移动流媒体的业务定义是按照实时或点播方式通过移动?缦蚴只?斩私?幸羰悠倒悴ィ?嫦蛄?拥腡CP需要较多的开销,所以不适合移动流媒体的应用。移动流媒体传输一般采用实时传输协议RTP/UDP来传输实时多媒体数据,以获得较小的时延和减少数据开销。
RTP(Realtime Transport Protocol)实时数据传输协议是针对Internet上多媒体数据流的一个传输协议,由IETF作为RFC1889发布。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
RTCP(Realtime Transport Control Protocol)是RTP的控制协议,负责管理传输质量,在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,适合传送网上的实时数据。
RTCP的一个关键作用就是能让接收方同步多个RTP流,例如:当音频与视频一起传输的时候,由于编码的不同,RTP使用两个流分别进行传输,这样两个流的时间戳以不同的速率运行,接收方必须同步两个流,以保证声音与影像的一致。
RTP只是保证同一媒体流的时间戳功能,但是对于同时需要不同媒体流(音频+视频)的业务时,RTCP把时间戳和实时时钟联系起来,保证了媒体的同步,同时RTCP保证参与会话的成员反馈通信信息,从而保证通信的质量。
RTCP包的主要类型包括:
● SR:发送报告,发送者的发送和接收信息的统计;
● RR:接收报告,非发送者的接收信息的统计;
● SDES:信息源的描述;
● BYE:会话参与者会话结束标志;
● APP:某种应用功能。
几个单独的RTCP包可以组合成混合RTCP包进行传输。
3GPP对用于移动流媒体传输的RTP/RTCP也进行了一些扩展,以支持传输的完整性、RTP重传、拥塞控制和速率自适应等功能。
4.5 能力交换协议
在移动流媒体业务中,终端能力协商是一个重要的功能,它使得流媒体服务器可以提供广泛的内容给多种类型的客户端设备。其另一个重要功能是在不同版本的移动流媒体间提供平滑转换。因此,移动流媒体客户端和服务器应支持能力交换。
用户终端档案服务器(User Agent Profile)用于存储用户参数和设备功能信息。这些信息可用于控制如何向移动用户提供流媒体内容。
图2概括性说明终端能力协商机制。
5 移动流媒体标准进展
在移动流媒体技术的标准化方面,移动分组流媒体主要在3GPP进行规范,3GPP2对用于cdma2000系统的移动流媒体文件格式有所规定。
3GPP R6版本的PSS规范项目已经基本完成,在技术内容上与R5兼容。在协议、能力交换、网络适配、DRM等方面有所增强。在编解码方面,3GPP也根据相关组织规范的最新版本进行了更新,与之保持一致,并且在R6引入了视频H.264(AVC)、音频Extended AMR-WB 和音频Enhanced aacPlus等几种编解码方式。