摘要精品課程網站教學錄像播放不流暢制約了精品課程的網上推廣,Adobe公司推出的Flash Media Server平臺,采用Flash流媒體技術,實現精品課程教學錄像在線流暢播放。
中圖分類號:TP31文獻標識碼:A
精品課程建設是高等學校教學質量與教學改革工程的重要組成部分,精品課程可以劃分為校級、省級和國家級精品課程。精品課程鼓勵將網絡課件、授課錄像等上網開放,實現優質教學資源共享,帶動其他課程的建設。
1 精品課程網站教學錄像播放存在的問題
《國家精品課程建設工作實施辦法》規定,為評價主講教師個人的授課效果,還需在網上提供不少于45分鐘的現場教學錄像。鼓勵將課件或全程授課錄像上網參評。精品課程教學錄像,連同課程其他教學資源一起存儲在本校服務器上,對外實現共享。因此,教學錄像質量成為國家精品課程評審的重要指標之一。
目前多數高等院校網站對外公布的校級和省級精品課程的教學錄像,有的需要下載專門的指定播放插件才能播放,有的需要緩沖長時間等待播放,有的就直接提供一個下載的視頻文件,需要下載到本地才能播放。這樣不能直接在線播放的教學錄像,學習者無法第一時間觀看,直接導致學習的連貫性得到破壞,而國家精品課程評審專家也無法評價主講教師個人的授課效果,評審過程中斷,也實現不了資源共享的目的。
Adobe公司發布的 Flash Media Server(簡稱FMS)為教學錄像無需下載其他插件而實現在線流暢播放提供了最佳的解決方案。
2 FMS技術概述
FMS服務器是用于用戶之間相互通訊的新平臺,它集成了Flash多媒體交互的特性,又添加了實時音頻、視頻和數據流等新特色,使用該平臺,你可以通過網絡存儲錄制下來的音頻、視頻,也可以共享數據對象,并且可以將這些音頻、視頻和共享數據對象傳遞給多個客戶端,實現實時同步共享。該平臺集成了通訊功能和應用程序功能,它通過Flash Player(Flash Player 6或更高)在客戶端提供共享音頻、視頻和數據流,為用戶帶來了更為豐富的體驗。
Flash Player客戶端通過RTMP(Real-Time Messaging ProLocol)協議與FMS服務器建立連接,RTMP協議是專門為高效傳輸視頻、音頻和數據而設計的TCP/IP協議,嵌入Flash Player的網頁通過HTTP(Hyper Text Transfer Protocol)協議與WEB服務器建立連接,形成穩定的數據流,目前全球98%的計算機都能運行Flash Player,從而實現用戶打開網頁無需考慮播放環境即可在線流暢播放教學錄像。FMS在用戶終端沒有緩存,有效保護了內容版權。
服務器與客戶端通過ActionScript腳本實現相互通信,通過ActionScript腳本,服務器端實現視頻、音頻流以及服務器其他參數的控制,客戶端實現視頻、音頻的采集與傳輸。
3 ActionScript3.0常用類
ActionScript是針對Flash Player運行時環境的編程語言,它在Flash內容和應用程序中實現了交互性、數據處理以及其它許多功能。
(1)NetConnection類。管理Flash Player和服務器之間的雙向連接。NetConnection.call()方法調用服務器上的一個命令或方法;NetConnection.close()方法關閉與服務器的通訊;NetConnection.connect()方法連接到Flash Media Server上的一個應用程序。
(2)NetStream類。經由一個由NetConnection對象構造的可用連接在Flash Player和FMS之間打開一條一路(one-way)流連接。NetStream.close()方法停止發布或播放流上所有的數據,并使這個流對另一個用戶可用;NetStream.play()發放播放流。
(3)Video類,用來處理視頻。使用Video類可以控制基本的視頻文件功能比如編碼、濾鏡等。通過使用Video類的屬性和方法,可以在程序中直接顯示實時的視頻流,而不用把視頻文件編譯到Flash Player視頻文件中。Video.attachNetStream()方法指定在舞臺上的Video對象的邊界內顯示的視頻流;Video.attachCamera()指定在應用程序窗口中Video對象的邊界內顯示來自攝像頭的視頻流。
4 技術實施過程
4.1 服務器端設置
創建應用程序。定位FMS服務器(服務器地址如10.1.4.249)上安裝目錄, 即Adobe\\Flash Media Server 3\\applications目錄下,創建一個jpk子目錄,作為FMS應用程序的文件名,在jpk目錄下創建streams\\_definst_目錄,作為存放教學錄像的位置,如存放CVideo.flv。教學錄像文件需要是流媒體支持格式,如Flash Video (FLV)視頻格式,MPEG-3 (MP3)音頻格式和MPEG-4 (MP4)視頻格式。其他格式的教學錄像可通過Adobe Flash CS3 Video Encoder進行轉換。
開啟FMS服務。通過程序列表中的Start Adobe Flash Media Server和Start Flash Media Administration Server開啟服務,也可通過安裝目錄下tools的StartServerService.bat開啟服務。
4.2 客戶端設置
Flash Player充當FMS的客戶端播放環境,可以創建video對象播放教學錄像,也可以使用FLVPlayback組件播放教學錄像。客戶端使用Flash CS3和ActionScript3.0創建swf文件。
(1)使用創建video對象播放教學錄像。
啟動Flash CS3,保存源文件為Play.fla,添加一個Button組件到【庫】中,這樣可以用組件的類名來添加它們到舞臺上。文檔屬性中文檔類輸入Play。
新建Flash ActionScript文件,命名Play.as,作為Play.fla的文檔類,保存和Play.fla同目錄下。Play.as腳本如下:
package {
import fl.controls.Button;
import flash.display.Sprite;
import flash.net.*;
import flash.events.*;
import flash.media.Video;
public class MinPlay extends Sprite {
private var nc:NetConnection;
private var ns:NetStream;
private var rtmpNow:String;
private var msg:Boolean;
private var vid1:Video;
private var playBtn:Button;
private var stopBtn:Button;
function MinPlay() {
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,checkConnect);
rtmpNow = \"rtmp://10.1.4.249/jpk\";
nc.connect(rtmpNow);
addVideo();addBtn();
playBtn.addEventListener(MouseEvent.CLICK,startPlay);
stopBtn.addEventListener(MouseEvent.CLICK,stopPlay);
}
private function addVideo():void {
vid1= new Video(400,300);
addChild(vid1);
}
private function addBtn():void {
playBtn = new Button();
playBtn.label = \"播放\";addChild(playBtn);
stopBtn = new Button();
stopBtn.label = \"停止\";
addChild(stopBtn);
}
private function checkConnect(e:NetStatusEvent):void {
msg= (e.info.code==\"NetConnection.Connect.Success\");
if (msg) {
ns = new NetStream(nc);
}
}
private function startPlay(e:Event):void {
if (ns) {
vid1.attachNetStream(ns);
ns.play(\"CVideo\");
}
}
private function stopPlay(e:Event):void {
ns.play(1);ns.close();
}
}
}
(2)使用FLVPlayback組件播放教學錄像。
FLVPlayback組件提供預先設計的外觀集合,具備了完整的控制視頻播放的功能。定位Flash8的安裝目錄,即Macromedia\\Flash 8\\Samples and Tutorials\\Samples\\Components\\FLVPlayback,復制main.asc文件到服務器的應用程序jpk目錄下。
啟動Adobe Flash CS3,保存源文件為Play.fla,添加一個FLVPlayback組件到【庫】中,這樣可以用組件的類名來添加它們到舞臺上。文檔屬性中文檔類輸入Play。復制SkinUnderPlayStopSeekCaptionVol.swf到Play.fla同目錄下。
新建Flash ActionScript文件,命名Play.as,作為Play.fla的文檔類,保存和Play.fla同目錄下。Play.as腳本如下:
package {
import fl.video.*
import flash.display.*;
import flash.net.*;
import flash.events.*;
public class Play extends Sprite {
private var nc:NetConnection;
private var vid1:FLVPlayback;
private var msg:Boolean;
function Play() {
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,checkConnect);
nc.connect(\"rtmp://10.1.4.249/jpk\");
addVideo();
}
private function addVideo():void {
vid1= new FLVPlayback();
vid1.skin = \"SkinUnderPlayStopSeekCaptionVol.swf\";
addChild(vid1);
}
private function checkConnect(e:NetStatusEvent):void {(下轉第116頁)(上接第99頁)
msg = (e.info.code==\"NetConnection.Connect.Success\");
if (msg) {vid1.source = \"rtmp://10.1.4.249/jpk/CVideo.flv\";
}
}
}
}
5 小結
精品課程建設旨在推動優秀教學資源共享作用,教學錄像作為其中的一個重要組成部分,FMS可以實現多媒體流的點播、直播、交互等多種應用,Flash Player在網絡上應用的廣泛性,因此,FMS成為諸多多媒體應用的服務器端主要應用平臺。基于FMS平臺的教學錄像的在線流暢播放保證了學習者學習的連續性,提升精品課程的整體水平。
參考文獻
[1]教高[2003]1號.教育部關于啟動高等學校教學質量與教學改革工程精品課程建設工作的通知,2003.
[2]教高廳[2003]3號.教育部辦公廳關于印發《國家精品課程建設工作實施辦法》的通知,2003.
[3]William B.Sanders.Learning Flash Media Server 3.Beijing:O’Reilly,2008.
[4]班凱,李偉華.基于FMS的Web視頻、音頻通信系統設計.航空計算技術,2009.