3.2流媒体的媒体间同步
网络的带宽是完成流媒体传输的物质基础,在传输声音、图像、视频等多媒体信息流时,即使这些媒体流予以压缩,所需的带宽仍然比文字文件大,但并不是有足够的带宽就可以完全解决流媒体传输问题。一般而言,所需带宽的多少是与应用密切相关的,从应用角度来看,只要用户数不断增加、信息服务量不断增加,带宽有多少都是不够的。同步是媒体流的基本控制方法。流媒体是时间属性的表现,而HTTP协议不能提供时间的可靠性,因此产生了RTSP(Real-Time Streaming Protocol)协议④。
RTSP是应用层协议,目的是为流媒体实现多点传送和以点播方式单一传送提供健壮的协议。RTSP利用流技术把数据分成许多包,包的大小由客户端和服务端的实际带宽决定,当客户端接收到足够的数据包时,用户不需下载整个媒体文件就可以开始播放流媒体。因为播放器在播放一个包的同时,解压另一个包并下载第三个包。流媒体数据可以是输入的实况信息,也可以是存储的视、音频片段。通过RTSP协议,服务器端可以跟踪流媒体传输的时间、地址和方式。RTSP增加了对流媒体的控制请求,能恢复来自媒体服务器的流媒体。
媒体之间通信的同步有三种基本方法:时间戳法是、同步标记法及多级复用法。RTSP中的同步支持采用了时间戳法。时间戳法是在每个媒体的数据流单元中加进统一的时间戳,或时间码,具有相同时间戳的信息单元将同时予以表现。在发送时,将各个媒体都按时间顺序分成单元,在同一个时间轴上,给每个单元都打上一个时间戳,处于同一时标的各个媒体单元具有相同的时间戳。在各个媒体到达终端后,让具有相同时间戳的媒体单元同时进行表现,这样就得到了媒体之间同步的效果⑤。
时间戳法不需要附加同步信道,有绝对时间戳法和相对时间戳法两种,相对时间戳同步技术更为灵活。所谓相对时间戳,是指在多种媒体中选取一种为主媒体,而其它媒体则定为从属媒体,在主媒体的各个单元上打上时间戳,而依照与主媒体的单元在同一时间上的表现,在从属媒体相对应的单元上打上相同的时间戳,从属媒体各单元上的时间戳是相对于主媒体单元的时间戳而言的。例如,在图2中我们可以选择视频为主媒体,音频段1与视频段1的时间戳是相同的,音频段2、音频段3与视频段2的时间戳是相同的,经过分组交换,使到达客户端的具有相同时间戳的媒体单元同时进行表现,这样就很好地实现了不同媒体之间的同步。
3.3流媒体的用户层同步
用户层同步或交互同步,是最上层的同步,要求能反映和满足用户的交互性,轻易为用户理解接受。用户层同步是交互性参与的同步,用户可以控制和使用信息,如反复调用感爱好的内容、快速擦过不感爱好的部分。例如,用户在借助流媒体学习外语的过程中,可以反复收听难以理解的听力内容。
虽然RTSP协议支持类似录像机的功能:播放、快进、暂停、停止,但流媒体的交互性同步能力主要体现在数据流编码过程中对交互性能的考虑。
四、结束语
未来的流媒体将能够通过互联网传送高质量的音频及视频节目,流媒体的动态性、交互性、实时性将使互联网变得更加个性化,因而,为了使流媒体的应用更加普及,还需要对流媒体的要害技术进行深入的研究,使得流媒体能在娱乐行业以外的其他领域展示出广泛的应用前景。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05