流媒体技术介绍

本文介绍流媒体技术的相关知识。

1 概述

流媒体streaming media)技术,是指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音,以供用户观赏的一种技术。

在流媒体技术出现之前,人们必须要先下载多媒体内容到本地计算机,等待完整的多媒体内容下载完成之后,才能够欣赏多媒体的内容。流媒体技术的出现,使人们只需经过几秒或十几秒的启动延时即可欣赏媒体内容,而无需再等待媒体内容完全下载完成了。

流媒体技术使得数据包可以像流水一样发送,如果不使用此技术,用户就必须先下载整个媒体文件,而后才能使用多媒体数据。通过流媒体技术,可将现场或预存于服务器上的影音传送至观看者端,当影音数据传送至观看者的计算机后,即可立即通过特定的播放软件欣赏影音数据。

如果将媒体文件的传输看作是一次接水的过程,那么过去的媒体传输方式就像是对用户做了一个规定:必须等到一桶水接满才能使用它,“接满一桶水”这个过程等待的时间就要受到水流量大小和桶大小的影响了。而流媒体传输则是,打开水头龙后,稍等一小会儿,水就会源源不断地流出来了,此时即可随接随用。因此,不管水流量的大小、也不管桶的大小,用户都可以随时用上水。从这个角度来看,“流媒体”这个词是非常形象的。

2 流媒体(技术)的特征

流媒体包括声音流、视频流、文本流、图像流、动画流等,在时间上连续的媒体数据。

流媒体技术具有以下几个特征:

  1. 流媒体具有较强的实时性和交互性;
  2. 通过利用流媒体技术,用户侧的媒体启动时间大幅度缩短,用户不必像以往那样“等到所有媒体内容都下载完成后上才能浏览”,而是经过一段启动延时后,立即就能欣赏媒体内容;
  3. 与传统的媒体传输方式相比,流媒体技术对客户端(用户计算机)的缓存容量要求大大降低。Internet 是以包传输为基础进行的异步传输,因此数据会被分解成许多包进行传输,由于每个数据包可能选择不同的路由(进行传输),所以这些数据包到达客户端(用户计算机)的时间延迟就会不同,因此在客户端就需要缓存系统来消减延迟和抖动的影响,以及保证接收到数据包的传输顺序的准确性。与传统的(完整)媒体传输方式相比,在流媒体文件的播放过程中,由于不再需要把所有的文件都放入缓存系统,因此对缓存容量的要求是很低的。

3 流式传输

流媒体技术的特征就是流式传输,它使得流媒体数据可以像流水一样传输。

流式传输主要包括两种实现方式:顺序流式传输(progressive streaming)和实时流式传输(real time streaming)。需要根据具体需求决定采用哪种方式进行流式传输,下面就对这两种传输方式进行简单介绍。

3.1 顺序流式传输

在顺序流式传输模式下,用户在观看在线媒体的同时,也在下载文件。在这个过程中,用户只能观看已经下载完成的媒体内容,而不能直接观看未下载的部分。因此,用户会在一段延时后,才能看到服务器传送过来的媒体内容。由于标准的HTTP服务器就可以发送这种形式的媒体文件,因此流式传输也经常被称为HTTP流式传输。

由于顺序流式传输能够较好地保证节目的播放质量,因此比较适合在网站上发布的、可供用户点播的、高质量的视频。

顺序流式传输的文件存放在标准HTTP或FTP服务器上,易于管理,基本上与防火墙无关。

根据以上信息,能够知道“顺序流式传输”主要提现了流媒体技术的基本功能:无需下载完整的媒体文件,即可欣赏媒体内容。

3.2 实时流式传输

使用实时流式传输时,必须要保证与流媒体对应的带宽,以使媒体内容可以被用户实时观看到。用户在观看过程中,可以任意观看当前媒体内容之前或后面的内容。但是在这种传输方式中,如果网络状况不理想,会导致收到的图像质量比较差。

实时流式传输需要特定的服务器(如Windows Media Server),这些服务器可以对媒体进行更多的控制,所以系统设置、管理比标准HTTP服务器更加复杂。

