丁 劍
(北方民族大學計算機學院,寧夏 銀川 750021)
基于 Flex和 FMS的遠程教學直播系統的設計與實現
丁 劍
(北方民族大學計算機學院,寧夏 銀川 750021)
結合 Flex流技術、W eb技術和數據庫技術,采用 Flash Media server構建一套能夠在校園網內進行流暢直播的教學系統,并給出具體的實現方法,同時也對今后的遠程教育工作提供一種新的思路。使用該系統,可以在網絡直播的同時,將需要的教學片段、節目錄制下來,結合校園網的 VOD視頻點播系統,供校園網內的師生隨時點播觀看。
Flex;FM S;遠程教學;直播
Flash Media Server(簡稱 FM S)服務器是用于用戶之間相互通訊的新平臺,不僅集成了Flash多媒體交互的特性,又添加了實時音頻、實時視頻和實時數據流等新特色,使用該平臺,可以通過網絡存儲錄制下來的音頻、視頻,也可以共享數據對象,并且可以將這些音頻、視頻和共享數據對象傳遞給多個客戶端,實現實時同步共享[1]。
本文結合 Flex流技術、W eb技術和數據庫技術[2-5],采用 Flash M ed ia server構建了一套在校園網內在線直播的教學系統。圍繞遠程教學這個主題從視頻錄制、視頻服務器、視頻播放三個主要方面論述實現視頻直播的方法與步驟。
1.1 Flex技術
Flex與 Flash實際上是同一平臺的兩種不同的編程模型,通過共有的 ActionScrip t語言和基礎類庫,可以構建 R IA應用取代現有 Internet應用。Flex提供了 RPC Service、Data Manage Service和Message Service 3種方式與服務端通信,通過強大的 Flash Media Service和 Flash Cast Service可以構建出包含視頻、音頻及更強數據協作的應用。
1.2 FM S流媒體技術
Flash Media Server(FM S)將傳統的流媒體功能與靈活的開發環境結合起來,為最廣泛的群體創建和提供創新的、交互式媒體應用。作為支持Flash在流媒體服務方面具有強大功能的 FM S,具有以下各方面的優點:可以自定義視頻流實現直播和錄播;通過編程方式動態設置緩沖區,可以根據視頻的長度和比特率以及客戶端連接速度,精確設置最快的啟動時間;使用多種方式、多用戶流以及用于同步多個用戶之間數據的遠程共享對象技術,創建新的視頻通信應用;流事件日志記錄能夠使發布者看到和捕獲最終用戶觀看的確切視頻數量文件對象;強大的日志記錄功能提供給管理員對系統的運行的細節信息;管理控制臺可以實時監控系統性能,實時了解系統運行的負載。
1.3 視頻直播技術
網絡視頻直播主要是通過視頻采集客戶端、流媒體服務器和流媒體播放客戶端來實現。視頻采集客戶端可以連接入視頻采集設備,如攝像機、攝像頭等;流媒體服務器用來存儲和處理視頻流,如目前比較常見的 Windows Media Server,Real Media Server,Flash Media Server;流媒體播放客戶端可以通過現有的產品,也可以根據自己應用的需求編程實現。
2.1 體系結構
遠程教學直播系統主要有三個核心部分組成:視頻采集客戶端、流媒體服務器和視頻播放客戶端。體系結構如圖 1。

圖1 系統體系結構圖
視頻采集客戶端:主要功能是由攝像機將直播音視頻信號通過編碼器進行編碼后傳送給 FM S服務器,其中主要的設備包括攝像機,編碼直播機(普通 PC機即可),要求高的直播節目可以添加直播切換臺、音視頻高清編碼器。
FM S流媒體服務器:主要功能是將由編碼器傳送來的音視頻信號進行相應的處理保存,并提供實時的流媒體服務。
視頻播放客戶端:主要功能是提供給用戶用來瀏覽視頻節目,以及與其他用戶進行實時的文字、視頻互動與交流。
2.2 FM S服務器搭建與配置
FM S服務器的安裝與配置非常簡單,首先可以從 Adobe的網站下載免費的開發者版本,然后進行一步步安裝,安裝時要記得用戶名和密碼。安裝完畢后,如果安裝到了 c盤,可以找到目錄 C:Program FilesMacro mediaFlash Media Server 2。
在安裝目錄 C:Program FilesMacromediaFlashM edia Server 2下有一個 App lications文件夾,如果要新建一個視頻應用,就在該文件夾下新建一個文件夾,如新建文件夾 L ive,該文件夾下可以存放服務器端腳本、視頻文件、配置文件等。這樣就建立和配置了一個最簡單的 FM S服務器流媒體服務應用,視頻采集客戶端和視頻播放客戶端就可以通過 FM S服務地址 rtmp:∥localhost/live進行視頻信息的發布和視頻信息的播放。
2.3 視頻采集
要實現教學視頻信息的遠程直播[6],首先要將多媒體教室教師講課的視頻信息進行采集并發布到 FM S服務器。常見的視頻采集是將攝像機、錄像機、電視機輸出的視頻信號,通過專用的模擬、數字轉換設備,轉換為二進制數字信息的過程。本系統采用普通的高清攝像頭作為視頻采集設備,通過視頻采集軟件 FM E(Flash Media Encoding)將視頻信息及時傳送至 FM S服務器。
具體步驟是:在多媒體教室的教師 PC機上安裝高清攝像頭,并安裝采集軟件 FM E,打開 FM S,在URL中輸入 FM S流媒體服務器的地址和節目名稱,如:rtmp:∥192.168.1.8/live,live這個參數是在配置 FM S服務應用時配置的,也可以在管理界面找到;點擊 Save to File選擇一個本地文件夾來保存直播生成的 flv格式的文件,配置完畢后最后點擊 Connect連接 FM S服務器,如果連接成功,將出現 Connec ted,如圖 2。如果顯示 Connected,點 Start按鈕就開始采集視頻了。FM E會一邊把采集到的文件保存到本地硬盤上的一個文件,同時把數據上傳到 FM S上,進行實時轉播。

