概述
-
技术的进步,使得许多用户开始利用互联网传送音频、视频数据
-
这种音频、视频常称为多媒体信息
-
多媒体信息的两个特点如下:
- 多媒体信息的信息量很大:传输需要的码率高,因此必须采用各种信息压缩技术
- 传输多媒体数据(边传输边播放)时,对时延和时延抖动有较高的要求
-
传统模拟的多媒体信号要经过数字化,才能在互联网上传送
-
传输多媒体信号的分组,发送间隔都是恒定的,这样的分组是等时的(isochronous),等时分组进入互联网的速率也是恒定的
-
传统的互联网本身是非等时的,因为每一个分组都是独立传送,到达接收端时,先后次序可能不同,因此变成非等时的
- 如果在接收端对非等时的分组边接收边还原,那么播放时一定会出现失真
- 要解决这一问题,可以在接收端设置适当大小的缓存,当缓存种分组到达一定数量后,再以恒定速率按序播放
- 缓存实际上是一个先进先出的队列,T叫做播放时延,缓存使所有到达的分组都经受了时延
- 非等时的分组,经过缓存后再以恒定速率读出,就变成了等时的分组,很大程度上可以消除时延的抖动
- 播放时延T的选择应该折中考虑,在传送时延敏感的实时数据中,不仅传输时延不能太大,而且时延抖动也必须受到限制
- 在互联网传输实时数据有可能出现丢失,如果采用TCP协议,则重传后时延大大增加,因此实时数据的传输在运输层要采用UDP
- 容忍丢失(loss tolerant)是实时数据的一个重要特点,在传输实时数据时,可以容忍丢弃少量的分组,但是不要太晚到达的分组。在连续的音频、视频流中,少量分组丢失对播放效果影响不大
- 在发送多媒体分组时,应该加上序号和时间戳。有了序号和时间戳,接收端就知道应在什么时间开始播放缓存中收到的分组
目前互联网提供的音频、视频服务大体上可分为三种类型:
- 流式(streaming)存储:这种类型是把已压缩的音视频文件,存储在服务器上,用户通过互联网访问,实现下载播放。流失存储的特点是边下载边播放
- 流式实况:流式实况是一对多的通信,特点是音视频节目没有实现录好存放在服务器中,而是边录制边发送,接收时要求能连续播放
- 交互式:用户使用互联网和其他人进行实时交互式通信,例如互联网电话、互联网电视会议
流媒体(streaming media):就是流式音频、视频,主要特点就是边下载边播放
流式存储音视频
使用传统浏览器从服务器下载音视频文件的步骤
- 用户在浏览器上,用HTTP协议的GET命令向服务器请求下载某个音视频文件
- 服务器响应浏览器的请求,RESPONSE表示服务器的响应报文,整个过程可能时间很长
- 当浏览器完全收下这个文件后,就可以在本地进行解压播放
具有元文件的万维网服务器
对传统浏览器下载文件进行改进的第一种方法,是使用元文件
元文件,是一种非常小的文件,它描述或指明其它文件的一些重要信息,例如音视频文件的路径、大小、格式等,使用元文件下载音视频步骤如下
- 用户在浏览器上点击超链接,使用GET报文请求音视频的元文件
- 服务器把元文件装入响应报文主体,发送给浏览器,响应报文中还应指明文件类型的首部
- 浏览器收到服务器的响应,分析首部,提取元文件的URL,并发送给媒体播放器
- 媒体播放器使用URL和服务器建立TCP连接,并发送请求报文,下载音视频文件
- 服务器发送响应报文,将音视频文件发送给媒体播放器,媒体播放器存储若干秒后开始解压播放
媒体服务器
为了更好提供流式音视频服务,现在流行做法是使用两个分开的服务器,一个普通的万维网服务器和一个流媒体服务器,工作原理如下:
采用媒体服务器后,媒体播放器直接向媒体服务器请求下载音视频文件,其中前3个步骤和之前的一样,区别在后面两个步骤
- 步骤4:媒体播放器使用元文件提供的URL,接入媒体服务器,请求下载文件
- 步骤5:媒体服务器给出响应,把文件发送给媒体播放器,媒体播放器延迟后解码播放
传输音视频数据,可以使用TCP,也可以使用UDP,但是使用UDP会有以下缺点:
- 发送端按照正常播放速度发送流媒体数据帧,但是接收端的播放器很难做到始终按规定的速率播放
- 很多单位的防火墙阻止外部UDP分组的进入,因此使用UDP传输多媒体文件会被拦截
- 如果用户希望能控制媒体播放,如暂停、快进,还需要使用额外的协议,增加了成本和复杂性
因此对流式音视频的播放,都采用了TCP来传送,主要步骤如下:
- 用户使用HTTP获取服务器中的音视频文件时,服务器将文件先存储在本地的TCP发送缓存中,直到缓存被填满
- 从服务器的TCP发送缓存,通过互联网