基于流媒体技术的教学录像传输的设计与实现
1流媒体集成的关键技术
SMIL最主要的功能是把多个媒体对象组合在一起,形成多媒体文件组,其解决媒体播放的基本思想是依据舞台的形式展现多媒体内容,所采用的媒体集成方法是通过媒体标记进行媒体文件的关联性组合。实现流媒体集成的关键技术主要包括关联媒体文件、设置流媒体的组合方式和带宽分配策略、时间线规划、播放布局设置等[39[。
1) 关联媒体文件。
在SMIL文件的正文部分,用媒体标记将相关媒体文件引入SMIL文件中,同时通过设置标记属性,描述媒体文件的文件格式和所处的位置,以及媒体文件在SMIL文件中的其他行为。
2)设置流媒体的组合播放方式和带宽分配策略。
在SMIL中,可以用<seq>和</seq>组合标记实现媒体文件的顺序播放,用<par>和</par>组合标记实现媒体文件的同步组合播放,同时两种组合标记还可以进行嵌套组合。
需要注意的是,在媒体服务器发布每一个流媒体文件时,都会占用一定的传输带宽,这个带宽的具体数值是在创建媒体文件时预先设定好的,发布同步播放组合时所占用的传输带宽,就是组合中所有媒体文件的传输带宽的总和[40]。为了保证同步效果以及整个多媒体文件传输顺利和播放平滑,带宽的总和不应超过用户和服务器连接的最大传输带宽,否则就会产生带宽“瓶颈”。因此,在组合同步播放文件时,要尽量将高带宽文件和低带宽文件组合在一起。在流媒体播放的开始阶段,先播放低带宽的媒体文件,在它们播放的同时,播放器可以利用多余的网络带宽预先传送后面将要播放的高带宽消耗的数据。这种“幕后传输”的播放组合方式,可以使用户端的播放器预先存储足够多的数据以保证后续播放的平滑性。
3) 规划SMIL文件的时间线。
作为网络多媒体文件,SMIL文件应该具有一个播放时间的顺序表,以规定一个所关联的媒体对象或是媒体文件组合在什么时候播放,播放多长时间,这个媒体文件的播放时间计划就称为流媒体的时间线。合理计划流媒体的时间线可以有助于合理使用用户的连接带宽,避免播放迟滞和“再预置”现象的出现[41]。
4) 设置媒体播放的窗口布局。
通常在SMIL文件的头部,通过<layout>和</layout>标记设置窗口布局;在这个layout标记群内,通过<root-layout/>标记定义底层区域,即播放器的主窗口的大小;在定义了底层区域后,再通过<region/>标记定义每一个播放区域的大小和位置。在SMIL文件的正文部分,通过定义相关标记的region属性,在各播放区域中放置相应的可视媒体对象。
另外,在复杂的流媒体播放应用中,可能需要建立动态或重叠的播放区域,这可以通过SMIL的<region>标记的z-index参数实现。
2依据条件选择播放内容的方法实现
精品资源共享课程制作的目的是为了面向广大学生和教师,必然要面临网络环境不同的问题。在实际的网络教学过程中,点播实时性要求高,数据吞吐量高、点播学生数多,客户连接请求数目大且网络状况良莠不齐,要解决这个问题,一般有两种方法:一种方法是事先在服务器上存放该数据源的多个不同比特率的版本,服务器能自动探测出用户的网络连接情况,并为其选择一个最合适的版本传输给用户,即根据用户不同的带宽自动选择播放相适应的课件版本;也可以让服务器只维护一个压缩版本,但能在网络拥塞时只传输编码数据的关键部分,而使用户能维持相对稳定的播放效果。这两种方法也可以一起使用。
集成了SMIL智能流(surestream)技术的播放器可以自动检测出用户的连接速度,然后同服务器“协商”, 要求传输并播放相应版本的VOD文件。使用选择标记<switch>和</switch>,可以在SMIL文件中定义选择项,媒体播放器会根据所定义的播放条件是否满足客户端的系统设置来选择播放内容。
需要注意的是,在排列具有带宽条件的选择项时,必须按照带宽值从高到低排列。因为媒体播放器在处理<switch>组合时,是依次衡量选择项的,一旦找到符合条件的选择项,就开始播放其中的内容,而不再顾及排列在后面的选择项了。
另外,为了使精品课程满足更多的需求,我们可以为课程准备不同语言的版本,当<switch>组合中选择项的条件属性为system-language时,媒体播放器就会根据客户端系统所设置的系统语言来确定所播放的媒体对象,客户端的系统语言可以从媒体播放器的设置中找到。
3视频/音频、导航区的标题与电子讲稿四者的同步技术及实现方法
在流媒体课件点播中,最主要的是媒体间同步,媒体间同步反映了各不同媒体对象之间的同步关系,要进行数据传输,必须要把图像、语音、文字等多媒体信息转换成数据流形式,在播放连续的媒体流时,要求各数据流之间的时序关系得到精确的重现。但目前普通的流媒体解决方案,通常只考虑至多只有一个音频流、一个视频流,或者再包括一个脚本流的情况。而在网络教学中,需要同时播放更多流媒体,一个典型的基于网络的授课环境,需要在播放教师的声音(音频流)的同时,显示教师的讲义和演示流(以视频流的方式传输和播放,这里统称为讲义流)的同时,还要显示教师的影像(视频流)。为了实现媒体间同步,我们可以采用SMIL语言来实现视频/音频、导航区的标题与电子讲稿三者的同步。具体实现同步框架结构的代码如下:
<smil>
<head>
<meta name=”title” content=”flash动画制作”/>
<meta name=”author” content=”Cbb”/>
<meta name=”robots” content=”all”/>
<layout type=”text/smil-basic-layout”/>
<root-layout width=”600” height=”500” background-color=”black”/>
<region id=”text_region” left=”250” top=”0” width=”350” height=”500”/>
<region id=”syllabus_region” left=”0” top=”250” width=”250” height=”250”/>
<region id=”video_region” left=”0” top=”0” width=”250” height=”250”/>
</layout>
</head>
<body>
<par>
<text src=”rtsp://202.198.142.33:554/syllabus.rt” region=”syllabus_region”/>
<text src=”rtsp://202.198.142.33:554/text.rt” region=”text_region”/>
<video src=”rtsp://202.198.142.33:554/cengjing.rm” region=”video_region” begin=”0.000” fill=”freeze”/>
</par>
</body>
</smil>
其中头部定义了播放窗口及窗口内的区域划分,<root-layout>定义了播放器主窗口的大小,<region>定义了各区域的id、位置及尺寸。由代码可知,将播放窗口划分为三个区域,左上角是播放器视频显示区域video_region,左下角是导航标题区域 syllabus_region,右侧是文本显示区域text_region。这样在text.rt文件中通过对时间代码的设定<time begin=“起始时间”end=“结束时间”/>,即可实现右侧文本文件与左上角的视频同步。在syllabus.rt文件中,通过<a href =”command:seek(time)” target=”_player”>导航区的标题</a>指令语句,可指示RealPlayer 跳转到当前RealText文件时间线上的某一时间点开始播放,从而实现左下角的导航区标题与右侧RealText文件同步。
4流媒体技术应用在精品课程教学网站中的实现流程
制作教学网站素材——流媒体资源的流程如下:
1) 拍摄影片或是录制声音;
2) 使用计算机采集影片或声音;
3) 使用编辑软件编辑影片和声音文件(如使用会声会影、primere、GoldWave等软件);
4) 使用流媒体编码器对音频、视频进行压缩编码,转换成适合网络传输的流媒体格式文件;
5) 使用SMIL技术把纯视频流媒体文件与流式文本文件组合成一个流媒体组合文件——SMIL文件,使整个流媒体文件最终具有同步说明与强大交互功能;
6) 制作网页来链接编辑好的流媒体文件。
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了
- 职称话题| 为什么党校更认可省市级党报?是否有什么说据?还有哪些机构认可党报?
- 《农业经济》论文投稿解析,难度指数四颗星,附好发选题!
- 期刊知识:学位论文完成后是否可以拆分成期刊论文发表?
- 号外!出书的人注意啦:近期专著书号有空缺!!