圖2 視頻采集控制圖
2.4 視頻直播客戶端的實現
在教學直播系統中最關鍵、應用最廣泛的是教學視頻播放客戶端,通常分為兩種,一種是基于A IR的桌面客戶端,一種是基于 W eb瀏覽器的Flash視頻客戶端。無論哪一種客戶端軟件,都可以通過 Flex builder3可視化開發環境,結合 FM S相關技術并根據教學系統的各種需求開發出適合自己的視頻播放客戶端,要開發的視頻客戶端主要功能包括:視頻播放,視頻交流,白板,應用共享等。本文以視頻播放為例,講述主要的開發過程。首先,打開 Flex Builder3,新建工程命名為 video,按照向導默認執行下一步,完成向導,然后打開src目錄下 video.m xm l,在編輯器窗口中選擇 Design標簽,打開可視化編輯窗口,從組件視圖窗口下控件列表中選擇 videodisp lay控件到編輯窗口中,然后點擊轉換到 source標簽,在代碼編輯模式下輸入相關代碼,部分關鍵代碼如下:
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點擊右鍵,選擇 Run App lication,將出現一個運行窗口,等待幾秒鐘后將出現正在直播的教學視頻,其效果如圖 3。

圖3 教學直播播放
2.5 視頻監控
在 FM S安裝環境下有一個文件 fm s2_conso le.sw f,這是 FM S的管理服務控制臺。通過控制臺可以管理用戶,監控應用程序中共享對象、流,執行的情況以及內存、CPU等占用情況。每當有客戶端連接服務器時,左邊就會列出連接的是哪個 app。當視頻直播時,通過該控制臺可以監控直播流量,服務器負荷,直播時間,同時還可以通過該控制臺統計直播期間的網絡流量,用戶數等參數。控制臺如圖 4。

圖4 FM S的管理服務控制臺
該系統在北方民族大學校園網內進行了測試,測試環境采用一臺 HPDL380(cpu 2GHZ,內存4G,硬盤 460G)的 PC服務器作為 FM S服務器,采用一臺 HPCompad dx2355(cpu酷睿 2雙核,內存2G,硬盤 500G)作為教師端視頻采集和發布客戶端計算機,采用羅技 C910高清攝像頭作為視頻采集設備,測試了系統在 20用戶、50用戶、100用戶、200用戶、500用戶下 FM S負載的情況,同時測試了系統在 1個教學點、5個教學點、10個教學點下的 FM S負載情況。測試發現,隨著用戶數增加到 200以上和教師授課采集端增加到 5個以上,視頻播放的質量沒有出現衰減和卡的情況,但視頻播放有較小的時延。通過測試說明系統比傳統的MM S流媒體服務器更好的性能,能夠滿足目前校園網內視頻直播教學的要求,達到了預期的目標。隨著今后用戶數逐漸增加大和教學點的增多,可以通過增加 FM S服務器數量或搭載集群的方法進行系統的升級和擴充。
[1]倪宇斌,劉波.一個基于多 Agent的遠程教學系統研究與實現[J].海南大學學報,2007(25):178.
[2]趙國安,魏東曉,王曉軍.基于 W eb的遠程教學管理系統的設計及實現 [J].北京郵電大學學報,2007(4):15-16.
[3]劉運龍,黃煙波,黃海.一種基于雙 MVC架構的遠程教學管理系統的設計與實現[J].計算機系統應用,2006(5):2-3.
[4]杜選.多媒體遠程教學系統的設計與實現[J],計算機應用,2006(12):353-354.
[5]胡寧靜,岳永恒.遠程教學系統中幾個關鍵模型研究[J],計算機工程與科學,2008(30):139.
[6]楊強根.遠程教學資源管理與分發系統的研究與實現[J],計算機工程與設計,2007(28):2957.
(責任編輯 劉敏)
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">文獻標志碼:A
A
1009-315X(2011)01-0056-04
收稿日期:2010-09- 17;
2010-10-29
北方民族大學基金資助項目 (2010Y035)。
丁劍 (1977-),男,回族,寧夏銀川人,講師,主要從事計算機應用、人工智能研究。