丁 劍
(北方民族大學(xué)計(jì)算機(jī)學(xué)院,寧夏 銀川 750021)
基于 Flex和 FMS的遠(yuǎn)程教學(xué)直播系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
丁 劍
(北方民族大學(xué)計(jì)算機(jī)學(xué)院,寧夏 銀川 750021)
結(jié)合 Flex流技術(shù)、W eb技術(shù)和數(shù)據(jù)庫(kù)技術(shù),采用 Flash Media server構(gòu)建一套能夠在校園網(wǎng)內(nèi)進(jìn)行流暢直播的教學(xué)系統(tǒng),并給出具體的實(shí)現(xiàn)方法,同時(shí)也對(duì)今后的遠(yuǎn)程教育工作提供一種新的思路。使用該系統(tǒng),可以在網(wǎng)絡(luò)直播的同時(shí),將需要的教學(xué)片段、節(jié)目錄制下來(lái),結(jié)合校園網(wǎng)的 VOD視頻點(diǎn)播系統(tǒng),供校園網(wǎng)內(nèi)的師生隨時(shí)點(diǎn)播觀看。
Flex;FM S;遠(yuǎn)程教學(xué);直播
Flash Media Server(簡(jiǎn)稱(chēng) FM S)服務(wù)器是用于用戶(hù)之間相互通訊的新平臺(tái),不僅集成了Flash多媒體交互的特性,又添加了實(shí)時(shí)音頻、實(shí)時(shí)視頻和實(shí)時(shí)數(shù)據(jù)流等新特色,使用該平臺(tái),可以通過(guò)網(wǎng)絡(luò)存儲(chǔ)錄制下來(lái)的音頻、視頻,也可以共享數(shù)據(jù)對(duì)象,并且可以將這些音頻、視頻和共享數(shù)據(jù)對(duì)象傳遞給多個(gè)客戶(hù)端,實(shí)現(xiàn)實(shí)時(shí)同步共享[1]。
本文結(jié)合 Flex流技術(shù)、W eb技術(shù)和數(shù)據(jù)庫(kù)技術(shù)[2-5],采用 Flash M ed ia server構(gòu)建了一套在校園網(wǎng)內(nèi)在線(xiàn)直播的教學(xué)系統(tǒng)。圍繞遠(yuǎn)程教學(xué)這個(gè)主題從視頻錄制、視頻服務(wù)器、視頻播放三個(gè)主要方面論述實(shí)現(xiàn)視頻直播的方法與步驟。
1.1 Flex技術(shù)
Flex與 Flash實(shí)際上是同一平臺(tái)的兩種不同的編程模型,通過(guò)共有的 ActionScrip t語(yǔ)言和基礎(chǔ)類(lèi)庫(kù),可以構(gòu)建 R IA應(yīng)用取代現(xiàn)有 Internet應(yīng)用。Flex提供了 RPC Service、Data Manage Service和Message Service 3種方式與服務(wù)端通信,通過(guò)強(qiáng)大的 Flash Media Service和 Flash Cast Service可以構(gòu)建出包含視頻、音頻及更強(qiáng)數(shù)據(jù)協(xié)作的應(yīng)用。
1.2 FM S流媒體技術(shù)
Flash Media Server(FM S)將傳統(tǒng)的流媒體功能與靈活的開(kāi)發(fā)環(huán)境結(jié)合起來(lái),為最廣泛的群體創(chuàng)建和提供創(chuàng)新的、交互式媒體應(yīng)用。作為支持Flash在流媒體服務(wù)方面具有強(qiáng)大功能的 FM S,具有以下各方面的優(yōu)點(diǎn):可以自定義視頻流實(shí)現(xiàn)直播和錄播;通過(guò)編程方式動(dòng)態(tài)設(shè)置緩沖區(qū),可以根據(jù)視頻的長(zhǎng)度和比特率以及客戶(hù)端連接速度,精確設(shè)置最快的啟動(dòng)時(shí)間;使用多種方式、多用戶(hù)流以及用于同步多個(gè)用戶(hù)之間數(shù)據(jù)的遠(yuǎn)程共享對(duì)象技術(shù),創(chuàng)建新的視頻通信應(yīng)用;流事件日志記錄能夠使發(fā)布者看到和捕獲最終用戶(hù)觀看的確切視頻數(shù)量文件對(duì)象;強(qiáng)大的日志記錄功能提供給管理員對(duì)系統(tǒng)的運(yùn)行的細(xì)節(jié)信息;管理控制臺(tái)可以實(shí)時(shí)監(jiān)控系統(tǒng)性能,實(shí)時(shí)了解系統(tǒng)運(yùn)行的負(fù)載。
1.3 視頻直播技術(shù)
網(wǎng)絡(luò)視頻直播主要是通過(guò)視頻采集客戶(hù)端、流媒體服務(wù)器和流媒體播放客戶(hù)端來(lái)實(shí)現(xiàn)。視頻采集客戶(hù)端可以連接入視頻采集設(shè)備,如攝像機(jī)、攝像頭等;流媒體服務(wù)器用來(lái)存儲(chǔ)和處理視頻流,如目前比較常見(jiàn)的 Windows Media Server,Real Media Server,Flash Media Server;流媒體播放客戶(hù)端可以通過(guò)現(xiàn)有的產(chǎn)品,也可以根據(jù)自己應(yīng)用的需求編程實(shí)現(xiàn)。
2.1 體系結(jié)構(gòu)
遠(yuǎn)程教學(xué)直播系統(tǒng)主要有三個(gè)核心部分組成:視頻采集客戶(hù)端、流媒體服務(wù)器和視頻播放客戶(hù)端。體系結(jié)構(gòu)如圖 1。
圖1 系統(tǒng)體系結(jié)構(gòu)圖
視頻采集客戶(hù)端:主要功能是由攝像機(jī)將直播音視頻信號(hào)通過(guò)編碼器進(jìn)行編碼后傳送給 FM S服務(wù)器,其中主要的設(shè)備包括攝像機(jī),編碼直播機(jī)(普通 PC機(jī)即可),要求高的直播節(jié)目可以添加直播切換臺(tái)、音視頻高清編碼器。
FM S流媒體服務(wù)器:主要功能是將由編碼器傳送來(lái)的音視頻信號(hào)進(jìn)行相應(yīng)的處理保存,并提供實(shí)時(shí)的流媒體服務(wù)。
視頻播放客戶(hù)端:主要功能是提供給用戶(hù)用來(lái)瀏覽視頻節(jié)目,以及與其他用戶(hù)進(jìn)行實(shí)時(shí)的文字、視頻互動(dòng)與交流。
2.2 FM S服務(wù)器搭建與配置
FM S服務(wù)器的安裝與配置非常簡(jiǎn)單,首先可以從 Adobe的網(wǎng)站下載免費(fèi)的開(kāi)發(fā)者版本,然后進(jìn)行一步步安裝,安裝時(shí)要記得用戶(hù)名和密碼。安裝完畢后,如果安裝到了 c盤(pán),可以找到目錄 C:Program FilesMacro mediaFlash Media Server 2。
在安裝目錄 C:Program FilesMacromediaFlashM edia Server 2下有一個(gè) App lications文件夾,如果要新建一個(gè)視頻應(yīng)用,就在該文件夾下新建一個(gè)文件夾,如新建文件夾 L ive,該文件夾下可以存放服務(wù)器端腳本、視頻文件、配置文件等。這樣就建立和配置了一個(gè)最簡(jiǎn)單的 FM S服務(wù)器流媒體服務(wù)應(yīng)用,視頻采集客戶(hù)端和視頻播放客戶(hù)端就可以通過(guò) FM S服務(wù)地址 rtmp:∥localhost/live進(jìn)行視頻信息的發(fā)布和視頻信息的播放。
2.3 視頻采集
要實(shí)現(xiàn)教學(xué)視頻信息的遠(yuǎn)程直播[6],首先要將多媒體教室教師講課的視頻信息進(jìn)行采集并發(fā)布到 FM S服務(wù)器。常見(jiàn)的視頻采集是將攝像機(jī)、錄像機(jī)、電視機(jī)輸出的視頻信號(hào),通過(guò)專(zhuān)用的模擬、數(shù)字轉(zhuǎn)換設(shè)備,轉(zhuǎn)換為二進(jìn)制數(shù)字信息的過(guò)程。本系統(tǒng)采用普通的高清攝像頭作為視頻采集設(shè)備,通過(guò)視頻采集軟件 FM E(Flash Media Encoding)將視頻信息及時(shí)傳送至 FM S服務(wù)器。
具體步驟是:在多媒體教室的教師 PC機(jī)上安裝高清攝像頭,并安裝采集軟件 FM E,打開(kāi) FM S,在URL中輸入 FM S流媒體服務(wù)器的地址和節(jié)目名稱(chēng),如:rtmp:∥192.168.1.8/live,live這個(gè)參數(shù)是在配置 FM S服務(wù)應(yīng)用時(shí)配置的,也可以在管理界面找到;點(diǎn)擊 Save to File選擇一個(gè)本地文件夾來(lái)保存直播生成的 flv格式的文件,配置完畢后最后點(diǎn)擊 Connect連接 FM S服務(wù)器,如果連接成功,將出現(xiàn) Connec ted,如圖 2。如果顯示 Connected,點(diǎn) Start按鈕就開(kāi)始采集視頻了。FM E會(huì)一邊把采集到的文件保存到本地硬盤(pán)上的一個(gè)文件,同時(shí)把數(shù)據(jù)上傳到 FM S上,進(jìn)行實(shí)時(shí)轉(zhuǎn)播。
圖2 視頻采集控制圖
2.4 視頻直播客戶(hù)端的實(shí)現(xiàn)
在教學(xué)直播系統(tǒng)中最關(guān)鍵、應(yīng)用最廣泛的是教學(xué)視頻播放客戶(hù)端,通常分為兩種,一種是基于A IR的桌面客戶(hù)端,一種是基于 W eb瀏覽器的Flash視頻客戶(hù)端。無(wú)論哪一種客戶(hù)端軟件,都可以通過(guò) Flex builder3可視化開(kāi)發(fā)環(huán)境,結(jié)合 FM S相關(guān)技術(shù)并根據(jù)教學(xué)系統(tǒng)的各種需求開(kāi)發(fā)出適合自己的視頻播放客戶(hù)端,要開(kāi)發(fā)的視頻客戶(hù)端主要功能包括:視頻播放,視頻交流,白板,應(yīng)用共享等。本文以視頻播放為例,講述主要的開(kāi)發(fā)過(guò)程。首先,打開(kāi) Flex Builder3,新建工程命名為 video,按照向?qū)J(rèn)執(zhí)行下一步,完成向?qū)?然后打開(kāi)src目錄下 video.m xm l,在編輯器窗口中選擇 Design標(biāo)簽,打開(kāi)可視化編輯窗口,從組件視圖窗口下控件列表中選擇 videodisp lay控件到編輯窗口中,然后點(diǎn)擊轉(zhuǎn)換到 source標(biāo)簽,在代碼編輯模式下輸入相關(guān)代碼,部分關(guān)鍵代碼如下:
private function onPlayVideo(event:MouseEvent):void{
nc=new NetConnection();
nc.connect("rtmp://localhost/live","adm in","123456");
nc.addEventListener(NetStatusEvent.NET_STATUS,onPlayNetStautsHandler);
nc.client=this;}
private function onPlayNetStautsHandler(event:NetStatusEvent):void{
if(event.info.code=="NetConnection.Connect.Success")
{
ns=new NetStream(this.nc);
ns.client=this;
var video:Video=new Video();
video.width= 320;
video.height= 240;
video.attachNetStream(this.ns);
this.myVideo.addChild(video);
this.ns.p lay();
}}
在 Flex左邊視圖中選擇 video.m xm l點(diǎn)擊右鍵,選擇 Run App lication,將出現(xiàn)一個(gè)運(yùn)行窗口,等待幾秒鐘后將出現(xiàn)正在直播的教學(xué)視頻,其效果如圖 3。
圖3 教學(xué)直播播放
2.5 視頻監(jiān)控
在 FM S安裝環(huán)境下有一個(gè)文件 fm s2_conso le.sw f,這是 FM S的管理服務(wù)控制臺(tái)。通過(guò)控制臺(tái)可以管理用戶(hù),監(jiān)控應(yīng)用程序中共享對(duì)象、流,執(zhí)行的情況以及內(nèi)存、CPU等占用情況。每當(dāng)有客戶(hù)端連接服務(wù)器時(shí),左邊就會(huì)列出連接的是哪個(gè) app。當(dāng)視頻直播時(shí),通過(guò)該控制臺(tái)可以監(jiān)控直播流量,服務(wù)器負(fù)荷,直播時(shí)間,同時(shí)還可以通過(guò)該控制臺(tái)統(tǒng)計(jì)直播期間的網(wǎng)絡(luò)流量,用戶(hù)數(shù)等參數(shù)??刂婆_(tái)如圖 4。
圖4 FM S的管理服務(wù)控制臺(tái)
該系統(tǒng)在北方民族大學(xué)校園網(wǎng)內(nèi)進(jìn)行了測(cè)試,測(cè)試環(huán)境采用一臺(tái) HPDL380(cpu 2GHZ,內(nèi)存4G,硬盤(pán) 460G)的 PC服務(wù)器作為 FM S服務(wù)器,采用一臺(tái) HPCompad dx2355(cpu酷睿 2雙核,內(nèi)存2G,硬盤(pán) 500G)作為教師端視頻采集和發(fā)布客戶(hù)端計(jì)算機(jī),采用羅技 C910高清攝像頭作為視頻采集設(shè)備,測(cè)試了系統(tǒng)在 20用戶(hù)、50用戶(hù)、100用戶(hù)、200用戶(hù)、500用戶(hù)下 FM S負(fù)載的情況,同時(shí)測(cè)試了系統(tǒng)在 1個(gè)教學(xué)點(diǎn)、5個(gè)教學(xué)點(diǎn)、10個(gè)教學(xué)點(diǎn)下的 FM S負(fù)載情況。測(cè)試發(fā)現(xiàn),隨著用戶(hù)數(shù)增加到 200以上和教師授課采集端增加到 5個(gè)以上,視頻播放的質(zhì)量沒(méi)有出現(xiàn)衰減和卡的情況,但視頻播放有較小的時(shí)延。通過(guò)測(cè)試說(shuō)明系統(tǒng)比傳統(tǒng)的MM S流媒體服務(wù)器更好的性能,能夠滿(mǎn)足目前校園網(wǎng)內(nèi)視頻直播教學(xué)的要求,達(dá)到了預(yù)期的目標(biāo)。隨著今后用戶(hù)數(shù)逐漸增加大和教學(xué)點(diǎn)的增多,可以通過(guò)增加 FM S服務(wù)器數(shù)量或搭載集群的方法進(jìn)行系統(tǒng)的升級(jí)和擴(kuò)充。
[1]倪宇斌,劉波.一個(gè)基于多 Agent的遠(yuǎn)程教學(xué)系統(tǒng)研究與實(shí)現(xiàn)[J].海南大學(xué)學(xué)報(bào),2007(25):178.
[2]趙國(guó)安,魏東曉,王曉軍.基于 W eb的遠(yuǎn)程教學(xué)管理系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn) [J].北京郵電大學(xué)學(xué)報(bào),2007(4):15-16.
[3]劉運(yùn)龍,黃煙波,黃海.一種基于雙 MVC架構(gòu)的遠(yuǎn)程教學(xué)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2006(5):2-3.
[4]杜選.多媒體遠(yuǎn)程教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J],計(jì)算機(jī)應(yīng)用,2006(12):353-354.
[5]胡寧?kù)o,岳永恒.遠(yuǎn)程教學(xué)系統(tǒng)中幾個(gè)關(guān)鍵模型研究[J],計(jì)算機(jī)工程與科學(xué),2008(30):139.
[6]楊強(qiáng)根.遠(yuǎn)程教學(xué)資源管理與分發(fā)系統(tǒng)的研究與實(shí)現(xiàn)[J],計(jì)算機(jī)工程與設(shè)計(jì),2007(28):2957.
(責(zé)任編輯 劉敏)
Research and Implementation of Remote Teaching System Based on Flex and FM S
DING Jian
(College of Computer Science,North University for Nationalities,Yinchuan Ningxia 750021,China)
A teaching system in live on line,which base on Combination of Flex,Web and database technology,and build using Flash Media server within a campus network,are developed.The system realization method are given.A new idea on the future of distance education works are also proposed.
Flex;FMS;distance learning;live telecast
TP311 < class="emphasis_bold">文獻(xiàn)標(biāo)志碼:A
A
1009-315X(2011)01-0056-04
收稿日期:2010-09- 17;
2010-10-29
北方民族大學(xué)基金資助項(xiàng)目 (2010Y035)。
丁劍 (1977-),男,回族,寧夏銀川人,講師,主要從事計(jì)算機(jī)應(yīng)用、人工智能研究。