流媒体
Posted xinruzhishui_11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流媒体相关的知识,希望对你有一定的参考价值。
流媒体简介:
流媒体采用流式传输的方式在Internet播放的媒体格式,流媒体又叫流式媒体,是边播变放的媒体。流媒体的流指的是这种媒体的传输方式,而并不是媒体本身。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。流媒体(Streaming Media)的出现极大地方便了人们的工作和生活。流媒体在远程教育、视频点播、网络电台、网络视频等方面有着广泛的应用。
流媒体技术
流媒体技术也称流式媒体技术.所谓流媒体技术就是把连续的影像和声音信息经过压缩处理后放上网站服务器,由视频服务器向用户计算机顺序或实时地传送各个压缩包,让用户一边下载一边观看、收听,而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区,在播放前预先下一段数据作为缓冲,在网路实际连线速度小于播放所耗的速度时,播放程序就会取用一小段缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。
传输问题
1、技术方面解决的问题
在网上进行流媒体传输,所传输的文件必须制作成适合流媒体传输的流媒体格式文件。用通常格式存储的多媒体文件容量十分大,若要在现有的窄带网络上传输则需要花费十分长的时间,若遇网络繁忙,还将造成传输中断。另外,通常格式的流媒体也不能按流媒体传输协议进行传输。因此,对需要进行流媒体格式传输的文件应进行预处理,将文件压缩生成流媒体格式文件。这里应注意两点:一是选用适当的压缩算法进行压缩,这样生成的文件容量较小。二是需要向文件中添加流式信息。2、传输方面需解决的问题
流媒体的传输需要合适的传输协议,在internet上的文件传输大部分都是建立在tcp协议的基础上,也有一些是以ftp传输协议的方式进行传输,但采用这些传输协议都不能实现实时方式的传输。随着流媒体技术的深入研究,比较成熟的流媒体传输一般都是采用建立在udp协议上的rtp/rtsp实时传输协议。
为何要在udp协议而不在tcp协议上进行实时数据的传输呢?这是因为udp和tcp协议在实现数据传输时的可靠性有很大的区别。tcp协议中包含了专门的数据传送校验机制,当数据接受方收到数据后,将自动向发送方发出确认信息,发送方在接收到确认信息后才继续传送数据,否则将一直处于等待状态。而udp协议则不同,udp协议本身并不能做任何校验。由此可以看出,tcp协议注重传输质量,而udp协议则注重传输速度.因此,对于对传输质量要求不是很高,而对传输速度则有很高的要求的视音频流媒体文件来说,采用udp协议则更合适.3、传输过程中需要的支持
因为internet是以包为单位进行异步传输的,因此多媒体数据在传输中要被分解成许多包,由于网络传输的不稳定性,各个包选择的路由不同,所以到达客户端的时间次序可能发生改变,甚至产生丢包的现象.为此,必须采用缓存技术来纠正由于数据到达次序发生改变而产生的混乱状况,利用缓存对到达的数据包进行正确排序,从而使视音频数据能连续正确地播放.缓存中存储的是某一段时间内的数据,数据在缓存中存放的时间是暂时的,缓存中的数据也是动态的,不断更新的.流媒体在播放时不断读取缓存中的数据进行播放,播放完后该数据便被立即清除,新的数据将存入到缓存中.因此,在播放流媒体文件时并不需占用太大的缓存空间.4、播放方面需解决的问题
流媒体播放需要浏览器的支持.通常情况下,浏览器是采用mime来识别各种不同的简单文件格式,所有的web浏览器都是基于http协议,而http协议都内建有mime.所以web浏览器能够通过http协议中内建的mime来标记web上众多的多媒体文件格式,包括各种流媒体格式.
附加:[font style=”BACKGROUND-COLOR: #f4f4f4”][/font]流式传输的过程
一般是这样的:用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的Web浏览器启动A/V Helper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。A/V Helper程序及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/V Helper程序所在客户机的目的地址,实现流式传输一般都需要专用服务器和播放器。
流式传输的基础:
1 顺序流式传输
顺序流式传输是顺序下载,在下载文件的同时用户可以观看,但是,用户的观看与服务器上的传输并不是同步进行的,用户是在一段延时后才能看到服务器上传出来的信息,或者说用户看到的总是服务器在若干时间以前传出来的信息。在这过程中,用户只能观看已下载的那部分,而不能要求跳到还未下载的部分。顺序流式传输比较适合高质量的短片段,因为它可以较好地保证节目播放的最终质量。它适合于在网站上发布的供用户点播的音视频节目。2 实时流式传输
在实时流式传输中,音视频信息可被实时观看到。在观看过程中用户可快进或后退以观看前面或后面的内容,但是在这种传输方式中,如果网络传输状况不理想,则收到的信号效果比较差。
流媒体格式
声音流、视频流、文本流、图像流、动画流
RA:实时声音
RM:实时视频或音频的实时媒体
RT:实时文本
RP:实时图像
SMIL:同步的多重数据类型综合设计文件
SWF:macromedia的real flash 和shockwave flash动画文件
RPM:html文件的插件
RAM:流媒体的元文件,是包含RA、RM、SMIL文件地址(URL地址)的文本文件
CSF:一种类似媒体容器的文件格式,可以将非常多的媒体格式包含在其中,而不仅仅限于音、视频。
传输协议
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播放器就可播放。
参考:流媒体-百度百科
以上是关于流媒体的主要内容,如果未能解决你的问题,请参考以下文章