实时流式传输还需要特殊的网络协议,如RTSP(realtime streaming protocol)或MMS(microsoft media server)。防火墙有时会对这些协议进行屏蔽,导致用户看不到不实时内容。

根据以上信息,能够知道“实时流式传输”更强度的是媒体传输的“实时性”,因此目前流行的视频直播行业,应属于“实时流式传输”功能的应用。

4 流媒体传输的网络协议

流媒体传输一般采用HTTP/TCP(RTCP)协议来传输控制信息,而用UDP(RTP)协议来传输实时媒体数据(TCP开销相对较大,所以不太适合传输实时数据)。

4.1 RTP(实时传输协议)

RTP(Real-time Transport Protocol,实时传输协议)通常用于实时数据的传输工作(一般使用UDP来传送数据)。

当应用程序开始一个RTP会话时,将开启两个端口:一个给RTP,一个给RTCP。RTP本身并不能为“按顺序传输数据包”提供可靠的传输送制,也不提供流量控制和拥塞控制服务,而是依赖RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分来实现的。

4.2 RTCP(实时传输控制协议)

RTCP(Real-time Transport Control Protocol,实时传输控制协议)在RTP传输实时数据时,提供流量控制和拥塞控制服务。在RTP会话期间各参与者会周期性地传送RTCP包,RTCP包中含有已发送的数据包的数量、丢失的数据包数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。

RTP和RTCP配合使用,能通过有效的反馈和最小的开销,使传输效率最佳化,因此特别适合在互联网上传输实时数据。

4.3 RTSP(实时流协议)

RTSP(Real Time Streaming Protocol,实时流协议)定义了一对多模式下如何有效地通过IP网络传送多媒体数据。

RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP(RTP)协议完成数据传输,如下图4.3-1(RTSP在网络体系结构中的位置)所示。

5 流媒体系统组成

流媒体系统包括以下五个内容:

  1. 编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式;
  2. 流媒体数据;
  3. 服务器:存放和控制流媒体的数据;
  4. 网络:适合多媒体传输协议(甚至是实时传输协议)的网络;
  5. 播放器:客户端通过播放器浏览流媒体文件。

以上五个部分有些是服务器需要的,有些是客户端需要的,而且不同的流媒体标准和不同公司的解决方案中,会在有些内容上有所不同。

6 流媒体技术涉及到的关键技术

流媒体技术不是一个单一的技术,它是网络技术与视音频技术的有机结合。

实现流媒体技术,需要解决流媒体的制作、发布、传输和播放等方面的问题,这些问题的解决需要利用到视音频技术和网络技术。下面具体讨论一下流媒体的这几个问题。

6.1 流媒体的制作

只有适合流媒体传输的流媒体格式文件才能在互联网上传输。因为一般的多媒体格式文件体积很大,因此在网络上传输时需要花费较长的时间,如果遇到网络繁忙等情况,还会造成传输中断。另外,一般格式的媒体文件也不能通过流媒体传输协议进行传输。

因此,需要先对待传输的文件进行预处理,将文件压缩成流媒体格式文件。此处主要包括两个要点:一是选用适当的压缩算法进行压缩,确保生成的文件体积较小;二是需要向文件中添加流式信息。

6.2 流媒体的传输

流媒体的传输需要合适的传输协议,在Internet上进行的文件传输大部分都建立在TCP协议的基础上,也有一些是通过FTP进行传输,但采用这些传输协议都不能满足流媒体的实时传输要求。

随着流媒体技术的深入研究,比较成熟的流媒体传输一般都是采用建立在UDP协议上的RTP/RTSP等实时传输协议。

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

用户通过Web浏览器播放流媒体时,主要的交互过程如下:

  1. 用户选择流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;
  2. Web浏览器启动A/V Helper程序,使用HTTP从Web服务器检索相关参数,然后对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型,或与A/V检索相关的服务器地址;
  3. A/V Helper程序及A/V服务器运行RTSP协议,以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能类似,RTSP提供了控制播放、快进、快倒、暂停及录制等命令的方法;
  4. A/V服务器使用RTP/UDP协议,将A/V数据传输给A/V客户程序(一般可认为客户程序等同于A/V Helper程序);
  5. 当A/V数据抵达客户端时,A/V客户程序即可播放A/V数据了。

