标题：流媒体
流媒体的定义
流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。 流媒体文件格式是支持采用流式传输及播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包，由服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中，用户不必像非流式播放那样等到整个文件全部下载完毕后才能看到当中的内容，而是只需要经过几秒钟或几十秒的启动延时即可在用户计算机上利用相应的播放器对压缩的视频或音频等流式媒体文件进行播放，剩余的部分将继续进行下载，直至播放完毕。
这个过程的一系列相关的包称为“流”。流媒体实际指的是一种新的媒体传送方式，而非一种新的媒体。流媒体技术全面应用后，人们在网上聊天可直接语音输入；如果想彼此看见对方的容貌、表情，只要双方各有一个摄像头就可以了；在网上看到感兴趣的商品，点击以后，讲解员和商品的影像就会跳出来；更有真实感的影像新闻也会出现。 
流媒体技术发端于美国。在美国目前流媒体的应用已很普遍，比如惠普公司的产品发布和销售人员培训都用网络视频进行。
流式传输方式则是将整个A/V及3D等多媒体文件经过特殊的压缩方式分成一个个压缩包，由视频服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中，用户不必像采用下载方式那样等到整个文件全部下载完毕，而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备(硬件或软件)对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。
流媒体的技术
流式传输的基础在网络上传输音/视频等多媒体信息，目前主要有下载和流式传输两种方案。A/V文件一般都较大，所以需要的存储容量也较大；同时由于网络带宽的限制，下载常常要花数分钟甚至数小时，所以这种处理方法延迟也很大。流式传输时，声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续  流媒体技术、实时传送，用户不必等到整个文件全部下载完毕，而只需经过几秒或十数秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时，文件的剩余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短，而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点。 
流媒体指在Internet/Intranet中使用流式传输技术的连续时基媒体，如：音频、视频或多媒体文件。流式媒体在播放前并不下载整个文件，只将开始部分内容存入内存，流式媒体的数据流随时传送随时播放，只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输。 
流式传输定义很广泛，现在主要指通过网络传送媒体（如视频、音频）的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法：实时流式传输（Real time streaming）和顺序流式传输（progressive streaming）。一般说来，如视频为实时广播，或使用流式传输媒体服务器，或应用如RTSP的实时协议，即为实时流式传输。如使用HTTP服务器，文件即通过顺序流发送。采用哪种传输方法依赖你的需求。当然，流式文件也支持在播放前完全下载到硬盘。
顺序流式传输顺序流式传输是顺序下载，在下载文件的同时用户可观看在线媒体，在给定时刻，用户只能观看已下载的那部分，而不能跳到还未下载的前头部分，顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件，也不需要其他特殊协议，它  电视流媒体经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段，如片头、片尾和广告，由于该文件在播放前观看的部分是无损下载的，这种方法保证电影播放的最终质量。这意味着用户在观看前，必须经历延迟，对较慢的连接尤其如此。对通过调制解调器发布短片段，顺序流式传输显得很实用，它允许用比调制解调器更高的数据速率创建视频片段。尽管有延迟，毕竟可让你发布较高质量的视频片段。顺序流式文件是放在标准HTTP或 FTP服务器上，易于管理，基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频，如：讲座、演说与演示。它也不支持现场广播，严格说来，它是一种点播技术。
实时流式传输实时流式传输指保证媒体信号带宽与网络连接配匹，使媒体可被实时观看到。实时流与HTTP流式传输不同，他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送，特别适合现场事件，也支持随机访问，用户可快进或后退以观看前面或后面的内容。理论上，实时流一经播放就可不停止，但实际上，可能发生周期暂停。实时流式传输必须配匹连接带宽，这意味着在以调制解调器速度连接时图象质量较差。而且，由于出错丢失的信息被忽略掉，网络拥挤或出现问题时，视频质量很差。如欲保证视频质量，顺序流式传输也许更好。实时流式传输需要特定服务器，如：QuickTime Streaming Server、RealServer与Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制，因而系统设置、管理比标准HTTP服务器更复杂。实时流式传输还需要特殊网络协议，如：RTSP (Realtime Streaming Protocol)或MMS (Microsoft Media Server)。这些协议在有防火墙时有时会出现问题，导致用户不能看到一些地点的实时内容。
流媒体所涉及的软硬件产品1、编码器：它由一台普通计算机、一块microvision 高清视频采集卡和流媒体编码软件组成。Microvision流媒体采集卡负责将音视频信息源输入计算机，供编码软件处理;编码软件负责将流媒体 采集卡传送过来的数字音视频信号压缩成流媒体格式。如果做直播，它还负责实时地将压缩好的流媒体信号上传给流媒体服务器
  2、服务器：由流媒体软件系统的服务器部分和一台硬件服务器组成。这部分负责管理、存储、分发编码器传上来的流媒体节目。 
