流媒体
来源: | 作者:pmo81888b | 发布时间: 2022-03-03 | 1499 次浏览 | 分享到:

流媒体传输的网络协议

TCP需要较多的开销,故不太适合传输实时数据;流式传输一般采用HTTP/TCP(RTCP)来传输控制信息,而用RTP/UDP(RTP)来传输实时声音数据。


实时传输协议RTP

实时传输协议RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步;RTP通常使用UDP来传送数据;当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务;通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。


实时传输控制协议RTCP

实时传输控制协议RTCP和RTP一起提供流量控制和拥塞控制服务;在RTP会话期间各参与者周期性地传送RTCP包;RTCP包中含有已发送的数据包的数量、丢失的数据包数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特适合传送网上的实时数据。


实时流协议RTSP

实时流协议RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据;RTSE在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输;HTTP与RTSP相比,HTTP传送HTML超链接文档,而RTSP传送的是多媒体数据;HTTP请求由客户机发出,服务器做出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。点对点的手机可视通话,必须在手机终端实现RTSP。


文件格式

在运用流媒体技术时,音视频文件要采用相应的格式,不同格式的文件需要用不同的播放器软件来播放。采用流媒体技术的音视频文件主要有以下几种:

①微软的ASF(advanced stream format)。这类文件的扩展名是.asf和.wmv,与它对应的播放器是微软公司的Media Player。用户可以将图形、声音和动画数据组合成一个ASF格式的文件,也可以将其他格式的视频和音频转换为ASF格式,而且用户还可以通过声卡和视频捕获卡将诸如麦克风、录像机等外设的数据保存为ASF格式。

②RealNetworks公司的ReaIMedia。它包括RealAudio、RealVideo和RealFlash三类文件,其中RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输不间断的视频数据,RealFlash则是ReaINetworks公司与Macromedia公司联合推出的一种高压缩比的动画格式,这类文件的扩展名是.rm、.ra、.rmvb,文件对应的播放器是ReaIPlayer。

③苹果公司的QuickTime。这类文件扩展名通常是.mov,它所对应的播放器是QuickTime。

此外,MPEG、AVI、DVI、SWF等都是适用于流媒体技术的文件格式


系统组成

流媒体系统包括以下5个方面的内容: 

(1)编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式。

(2)流媒体数据。 

(3)服务器:存放和控制流媒体的数据。

(4)网络:适合多媒体传输协议甚至是实时传输协议的网络。

(5)播放器:供客户端浏览流媒体文件。

这5个部分有些是服务器端需要的,有些是客户端需要的,而且不同的流媒体标准和不同公司的解决方案会在某些方面有所不同。


关键技术


流媒体技术不是一种单一的技术,它是网络技术及视/音频技术的有机结合。在网络上实现流媒体技术,需要解决流媒体的制作、发布、传输及播放等方面的问题,而这些问题则需要利用视音频技术及网络技术来解决,具体如下:

(1)流媒体制作技术方面解决的问题

在网上进行流媒体传输,所传输的文件必须制作成适合流媒体传输的流媒体格式文件。因为通常格式存储的多媒体文件容量十分大,若要在现有的窄带网络上传输则需要花费十分长的时间,若遇网络繁忙,还将造成传输中断。另外,通常格式的流媒体也不能按流媒体传输协议进行传输。因此,对需要进行流媒体格式传输的文件应进行预处理,将文件压缩生成流媒体格式文件。这里应注意两点:一是选用适当的压缩算法进行压缩,这样生成的文件容量较小。二是需要向文件中添加流式信息。

(2)流媒体传输方面需解决的问题

流媒体的传输需要合适的传输协议,在internet上的文件传输大部分都是建立在tcp协议的基础上,也有一些是以ftp传输协议的方式进行传输,但采用这些传输协议都不能实现实时方式的传输。随着流媒体技术的深入研究,实时传输协议。

为何要在udp协议而不在tcp协议上进行实时数据的传输呢?这是因为udp和tcp协议在实现数据传输时的可靠性有很大的区别。tcp协议中包含了专门的数据传送校验机制,当数据接受方收到数据后,将自动向发送方发出确认信息,发送方在接收到确认信息后才继续传送数据,否则将一直处于等待状态。而udp协议则不同,udp协议本身并不能做任何校验。由此可以看出,tcp协议注重传输质量,而udp协议则注重传输速度.因此,对于对传输质量要求不是很高,而对传输速度则有很高的要求的视音频流媒体文件来说,采用udp协议则更合适。

(3)流媒体的传输过程中需要缓存的支持


因为interent是以包为单位进行异步传输的,因此多媒体数据在传输中要被分解成许多包,由于网络传输的不稳定性,各个包选择的路由不同,所以到达客户端的时间次序可能发生改变,甚至产生丢包的现象.为此,必须采用缓存技术来纠正由于数据到达次序发生改变而产生的混乱状况,利用缓存对到达的数据包进行正确排序,从而使视音频数据能连续正确地播放.缓存 中存储的是某一段时间内的数据,数据在缓存中存放的时间是暂时的,缓存中的数据也是动态的,不断更新的.流媒体在播放时不断读取缓存中的数据进行播放,播放完后该数据便被立即清除,新的数据将存入到缓存中.因此,在播放流媒体文件时并不需占用太大的缓存空间。

(4)流媒体播放方面需解决的问题

流媒体播放需要浏览器的支持.通常情况下,浏览器是采用mime来识别各种不同的简单文件格式,所有的web浏览器都是基于http协议,而http协议都内建有mime.所以web浏览器能够通过http协议中内建的mime来标记web上众多的多媒体文件格式,包括各种流媒体格式。