个人开发历程知识库

关注C++/Java/C#技术, 致力于安防监控/移动应用/WEB方面开发
------------------------------------ 业精于勤,荒于嬉;行成于思,毁于随
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

移动流媒体技术及其应用发展方向

Posted on 2009-05-16 20:47  peterzb  阅读(1894)  评论(0编辑  收藏  举报

原文地址: http://www.cnblogs.com/frankboy/archive/2005/12/13/296429.html

 一、 现状分析

  在手机增值业务市场,短信、彩信、彩e等虽然有了交互、24小时不间断等不同于传统媒体的特点,但传输的主要是静态为主的图像和文字内容,影响了其媒体作用的充分发挥。随着最终用户需求的提升,如何更好地融合声音、文字、图像,支持多媒体功能,既发挥短信方便、快捷的优点,又可以弥补短信形式单调的不足,真正使移动用户"振聋发聩",进入一个有声有色、逼真形象的美丽世界成为移动运营商普遍关心的话题。

  流媒体(Streaming Media)的出现改变了这种状况。它不需要下载整个文件就可以在向播放器传输的过程中一边下载一边播放,实现了在网上点播或观看电影、电视的梦想。现在,以"流"的形式进行数字媒体的传送,使人们一定的带宽环境下就可以在线欣赏到连续不断的高品质音频和视频节目。在互联网大发展的时代,流媒体技术的产生和发展必然会给我们的日常生活和工作带来深远的影响。专家预言,流媒体将成为未来因特网上应用的主流,实现沟通和传播的多向性使传播不再受时间和空间的限制。
  所谓流媒体是指用户通过网络或者特定数字信道边下载边播放多媒体数据的一种工作方式。流媒体应用的一个最大的好处是用户不需要花费很长时间将多媒体数据全部下载到本地后才能播放,而仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放,后面收到的数据会源源不断输入到该缓冲区,从而维持播放的连续性,因此流媒体播放器通常只是在开始时有一些时延。流媒体系统要比下载播放系统复杂得多,所以需要将多媒体的编解码和传输技术很好地结合在一起,才能确保用户在复杂的网络环境下也能得到较稳定的播放质量。
  多媒体数据在传输前必须要先经过编码器有效地压缩成码流,以减少对网络资源的占用率。目前常用的视频编码器有MPEG-2、MPEG-4、H.261、H.263、H.264、Window Media视频编码器和Real System视频编码器等;编码器有MP3、MPEG AAC、Window Media 音频编码器和AMR等;图像编码器有JPEG和JPEG2000等。多媒体编码器所生成的码流只包含了解码该码流所必需的信息,它不包含媒体间的同步、随机访问等系统信息,因此编码后的多媒体数据还要被组织成为具有特定系统格式的多媒体文件用于流媒体传输或者是存入磁盘中,目前常用的文件格式有MPEG-2系统,MP4,微软公司的ASF,Real的文件格式,QuickTime的文件格式以及用于3G无线服务的3GPP和3GPP2等等。
当流媒体在实时应用中(如现场流媒体广播),根据当前的网络状况和用户的终端参数,多媒体数据是一边被编码一边被流媒体服务器传输给用户。而在其他的非实时应用中,多媒体数据可以被事先编码生成多媒体文件,存储在磁盘阵列中。当提供多媒体服务时,流媒体服务器直接读取这些文件传输给用户,这样服务方式对设备的要求较低。目前许多流媒体服务属于后一种方式,这样就要求流媒体服务器具有一定的机制来适应网络状况和用户设备。
  目前码流自适应这一模块主要采用的方法有:将多媒体文件中的视频码流转换为一个特定码率和图像尺寸的码流;或者把同一段视频内容编码生成多个具有不同码率和图像尺寸的码流,然后自适应选择一个最合适的码流传输给用户。生成的码流还需要进一步打包成为特定网络传输协议的数据包用于网络传输,由于现在许多网络并不能保证传输的数据能够及时并完全正确地被用户收到,传输的数据包可能需要加前向纠错编码(FEC)来保护,经过这些处理后多媒体数据就可以通过网络传输给用户,目前常用的传输协议有RTP/RTCP、HTTP和MMS。
  用户收到传输的数据后,如果存在丢包或者是比特出错,错误恢复处理会根据附加的纠错数据来恢复传输错误。如果还不能恢复传输错误,用户端可以向服务器发出重传请求,在解码开始前重新传输丢失的包。恢复后的多媒体数据将由解码器解码得到重构的多媒体数据,由于容错保护和数据重传可能不能恢复所有的错误数据,错误掩藏模块可以利用重构的多媒体数据的相关性来掩盖这些错误,最后这些数据就播放给用户。
通常流媒体系统中的服务器和用户间并不是单向通信,如前面提到的重传请求。事实上,用户端会传递给服务器许多反馈信息,如终端设备的能力和网络连接速度会传给服务器的码流自适应模块来调整码流,在实时应用中这些信息还可能传给编码器;用户端的丢包率、数据包收到的时间信息和用户缓冲区状态等信息也会传递给服务器来估计当前的网络状况,从而控制码流的自适应和数据的发送策略。从上面的描述来看,实际上流媒体系统在多媒体信息处理中是一个非常复杂的系统,目前市面上主要的产品有微软公司的Windows Media, Real公司的Real System和苹果公司的QuickTime,其中Windows Media系统的市场占有率最大。

  二、流媒体的关键技术

  实现流媒体的关键技术是流式传输。流式传输的定义很广泛,主要是指通过网络传送媒体(如视频、音频)的技术总称。
  流式传输分为顺序流式传输和实时流式传输:
  顺序流式传输采用顺序下载方式,在下载文件的同时用户可观看在线节目,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分,这种方式不像实时流式传输那样,可以在传输期间根据用户连接的速度进行调整。顺序流式传输不适合长片段和有随机访问要求的视频节目,如讲座、演说和演示等,它也不支持现场广播。严格地说,它是一种点播技术。
  实时流式传输可保证媒体信号带宽与网络连接匹配,可实时观看节目。实时流与HTTP流式传输不同,它需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可对观看内容进行快进或后退。理论上,实时流一经播放就不可停止,但可进行周期暂停。
流式传输模式一般会使用RTP/UDP、RTSP/TCP两种通信协议与A/V(Audio/Video)Server建立联系,将服务器的输出重定向到一个运行A/V Player程序所在客户机的目的地址。如图1所示,流式传输系统一般都要配置一套专用的服务器和播放器。

  1、实时传输协议RTP、RTCP
RTP(Real-time Transport Protocol)是在Internet上针对多媒体数据流的一种传输协议,工作于一对一或一对多的传输情况,可提供时间信息和实现流同步。RTP通常使用UDP来传送数据,也可在TCP或ATM协议之上工作。当应用程序开始一个RTP会话时,会使用到两个端口,一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,而是依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
RTCP(Real-time Transport Control Protocol)与RTP共同提供流量控制和拥塞控制服务。在RTP会话期间,参与者周期性地传送RTCP包,这些包中含有已发送数据包的数量、丢失数据包的数量等统计数据,服务器可根据这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP与RTCP的配合使用可有效地进行反馈,从而减小开销,提高传输效率,非常适合传送网上的实时数据。

2、实时流协议RTSP
实时流协议RTSP(Real-time Streaming Protocol)是由RealNetworks、Netscape共同提出的一种协议,它定义了如何使一对多应用程序有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP、RTCP之上,它使用TCP或RTP完成数据传输。与HTTP相比,RTP传送的是多媒体数据,而HTTP传送HTML。在使用RTSP时,客户机和服务器均可发出请求,也就是说RTSP可双向服务,而HTTP的请求是由客户机发出,服务器进行响应。

3、资源预订协议RSVP
音视频数据流对网络的延时比数据业务更敏感,如何在网络中传输高质量的音视频信息,除了带宽要求之外,还需其它条件。RSVP(Resource Reservation Protocol)是一种正在开发的Internet资源预订协议,它通过采取预留一部分网络资源(带宽)的措施,在一定程度上为流媒体传输提供QoS。某些试验性系统,如网络视频会议工具vic就集成了RSVP。
3GPP UMTS视频媒体编解码技术规范是ITU-T H.263 profile 0 level 10,也是PSS必须使用的视频解码器。此外,PSS还应该支持H.263 Profile 3 Level 10解码器和MPEG-4 Visual Simple Profile Level 0解码器,在实际应用中,两个视频解码器可选。最近提出的H.264标准也引起了业界的广泛兴趣,3GPP PSS R6也在积极考虑将其纳入规范。

移动流媒体播放器:
移动流媒体终端播放器都采用H264视频压缩算法进行优化加速,以适宜无线传输的低带宽编码 (15-25 kpbs) 可以传输更好质量的图像,或者用更少的带宽传输相同质量的视频。有这些技术的大厂家,如微软, REAL ,处于市场的原因,仅开发在特别视频手机上的应用,所以对于应用开发商来说,需要将播放器在各个移动终端上面做相应的移植工作。主要平台有:
Pocket PC平台
Dopod 686/696
Lenovo ET180/560
Daxian CU928/Eten P300B
Symbian平台
Nokia 7650/6600/3650/7610/Nokia6260/6630/7610/6620/3620/3660/3600/3650/N-Gage/
索爱 P802/P908
Simens sx1/Sendo x
Panasonic X700/
Samsung SGH-D710
Linux平台
Motorola A760
Smartphone平台
Dopod515/535
Moto8380/8390

三、移动流媒体的主要应用
(1)信息服务
包括财经信息、新闻和即时体育播报、天气信息等服务。用户只须通过简单的接入门户站点即可获取大量信息,也可以通过订阅的方式使用信息推送服务。信息的内容可以以流媒体的方式提供。
(2)娱乐服务
包括卡通、音频、视频以及电视节目的精彩片段下载播放和在线播放。还可以提供移动游戏、用手机看电视等服务。
(3)通信服务
包括含有流媒体内容的彩信、视频电话/会议等,使人们的沟通更加方便,更为丰富多彩。
(4)监控服务
主要包括交通监控和家庭监控。交通监控使交通部门能够实时察看高速公路和主要道路的交通状况,可查看指定道路区间的路况,并可在途中通过定位服务来检查各路段的交通情况。家庭监控可以实时监视家庭和办公室的情况。只需安装基于Web的数字视频相机,并连接到Internet上就可以通过移动终端或PC监视家庭或办公室。
(5)定位服务
可用来提供地图和向导服务,并且可以预览风景名胜、预定饭店和电影票等。未来几年,移动流媒体业务将得到很大的发展,将会随着网络和终端的不断发展而逐步实现。

四、移动流媒体的发展与限制

移动流媒体业务的开展给移动增值服务带来了新的希望,2.5G、3G以及超3G无线网络的发展也使得流媒体技术可以被用到无线终端设备上,目前中国联通公司提供CDMA 1x,用户网络带宽最多可以达到100kbit/s,这已经足够提供QCIF大小的流媒体服务;而且随着3G无线网络的应用,用户的网络带宽可以达到384kbit/s。另一方面,手机设备运算能力越来越强,存储空间越来越大,不用说SMART Phone和Pocket PC等高端手机,就是一般的中档手机,如Nokia 6610,也能实现基本的H.264的软件解码。
面向无线网络的流媒体应用对当前的编码和传输技术提出了更大的挑战,首先,相对于有线网络而言,无线网络状况更不稳定,除去网络流量所造成的传输速率的波动外,手持设备的移动速度和所在位置也会严重地影响到传输速率,因此高效的可自适应的编码技术至关重要。其次,无线信道的环境也要比有线信道恶劣的多,数据的误码率也要高许多,而高压缩的码流对传输错误非常敏感,还会造成错误向后面的图像扩散,因此无线流媒体在信源和信道编码上需要很好的容错技术。在移动流媒体业务的发展过程中,存在如下问题:
(1) 无线网络带宽窄,干扰严重
CDMA1X与GPRS分别作为当前中国联通与中国移动的主流2.5G无线网络技术,网络传输带宽较之以前有了很大的提高,但仍然十分有限。CDMA1X在理论峰值情况下下载传输速率达到144kbps,但实际情况下,稳定的传输速率通常在70kbps左右。GRPS在理论上可以达到115kbps,但实际情况下,稳定的传输速率通常在20kbps左右。并且随着使用用户的增加,网络的性能将会进一步下降。另外无线网络的干扰严重,导致网络传输的误码的可能性大大增加。
(2) 移动终端处理能力低,内存容量小
虽然目前国内市场上基于ARM9或是与此同等能力的芯片的高端手机已经越来越多,但由于手机中低端用户基数庞大而带来的巨大的市场商机,使得各个终端厂家对中低端用户尤为重视。因此目前占市场份额最多的、主流的手机仍然采用的是ARM7系列的芯片,处理能力在几十个MIPS左右。
目前移动终端的内存容量通常也比较有限。市场上主流的BREW手机预留给应用程序的动态内存通常在700KB左右;基于J2ME的手机预留给应用程序的动态分配的内存通常在64KB或128KB;基于Symbian/Linux/Windows Mobile等高端手机预留给应用程序的动态分配的内存在1-4MB左右。
(3) 终端系统平台、LCD多样化
相对于PC的平台而言,移动终端的系统平台多样化更加明显,常见的系统平台有Symbian、Linux、Windows Mobile、Palm OS以及一些私有平台。移动终端系统多样化在很长的一段时间内将会继续存在。为了提供一个统一的手机应用程序运行环境,J2ME与BREW应运而生。但不同的厂家对J2ME与BREW的支持通常都存在差异。平台的多样化加上LCD大小不一,使得实现适应多种移动终端的应用程序难度非常大。
(4) 移动终端的电池能源有限
尽管手机设备的运算能力越来越强,但是由于它是由电池供电的,因此编解码处理不能太复杂,并且最好能够根据用户设备的电池来调整流媒体的接收和处理,能源管理技术也是移动流媒体的一个研究热点。