3、终端播放器，也叫解码器: 这部分由流媒体系统的播放软件和一台普通PC组成，用它来播放用户想要收看的流媒体服务器上的视频节目。
流媒体技术原理流式传输的实现需要缓存。因为Internet以包传输为基础进行断续的异步传输，对一个实时A/V源或存储的A/V文件，在传输中它们要被分解为许多包，由于网络是动态变化的，各个包选择的路由可能不尽相同，故到达客户端的时间延迟也就不等，甚至先发的数据包还有可能后到。为此，使用缓存系统来弥补延迟和抖动的影响，并保证数据包的顺序正确，从而使媒体数据能连续输出，而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大，因为高速缓存使用环形链表结构来存储数据：通过丢弃已经播放的内容，流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。——流式传输的实现需要合适的传输协议。由于TCP需要较多的开销，故不太适合传输实时数据。在流式传输的实现方案中，一般采用HTTP/TCP来传输控制信息，而用RTP/UDP来传输实时声音数据。流式传输的过程一般是这样的：用户选择某一流媒体服务后，Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息，以便把需要传输的实时数据从原始信息中检  流媒体制作索出来；然后客户机上的Web浏览器启动A/VHelper程序，使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。 
A/VHelper程序及A/V服务器运行实时流控制协议（RTSP），以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能相似，RTSP提供了操纵播放、快进、快倒、暂停及录制等命令的方法。A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序（一般可认为客户程序等同于Helper程序），一旦A/V数据抵达客户端，A/V客户程序即可播放输出。 
需要说明的是，在流式传输中，使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系，是为了能够把服务器的输出重定向到一个不同于运行A/VHelper程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器，其基本原理如图所示。
智能流技术（SureStream）今天，28.8Kbps调制解调器是Internet连接的基本速率，cable modem、 ADSL、DSS、ISDN等发展快，内容提供商不得不要么限制发布媒体质量，要么限制连接人数。根据RealNetwork站点统计，对28.8Kbps调制解调器，实际流量为10bps到26Kbps，呈钟形分布，高峰在20Kbps。这意味着若内容提供商选择20Kbps固定速率，将有大量用户得不到好质量信号，并可能停止媒体流而引起客户端再次缓冲，直到接收足够数据。一种解决方法是服务器减少发送给客户端的数据而阻止再缓冲，在RealSystem 5.0中，这种方法称为“视频流瘦化”。这种方法的限制是RealVideo文件为一种数据速率设计，结果可通过抽取内部帧扩展到更低速率，导致质量较低。离原始数据速率越远，质量越差。另一种解决方法是根据不同连接速率创建多个文件，根据用户连接，服务器发送相应文件，这种方法带来制作和管理上的困难，而且，用户连接是动态变化的，服务器也无法实时协调。 智能流技术通过两种途径克服带宽协调和流瘦化。首先，确立一个编码框架，允许不同速率的多个流同时编码，合并到同一个文件中；第二，采用一种复杂客户/服务器机制探测带宽变化。 
针对软件、设备和数据传输速度上的差别，用户以不同带宽浏览音视频内容。为满足客户要求，Progressive networks公司编码、记录不同速率下媒体数据，并保存在单一文件中，此文件称为智能流文件，即创建可扩展流式文件。当客户端发出请求，它将其带宽容量传给服务器，媒体服务器根据客户带宽将智能流文件相应部分传送给用户。以此方式，用户可看到最可能的优质传输，制作人员只需要压缩一次，管理员也只需要维护单一文件，而媒体服务器根据所得带宽自动切换。智能流通过描述I现实世界Internet上变化的带宽特点来发送高质量媒体并保证可靠性，并对混合连接环境的内容授权提供了解决方法。流媒体实现方式如下： * 对所有连接速率环境创建一个文件 * 在混合环境下以不同速率传送媒体 * 根据网络变化，无缝切换到其它速率 * 关键帧优先，音频比部分帧数据重要 * 向后兼容老版本RealPlayer
智能流在RealSystem G2中是对所谓自适应流管理(ASM)API的实现，ASM描述流式数据的类型，辅助智能决策，确定发送那种类型数据包。文件格式和广播插件定义了ASM规则。用最简单的形式分配预定义属性和平均带宽给数据包组。对高级形式，ASM规则允许插件根据网络条件变化改变数据包发送。每个ASM规则可有一定义条件的演示式，如演示式定义客户带宽是5,000到15,000Kbps，包损失小于2.5%。如此条件描述了客户当前网络连接，客户就订阅此规则。定义在规则中的属性有助于RealServer有效传送数据包，如网络条件变化，客户就订阅一个不同规则。
常用流媒体格式声音流、视频流、文本流、图像流、动画流 
RA：实时声音 
RM：实时视频或音频的实时媒体
RT：实时文本 
RP：实时图像
SMIL：同步的多重数据类型综合设计文件 
SWF：micromedia的real flash 和shockwave flash动画文件 
RPM：HTML文件的插件 
RAM：流媒体的元文件，是包含RA、RM、SMIL文件地址（URL地址）的文本文件 
CSF：一种类似媒体容器的文件格式，可以将非常多的媒体格式包含在其中，而不仅仅限于音、视频。
它可以把ppt和教师讲课的视频完美结合， 很多大学和大型企业使用这套软件进行教学录像和远程教育 
1、realnetwork公司：三种 
2、apple公司：quicktime\mov
3、microsoft公司
（1）asf\wmv\wma
（2）avi
（3）mpeg\mpg\dat
4、micromedia公司 
（1）flash的swf格式 
（2）metastream的mts格式 
（3）aam多媒体教学课件格式，可将authorware生成的文件压缩为aam和aas流式文件播放
流媒体的传输协议1、RSVP：资源预留协议
2、RTP：实时传输协议
3、RTCP：实时传输控制协议
4、MMS：微软流媒体服务协议 
5、RTSP：实时流传输协议
6、MIME：多目因特网电子邮件扩展协议
7、RTMP(RTMPE/RTMPS/RTMPT)：Adobe实时消息协议簇
8、RTMFP：Adobe实施消息流协议（P2P协议）
流媒体播放方式
单播在客户端与媒体服务器之间需要建立一个单独的数据通道，从一台服务器送出的每个数据包只能传送给一个客户机，这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询，而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担，响应需要很长时间，甚至停止播放；管理人员也被迫购买硬件和带宽来保证一定的服务质量。
组播IP组播技术构建一种具有组播能力的网络，允许路由器一次将数据包复制到多个通道上。采用组播方式，单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包，而不是多个；所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机，减少网络上传输的信息包的总量。网络利用效率大大提高，成本大为下降。
点播与广播点播连接是客户端与服务器之间的主动的连接。在点播连接中，用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制，但这种方式由于每个客户端各自连接服务器，却会迅速用完网络带宽。
广播指的是用户被动接收流。在广播过程中，客户端接收流，但不能控制流。例如，用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。 使用单播发送时，需要将数据包复制多个拷贝，以多个点对点的方式分别发送到需要它的那些用户，而使用广播方式发送，数据包的单独一个拷贝将发送给网络上的所有用户，而不管用户是否需要，上述两种传输方式会非常浪费网络带宽。组播吸收了上述两种发送方式的长处，克服了上述两种发送方式的弱点，将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上，也不会将数据包发送给不需要它的那些客户，保证了网络上多媒体应用占用网络的最小带宽。
流媒体技术应用
互联网的迅猛发展和普及为流媒体业务发展提供了强大市场动力，流媒体业务正变得日益流行。 流媒体技术广泛用于多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、 实时视频会议等互联网信息服务的方方面面。流媒体技术的应用将为网络信息交流带来革命性的变化，对人们的工作和生活将产生深远的影响。  流媒体技术一个完整的流媒体解决方案应是相关软硬件的完美集成，它大致包括下面几个方面的内容： 内容采集、 视音频捕获和压缩编码、内容编辑、内容存储和播放、应用服务器内容管理发布及用户管理等。 
流媒体技术和声音信息经过压缩处理后放上网站服务器，让用户一边下载一边观看、收听，而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区，在播放前预先下一段数据作为缓冲，在网路实际连线速度小于播放所耗的速度时，播放程序就会取用一小段缓冲区内的数据，这样可以避免播放的中断，也使得播放品质得以保证。
传输流程
在流式传输的实现方案中，一般采用HTTP/TCP来传输控制信息，而用RTP/UDP来传输实时声音数据。具体的传输流程如下：
(1)Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息，以便把需要传输的实时数据从原始信息中检索出来。
(2)用HTTP从Web服务器检索相关数据，由A/V播放器进行初始化。
(3)从Web服务器检索出来的相关服务器的地址定位A/V服务器。
(4)A/V播放器与A/V服务器之间交换A/V传输所需要的实时控制协议。
(5)一旦A/V数据抵达客户端，A/V播放器就可播放。
技术方式
目前主流的流媒体技术有三种，分别是RealNetworks公司的RealMedia、Microsoft公司的WindowsMediaTechnology和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议。
1.Apple公司的QuickTime 
QuickTime是一个非常老牌的媒体技术集成，是数字媒体领域事实上的工业标准。之所以说集成这个词是因为QuickTime实际上是一个开放式的架构，包含了各种各样的流式或者非流式的  互动流媒体业务平台媒体技术。QuickTime是最早的视频工业标准，1999年发布的QuickTime4.0版本开始支持真正的流式播放。由于QuickTime本身也存在着平台的便利(MacOS)，因此也拥有不少的用户。QuickTime在视频压缩上采用的是SorensonVideo技术，音频部分则采用QDesignMusic技术。QuickTime最大的特点是其本身所具有的包容性，使得它是一个完整的多媒体平台，因此基于QuickTime可以使用多种媒体技术来共同制作媒体内容。同时，它在交互性方面是三者之中最好的。例如，在一个QuickTime文件中可同时包含midi、动画gif、flash和smil等格式的文件，配合QuickTime的WiredSprites互动格式，可设计出各种互动界面和动画。QuickTime流媒体技术实现基础是需要3个软件的支持，QuickTime播放器、QuickTime编辑制作、QuickTimeStreaming服务器。 
2.RealNetworks公司的RealMedia 
RealMedia发展的时间比较长，因此具有很多先进的设计，例如，ScalableVideoTechnology可伸缩视频技术可以根据用户电脑速度和连接质量而自动调整媒体的播放质素。Two—passE  互动流媒体业务平台ncoding两次编码技术可通过对媒体内容进行预扫描，再根据扫描的结果来编码从而提高编码质量。特别是SureStream自适应流技术，可通过一个编码流提供自动适合不同带宽用户的流播放。RealMedia音频部分采用的是RealAudio，该编码在低带宽环境下的传输性能非常突出。RealMedia通过基于smil并结合自己的RealPix和RealText技术来达到一定的交互能力和媒体控制能力。Real流媒体技术需要3个软件的支持，RealPlayer播放器、RealProducer编辑制作、RealServer服务器。 
3.Microsoft公司的WindowsMedia
WindowsMedia是三家之中最后进入这个市场的，但凭借其操作系统的便利很快便取得了较大的市场份额。WindowsMediaVideo采用的是mpeg-4视频压缩技术，音频方面采用的是WindowsMediaAudio技术。WindowsMedia的关键核心是MMS协议和ASF数据格式，MMS用于网络传输控制，ASF则用于媒体内容和编码方案的打包。目前WindowsMedia在交互能力方面是三者之中最弱的，自己的ASF格式交互能力不强，除了通过IE支持smil之外就没有什么其他的交互能力了。WindowsMedia流媒体技术的实现需要3个软件的支持，WindowsMedia播放器、WindowsMedia工具和WindowsMedia服务器。总的来说，如果使用Windows服务器平台，WindowsMedia的费用最少。虽然在现阶段其功能并不是最好，用户也不是最多。
存在问题 
  互动流媒体业务平台流媒体技术不是一种单一的技术，它是网络技术及视/音频技术的有机结合。在网络上实现流媒体技术，需要解决流媒体的制作、发布、传输及播放等方面的问题，而这些问题则需要利用视音频技术及网络技术来解决，具体如下：