需要说明的是,在流媒体传输过程中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户端的目的地址。实现流式传输一般都需要专用服务器和播放器。

6.3 流媒体数据在客户端的缓存

在流媒体传输和播放过程中,客户端的缓存技术能够确保视音频数据正确、连续地播放。

6.3.1 纠正数据包顺序的缓存技术

因为Interent是以包为单位进行异步传输的,因此多媒体数据在传输中要被分解成许多包,由于网络传输的不稳定性,各个包选择的路由可能不同,所以到达客户端的时间次序就可能发生改变,甚至出现丢包的现象。因此,必须采用缓存技术来纠正数据包到达次序混乱的情况,利用缓存技术对到达的数据包进行正确排序,从而使视音频数据能正确地播放。

从技术角度来讲,纠正数据包顺序的缓存技术,属于流媒体传输过程接收侧的功能,主要目的是保证视音频内容可以正确地播放。

6.3.2 播放缓冲区

流媒体技术需要在客户端的计算机上创建一个缓冲区,在播放前预先下载一段多媒体数据作为缓冲,在网络实际传输速度小于媒体播放所需的速度时,播放程序就会取用一小段缓冲区内预先存储的数据,这样就可以避免播放内容的中断,保证了视频播放品质。

在流媒体传输模式下,缓存中存储的是某一段时间内的数据,数据在缓存中存放的时间是暂时的,缓存中的数据也是动态的、不断更新的,流媒体在播放时不断读取缓存中的数据,播放完成后该数据就会被立即清除,新的数据又将存入到缓存中。因此,在播放流媒体文件时并不需要占用太大的缓存空间。

从技术角度来讲,播放缓冲区技术,属于客户端播放器的功能,主要目的是(在不太损失实时性的前提下)保证视音频内容可以连续地播放。

6.4 流媒体的播放

流媒体只能在支持对应的流媒体格式的播放器(浏览器)中正常播放。

7 流媒体服务器

流媒体服务器是流媒体应用的核心系统,主要包括流媒体的编码、转码、分发、存储等功能,是向用户提供视频服务的关键平台。

从播放模式方面来看,流媒体服务器的主要包括以下两种模式:

  • 以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看,即“点播模式”;
  • 从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端,即“直播模式”。

流媒体应用的主要性能取决于媒体服务器的性能和服务质量。因此,流媒体服务器既是流媒体应用系统的基础,也是最主要的组成部分。

8 流媒体与传统媒体

流媒体与传统媒体相比,区别如下:

  • 欣赏媒体内容的即时性:因为视音频文件(特别是视频文件)容量一般都很大,受到网络带宽的限制,下载一个视音频文件可能需要几分钟甚至几小时,因此导致传输媒体的欣赏时延很大;而通过利用流媒体技术,多媒体文件一边被下载一边被播放,用户可以即时地欣赏到多媒体内容了(即点即看)。此外,目前流行的视频直播相关行业,也是流媒体技术非常重要的应用场景。
  • 对客户端的存储容量要求:传统媒体需要下载完整的媒体文件,而媒体文件的容量一般都很大,所以需要占用客户端较大的存储空间;而通过利用流媒体技术,不需要占用客户端太大的缓存容量,也可以欣赏到媒体内容了。

9 流媒体技术的应用前景

互联网的迅猛发展和普及,为流媒体业务的发展提供了强大的市场动力,流媒体行业正在蓬勃发展。流媒体技术(及流媒体直播技术)广泛用于多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、实时视频会议等互联网信息服务的方方面面。不难看出,在未来,流媒体技术的应用将会为网络信息交流带来革命性的变化,也将对人们的工作和生活产生深远的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liitdar

赠人玫瑰,手有余香,君与吾共勉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值