摘 要:網(wǎng)絡(luò)課程是網(wǎng)絡(luò)教學(xué)的基本要素和重要資源。在介紹同步集成多媒體語言SMIL的基礎(chǔ)上,依據(jù)Realsystem流媒體開發(fā)平臺,研究網(wǎng)絡(luò)課程資源集成時實現(xiàn)媒體組合、規(guī)劃時間線和設(shè)置播放布局等幾個關(guān)鍵技術(shù),指出實現(xiàn)這些技術(shù)的有關(guān)問題和策略,并給出有關(guān)實例。
關(guān)鍵詞:流媒體;網(wǎng)絡(luò)課程;資源集成;SMIL
中圖分類號:TP37,TP393 文獻(xiàn)標(biāo)識碼:B 文章編號:1004373X(2008)1810304
Network Course Resource Integration and Its Key Techniques Based on Streaming Media
PAN Luyi
(Zhejiang Vocational College of Commerce,Hangzhou,310053,China)
Abstract:Network course is a basic element and an important resource of the network teaching.It introduces the Synchronized Multimedia Integration Language(SMIL).Based on the developing environment of realsystem streaming media,it researches a few key techniques in the process of network course integration,such as the medium combination,time line programming and broadcast layout setup.It points out the relevant problem and strategy to accomplish these key techniques,and gives out the related examples.
Keywords:streaming media;network course;resource integration;SMIL
1 引 言
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展和校園網(wǎng)的普及,網(wǎng)絡(luò)化教學(xué)作為一種高效新型的教學(xué)模式,越來越受到重視。網(wǎng)絡(luò)課程是網(wǎng)絡(luò)教學(xué)的基本要素和重要資源,是指通過網(wǎng)絡(luò)表現(xiàn)的某門學(xué)科的教學(xué)內(nèi)容及實施的教學(xué)活動的總和,包括按一定的教學(xué)目標(biāo)、教學(xué)策略組織起來的教學(xué)內(nèi)容和網(wǎng)絡(luò)教學(xué)支撐環(huán)境。網(wǎng)絡(luò)課程給人們提供便捷的學(xué)習(xí)機會,使學(xué)習(xí)活動更加自主化、個性化,學(xué)習(xí)者可以選擇適合自己的學(xué)習(xí)時間、地點、方式、進(jìn)度,用瀏覽器播放教學(xué)內(nèi)容,在教學(xué)形式上既可以實時學(xué)習(xí),也可以使學(xué)習(xí)者進(jìn)行非實時的自主或協(xié)同學(xué)習(xí),還可以實現(xiàn)師生之間的直接對話交流,形成一個開放和交互的遠(yuǎn)程教育環(huán)境。對于創(chuàng)新教學(xué)模式,提高教學(xué)效果,培養(yǎng)學(xué)生良好的學(xué)習(xí)習(xí)慣和學(xué)習(xí)能力等有著重要的積極意義。
網(wǎng)絡(luò)課程的開發(fā)需要相關(guān)的技術(shù)支撐,流媒體技術(shù)和理論的日趨成熟,為網(wǎng)絡(luò)課程的開發(fā)和實施提供了強有力的技術(shù)基礎(chǔ)?;诹髅襟w技術(shù)的網(wǎng)絡(luò)課程,能高效、便捷地進(jìn)行網(wǎng)上實時和遠(yuǎn)程教學(xué),并能確保音視頻播放流暢,有良好的同步效果。
基于流媒體的網(wǎng)絡(luò)課程的開發(fā)實質(zhì)上是運用網(wǎng)絡(luò)課程開發(fā)工具,把課程素材轉(zhuǎn)換為流媒體形式的文本、音頻 、視頻、動畫等,并按課程教學(xué)要求,集成為課程的流媒體課件或教學(xué)節(jié)目,再通過Web發(fā)布。目前網(wǎng)絡(luò)流媒體平臺主要有Realnetworks公司的Realsystem、微軟公司的Windows Media和蘋果公司的QuickTime。Realsystem優(yōu)良的性能使得用戶數(shù)量上處于領(lǐng)先地位,Realsystem的文件格式主要有rm(流式音視頻)、ra(流式音頻)、rp(流式圖像)、rt(流式文本)。網(wǎng)絡(luò)課程開發(fā)涉及許多技術(shù)問題,其中流媒體教學(xué)素材的集成是最關(guān)鍵的技術(shù),利用SMIL同步集成多媒體語言,可以將Internet上不同位置的媒體文件關(guān)聯(lián)到一起。本文依據(jù)Realsystem流媒體開發(fā)平臺,研究網(wǎng)絡(luò)課程開發(fā)過程中流媒體教學(xué)素材集成及其關(guān)鍵技術(shù)。
2 同步多媒體集成語言SMIL簡介
世界W3C協(xié)會(World Wide Web Consortium)于1998年6月開始推廣一種和HTML具有相同結(jié)構(gòu)的標(biāo)記語言:同步多媒體集成語言(Synchronized Multimedia Integration Language,SMIL)。這是一種簡單而有效的關(guān)聯(lián)性標(biāo)記語言,它可以將Internet上不同位置的媒體文件通過它們的URL關(guān)聯(lián)起來,形成多媒體文件。在播放時,播放器會自動從它們的存放位置進(jìn)行調(diào)用,并按文件中設(shè)置的播放順序和位置等屬性,將這些文件集成到同一窗口播放。實際上SMIL文件僅是一個關(guān)聯(lián)文件,并不包含真正的媒體內(nèi)容。SMIL支持的媒體格式有靜止圖片文件、RealPix,RealText、動畫、音頻、視頻等。目前支持SMIL文件的播放器主要有RealPlayer,QuickTime等,用戶瀏覽器端只要安裝RealPlayer或QuickTime的相應(yīng)的插件,也可以播放SMIL文件。
SMIL文件是純文本文件,其文件擴展名為“.smil”或“.smi”。整個文件以<smil>開始,</smil>結(jié)束,其中包含由<head></head>標(biāo)記定義的頭部以及由<body></body>標(biāo)記定義的正文部份。在SMIL文件的正文部分,用媒體標(biāo)記將媒體文件引入SMIL文件中。下面代碼關(guān)聯(lián)一個流服務(wù)器上的流式音頻文件sound1.rm。
<body>
<audio src=”rtsp://realserver.course.com:554/audio/sound1.rm”/>
</body>
3 流媒體素材集成的關(guān)鍵技術(shù)
在網(wǎng)絡(luò)課程中,通常需要把音頻、視頻、演示文稿、圖片等教學(xué)信息按一定的組合同時或順序播放,構(gòu)成一個情景交融的多媒體教學(xué)環(huán)境,讓學(xué)習(xí)者可以在一個動態(tài)的交互性的學(xué)習(xí)環(huán)境中學(xué)習(xí)。在網(wǎng)絡(luò)課程中,可以按照課程教學(xué)策略、教學(xué)目標(biāo),組織多媒體內(nèi)容,設(shè)置組合后的播放布局和播放方式。實現(xiàn)流媒體集成的關(guān)鍵技術(shù)主要包括關(guān)聯(lián)媒體文件、設(shè)置媒體的組合方式、規(guī)劃時間線、設(shè)置播放布局等。
(1) 關(guān)聯(lián)媒體文件。在SMIL文件的正文部分,用媒體標(biāo)記將相關(guān)媒體文件引入SMIL文件中,同時通過設(shè)置標(biāo)記屬性,描述媒體文件的文件格式和所處的位置,以及媒體文件在SMIL文件中的其他行為。常用的媒體標(biāo)記有<animation../>,<textstream../>,<img../>,<audio../>,<video../>等,分別用于關(guān)聯(lián)動畫文件、流式文本文件、圖像文件、音頻文件和視頻文件等。下面代碼關(guān)聯(lián)一個流服務(wù)器上的流式視頻文件class1.rm。
<video src=”rtsp://realserver.course.com:554/video/class1.rm”/>
(2) 媒體的組合播放及帶寬分配策略。在流媒體網(wǎng)絡(luò)課程中,有些媒體文件是緊密聯(lián)系的,如在播放演示文稿時,要同步配音,或在播放視頻時要顯示相應(yīng)的文稿和圖片等。這就要將媒體文件進(jìn)行組合播放。在SMIL中,可以用<seq>和</seq>組合標(biāo)記實現(xiàn)媒體文件的順序播放,用<par>和</par>標(biāo)記實現(xiàn)媒體文件的同步播放,同時兩種組合標(biāo)記還可以進(jìn)行嵌套組合。如下面的代碼實現(xiàn)了4個流媒體文件的組合。
<par endsync=\"last\" >
<ref src=\"graph/pic1.rp\" region=\"graphregion\" />
<seq>
<textstream src=\"text/word1.rt\" region=\"textregion\" />
<video src=\"videos/vid1.rm\" begin=\"20s\" region=\"videoregion\" />
</seq>
</par>
<video src=\"videos/vid2.rm\" region=\"videoregion\" />
在默認(rèn)情況下,同步組合的播放結(jié)束要等到其所包含的所有媒體對象播放結(jié)束之后。要改變這種情況,可以通過設(shè)置<par>標(biāo)記的end屬性規(guī)定同步組合的絕對時間,也可以通過<par>標(biāo)記的endsync屬性設(shè)置同步組合的播放結(jié)束與某一個媒體對象結(jié)合起來。endsync屬性的默認(rèn)值為“l(fā)ast”,表示當(dāng)組合中持續(xù)時間最長的那個媒體對象播放結(jié)束時,整個同步組合播放結(jié)束。當(dāng)endsync屬性為“first”時,表示當(dāng)組合中持續(xù)時間最短的那個媒體對象播放結(jié)束時,整個同步組合播放結(jié)束。如果要指定當(dāng)某個媒體對象結(jié)束時,整個同步組合播放結(jié)束,則可設(shè)置endsync屬性為“id(相應(yīng)媒體對象的id值)”。
必須注意,在媒體服務(wù)器發(fā)布每一個流媒體文件時,都會占用一定的傳輸帶寬。這個帶寬的具體數(shù)值是在創(chuàng)建媒體文件時預(yù)先設(shè)定好的,發(fā)布同步播放組合時所占用的傳輸帶寬,就是組合中所有媒體文件的傳輸帶寬的總和。為了保證同步效果以及整個多媒體文件傳輸順利和播放平滑,這個帶寬的總和不應(yīng)該超過用戶和服務(wù)器連接的最大傳輸帶寬,否則就會產(chǎn)生帶寬“瓶頸”。這種“瓶頸”通常出現(xiàn)在兩個或多個高帶寬消耗的媒體文件同步播放時。因此,在組合同步播放文件時,要盡量將高帶寬文件和低帶寬文件組合在一起。在流媒體播放的開始階段,先播放低帶寬的媒體文件,如RealText文件和壓縮程度較高的Real音頻文件,這樣在它們播放的同時,播放器可以利用多余的網(wǎng)絡(luò)帶寬預(yù)先傳送后面將要播放的高帶寬消耗的數(shù)據(jù)。這種“幕后傳輸”的播放組合方式,可以使用戶端的播放器預(yù)先存儲足夠多的數(shù)據(jù)以保證后續(xù)播放的平滑性。
(3) 規(guī)劃SMIL文件的時間線。所謂流媒體的時間線就是這個媒體文件的播放時間計劃。比如,一個流式視頻文件播放長度為3 min,這個視頻文件的時間線就是3 min。流式音頻、視頻和動畫文件都具有內(nèi)部時間線,在媒體文件建立時,生成軟件就將其內(nèi)部時間線結(jié)合到文件的結(jié)構(gòu)中去,這些文件的時間線不能再修改,除非重新改變文件的結(jié)構(gòu)。RealText和RealPix文件的時間線是通過標(biāo)記語言建立的,可以隨時修改。在組合流媒體時,一般先建立音頻、視頻和動畫文件,然后建立RealText和RealPix文件的時間線,使之與這些文件匹配。
當(dāng)多個媒體文件組合時,各個媒體文件的時間線以及它們在多媒體文件中播放的計劃又組成了整個多媒體節(jié)目的時間線。合理計劃流媒體的時間線可以有助于合理使用用戶的連接帶寬,避免播放遲滯和“再預(yù)置”現(xiàn)象的出現(xiàn)。SMIL語言通過時間標(biāo)記元素建立和改變SMIL文件的時間線。如通過begin和end屬性設(shè)置媒體播放的開始、結(jié)束時間及前后播放的間隔時間,通過clipbegin和clipend屬性可以播放連續(xù)性媒體文件內(nèi)部的一個片段,還可以通過dur屬性設(shè)置播放的持續(xù)時間等。下面代碼是一個比較合理的流媒體時間線設(shè)計的例子。
<par>
<seq>
<par> <! -- 文件組1-->
<ref src=\"graph/ image.rp\" region=\"graphregion\" />
<seq>
<textstream src=\"text/ text.rt\" region=\"textregion\" />
<video src=\"videos/video1.rm\" begin=\"20s\" region=\"videoregion\" />
</seq>
</par>
<! -- 文件組2-->
<video src=\"videos/video2.rm\"region=\"videoregion\" />
</seq>
</par>
上述代碼所對應(yīng)的時間線效果如圖1所示。
在文件組1中,首先播放的是image.rp文件和text.rt文件,由于text.rt文件的帶寬消耗很小,使image.rp文件有充足的帶寬來傳輸數(shù)據(jù)。當(dāng)video1.rm視頻文件開始播放時,image.rp文件的數(shù)據(jù)已經(jīng)傳輸結(jié)束,這時的帶寬全部可以為視頻文件video1.rm所占用。雖然文件組1和文件組2按順序播放,但最外層的
(4) 設(shè)置媒體播放的窗口布局。在流媒體課件中,除了聲音文件外,其他的媒體內(nèi)容通常需要不同的播放區(qū)域。在SMIL文件的頭部,通過<layout>和</layout>標(biāo)記設(shè)置窗口布局;在這個layout標(biāo)記群內(nèi),通過<root-layout/>標(biāo)記定義底層區(qū)域,即播放器的主窗口的大?。辉诙x了底層區(qū)域后,再通過<region/>標(biāo)記定義每一個播放區(qū)域的大小和位置。在SMIL文件的正文部分,通過定義相關(guān)標(biāo)記的region屬性,在各播放區(qū)域中放置相應(yīng)的可視媒體對象。下面的代碼中定義了二個區(qū)域分別播放視頻和流式文本。
<smil>
<head>
<layout>
<root-layout width=\"500\" height=\"100\" />
<region id=\"textregion\" top=\"0\" left=\"0\" width=\"200\" height=\"100\" />
<region id=\"videoregion\" top=\"0\" left=\"200\" width=\"300\" height=\"100\" />
</layout>
</head>
<body>
<par>
<textstream src=\"T5_1.rt\"region=\"textregion\" />
<video src=\"V5-1.rm\"region=\"videoregion\" />
<audio src=\"A5-1.rm\" />
</par>
</body>
</smil>
在復(fù)雜的流媒體播放應(yīng)用中,可能需要建立動態(tài)或重疊的播放區(qū)域,這可以通過SMIL的<region>標(biāo)記的zindex參數(shù)實現(xiàn)。zindex參數(shù)的值越大,播放區(qū)域就越處于播放窗口的前方。SMIL文件中所定義的播放區(qū)域,只要不定義其背景色,在默認(rèn)狀態(tài)下是透明的。對于最上層播放區(qū)域,如果有媒體文件在其中播放,下面各層的區(qū)域就被覆蓋。如果區(qū)域中沒有媒體文件的播放,它就處于透明狀態(tài),下層中正在播放媒體文件的區(qū)域就被顯示。如果所有區(qū)域中都沒有正在播放的內(nèi)容,所有的區(qū)域都處于透明狀態(tài),播放器窗口就顯示SMIL文件中<rootlayout>定義的底層區(qū)域,它總是位于所有播放層的最底層。下面的代碼定義了2層區(qū)域,并實現(xiàn)播放區(qū)域的動態(tài)轉(zhuǎn)換。
<smil>
<head>
<layout>
<root-layout width=\"400\" height=\"360\" />
<! – 第一層:左右排列的區(qū)域 -- >
<region id=\"left\" top=\"10\" left=\"10\" width=\"185\" height=\"340\" z-index=\"1\" />
<region id=\"right\" top=\"10\" left=\"205\" width=\"185\" height=\"340\" z-index=\"1\"/>
<! – 第二層:上下排列的區(qū)域,重疊于第一層前方 -- >
<region id=\"top\" top=\"10\" left=\"10\" width=\"380\" height=\"165\" z-index=\"2\" />
<region id=\"bottom\" top=\"185\" left=\"10\" width=\"380\" height=\"165\" z-index=\"2\"/>
</layout>
</head>
<body>
<par>
<seq>
<par> <! -- 文件組1:左右排列 -- >
<ref src=\"title.rp\" region=\"left\" fill=\"remove\" />
<textstream src=\"words.rt\" region=\"right\"
fill=\"remove\" />
</par>
<par> <! -- 文件組2:上下排列 -- >
<video src=\"film.rm\" region=\"top\" />
<textstream src=\"text.rt\" region=\"bottom \" />
</par>
</seq>
</par>
</body>
</smil>
上述代碼定義了2個顯示層,每層定義了2個區(qū)域,顯然,“top”和“bottom”區(qū)域位于“l(fā)eft”和“right”窗口的前方。盡管這些區(qū)域都是在SMIL播放的一開始就建好的,但是通過zindex,fill=“remove”以及區(qū)域默認(rèn)的透明背景色,給用戶的感覺就是播放區(qū)域是在媒體文件開始播放時動態(tài)建立的。
4 結(jié) 語
流媒體運用特殊的數(shù)據(jù)壓縮和傳輸技術(shù),可以使得聲音和視頻文件變得很小,通常只有WAV和AVI文件的3%~5%。因此,基于流媒體的網(wǎng)絡(luò)課程,能確保課程中音頻、視頻、演示文稿、圖片等資源在網(wǎng)絡(luò)上快速連續(xù)平滑的傳輸。利用SMIL同步集成多媒體語言,可以將網(wǎng)絡(luò)課程資源進(jìn)行有效的關(guān)聯(lián)組合。本文針對基于流媒體的網(wǎng)絡(luò)課程開發(fā),從技術(shù)層面詳細(xì)介紹了在網(wǎng)絡(luò)課程流式資源集成過程中,按照課程教學(xué)策略、教學(xué)目標(biāo)和多媒體教學(xué)環(huán)境要求,實現(xiàn)流媒體的組合、規(guī)劃時間線、設(shè)置播放布局等關(guān)鍵技術(shù)。只有很好地解決這些關(guān)鍵技術(shù),才能確保音頻、視頻播放流暢,音頻與視頻圖像有良好的同步,產(chǎn)生良好的視覺效果,使得網(wǎng)絡(luò)課程能高效、便捷地進(jìn)行網(wǎng)上實時和遠(yuǎn)程教學(xué),構(gòu)成一個情景交融的多媒體教學(xué)環(huán)境。
參 考 文 獻(xiàn)
[1]孫力,錢維瑩.流媒體技術(shù)與創(chuàng)作[M].北京:中國青年出版社,2002.
[2]張麗.流媒體技術(shù)大全[M].北京:中國青年出版社,2001.
[3]Synchronized Multimedia Integration Language (SMIL) 1.0 Specification.W3C Recommendation 15-June-1998 ,http://www.w3.org/TR/REC-smil/.
[4]http://www.w3.org/.
[5]陳鵬.遠(yuǎn)程教育與網(wǎng)絡(luò)課程系統(tǒng)的研究與設(shè)計\\.現(xiàn)代電子技術(shù),2006,29(24) :101102,105.
[6]馮乃光.交互技術(shù)的研究及實現(xiàn)交互式多媒體教學(xué)系統(tǒng)的設(shè)計技巧\\.2007,30(19):175177,180.
作者簡介 潘陸益 男,1964年出生,副教授,1985年畢業(yè)于浙江理工大學(xué)。研究方向為多媒體技術(shù),管理信息系統(tǒng)開發(fā)。