（1）流媒体制作技术方面解决的问题
在网上进行流媒体传输，所传输的文件必须制作成适合流媒体传输的流媒体格式文件。因这通常格式存储的多媒体文件容量十分大，若要在现有的窄带网络上传输则需要花费十分长的时间，若遇网络繁忙，还将造成传输中断。另外，通常格式的流媒体也不能按流媒体传输协议进行传输。因此，对需要进行流媒体格式传输的文件应进行预处理，将文件压缩生成流媒体格式文件。这里应注意两点：一是选用适当的压缩算法进行压缩，这样生成的文件容量较小。二是需要向文件中添加流式信息。
（2）流媒体传输方面需解决的问题
流媒体的传输需要合适的传输协议，目前在internet上的文件传输大部分都是建立在tcp协议的基础上，也有一些是以ftp传输协议的方式进行传输，但采用这些传输协议都不能实现实时方式的传输。随着流媒体技术的深入研究，目前比较成熟的流媒体传输一般都是采用建立在udp协议上的rtp/rtsp实时传输协议。
为何要在udp协议而不在tcp协议上进行实时数据的传输呢？这是因为udp和tcp协议在实现数据传输时的可靠性有很大的区别。tcp协议中包含了专门的数据传送校验机制，当数据接受方收到数据后，将自动向发送方发出确认信息，发送方在接收到确认信息后才继续传送数据，否则将一直处于等待状态。而udp协议则不同，udp协议本身并不能做任何校验。由此可以看出，tcp协议注重传输质量，而udp协议则注重传输速度．因此，对于对传输质量要求不是很高，而对传输速度则有很高的要求的视音频流媒体文件来说，采用udp协议则更合适．
（3）流媒体的传输过程中需要缓存的支持 
因为interent是以包为单位进行异步传输的，因此多媒体数据在传输中要被分解成许多包，由于网络传输的不稳定性，各个包选择的路由不同，所以到达客户端的时间次序可能发生改变，甚  流媒体电视至产生丢包的现象．为此，必须采用缓存技术来纠正由于数据到达次序发生改变而产生的混乱状况，利用缓存对到达的数据包进行正确排序，从而使视音频数据能连续正确地播放．缓存　中存储的是某一段时间内的数据，数据在缓存中存放的时间是暂时的，缓存中的数据也是动态的，不断更新的．流媒体在播放时不断读取缓存中的数据进行播放，播放完后该数据便被立即清除，新的数据将存入到缓存中．因此，在播放流媒体文件时并不需占用太大的缓存空间． 
（4）流媒体播放方面需解决的问题
流媒体播放需要浏览器的支持．通常情况下，浏览器是采用mime来识别各种不同的简单文件格式，所有的web浏览器都是基于http协议，而http协议都内建有mime．所以web浏览器能够通过http协议中内建的mime来标记web上众多的多媒体文件格式，包括各种流媒体格式．