摘? 要 針對(duì)現(xiàn)有流媒體系統(tǒng)集中式頻道管理在教育云環(huán)境下存在的管理難題,設(shè)計(jì)一種分布式的流媒體頻道管理系統(tǒng):直播信號(hào)的采集與發(fā)布本地完成,數(shù)據(jù)中心僅需存儲(chǔ)該頻道的參數(shù)文件;用戶運(yùn)行客戶端播放器自動(dòng)遠(yuǎn)程下載頻道參數(shù)文件,獲取直播源地址并播放節(jié)目。該系統(tǒng)高效、靈活,為教育云環(huán)境下的資源管理提供了一種新思路。
關(guān)鍵詞 分布式;流媒體頻道管理系統(tǒng);公共教育服務(wù)平臺(tái);云教育
中圖分類號(hào):G434? ? 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1671-489X(2018)21-0028-04
1 引言
目前,伴隨著寬帶互聯(lián)網(wǎng)的普及、虛擬化技術(shù)的成熟及移動(dòng)互聯(lián)網(wǎng)技術(shù)的研究進(jìn)展,云計(jì)算獲得蓬勃發(fā)展,極大地拓展了信息技術(shù)應(yīng)用范圍,開(kāi)啟了智能生活的方方面面[1]。該項(xiàng)技術(shù)的不斷成熟,使其在教育領(lǐng)域的應(yīng)用也成為研究熱點(diǎn)[2-4]。教育部在2012年3月發(fā)布《教育信息化十年發(fā)展規(guī)劃(2011—2020年)》,提出國(guó)家教育云基礎(chǔ)平臺(tái)將在2015年初步建成,該平臺(tái)不僅支持教育云管理服務(wù)平臺(tái)及資源平臺(tái)的部署和應(yīng)用,而且可以同時(shí)向IPv4和IPv6用戶提供教育云服務(wù):首先,要充分整合并利用全國(guó)各級(jí)教育機(jī)構(gòu)的信息硬件基礎(chǔ)設(shè)施,建設(shè)布局合理、面向全國(guó)開(kāi)放開(kāi)源的教育云環(huán)境,支撐形成云資源平臺(tái)、云基礎(chǔ)平臺(tái)及云教育管理服務(wù)平臺(tái)的分層架構(gòu);其次,要推動(dòng)省市建設(shè)地方區(qū)域級(jí)公共教育服務(wù)系統(tǒng),各個(gè)省市要大力建設(shè)并建成本區(qū)域的公共教育服務(wù)平臺(tái),整合利用各個(gè)企業(yè)的相關(guān)服務(wù),從而統(tǒng)一提供學(xué)習(xí)、資源、管理、平臺(tái)等信息化服務(wù)[5]。
總體而言,云教育即借助云計(jì)算的相關(guān)技術(shù),把現(xiàn)有分散的教育資源串聯(lián)起來(lái),整合成為共享的教育資源庫(kù)[6]。其實(shí)質(zhì)上是將以往教育信息化中建立的集中化管理模式及資源進(jìn)行整合,建立公共的IT服務(wù)及資源應(yīng)用的平臺(tái)。然而在資源管理方面存在一些亟待解決的難題[7]:教育云的建設(shè)將逐步讓全國(guó)從宏觀(教育部門(mén)管理信息)到微觀(個(gè)體學(xué)生檔案信息)的各類教育數(shù)據(jù)匯聚集中,這些教育數(shù)據(jù)之中也包含所有者不愿意和別人分享的內(nèi)容,比如版權(quán)信息等。因此,數(shù)據(jù)資源管理層面必須考慮什么樣的數(shù)據(jù)適合第三方托管,什么樣的數(shù)據(jù)必須保存在教育機(jī)構(gòu)內(nèi)部[8]。
這就需要構(gòu)建新的資源管理體系與方法,以一種合理的、標(biāo)準(zhǔn)的、安全的方式實(shí)現(xiàn)教育資源的共享,實(shí)現(xiàn)各級(jí)學(xué)校及教育研究機(jī)構(gòu)“無(wú)私”共享其優(yōu)質(zhì)教育資源,[9]。
本文提出一種基于分布式的資源管理系統(tǒng)實(shí)現(xiàn)方法,將資源的本地注入與頻道信息分布式管理相結(jié)合,實(shí)現(xiàn)資源共享模式的創(chuàng)新。首先給出分布式的流媒體直播頻道管理系統(tǒng)的設(shè)計(jì)思路,然后介紹該系統(tǒng)的具體實(shí)現(xiàn)過(guò)程,最后總結(jié)目前研究所取得的成果及其應(yīng)用價(jià)值,并給出下一步的研究方向。
2 分布式的流媒體頻道管理系統(tǒng)設(shè)計(jì)
系統(tǒng)概述? 本文構(gòu)建的分布式流媒體直播頻道管理系統(tǒng)是在傳統(tǒng)集中式的流媒體直播頻道管理方法的基礎(chǔ)上提出的一種分布式管理的思想。該系統(tǒng)基于可擴(kuò)展的系統(tǒng)結(jié)構(gòu),直播負(fù)荷由多臺(tái)流媒體服務(wù)器共同分擔(dān),同時(shí)能遠(yuǎn)程將分布于不同地區(qū)的直播源地址統(tǒng)一寫(xiě)入一個(gè)頻道列表配置文件(channels.conf)中,用戶只需打開(kāi)播放器即可自動(dòng)更新頻道列表,其工作流程如圖1所示。系統(tǒng)管理的基本流程描述如下。
步驟一:管理員訪問(wèn)頻道管理平臺(tái),經(jīng)身份驗(yàn)證后,將新增頻道的元數(shù)據(jù)寫(xiě)入頻道管理服務(wù)器上的channels.conf文件中。
步驟二:終端播放器運(yùn)行后,自動(dòng)從遠(yuǎn)程頻道管理服務(wù)器上下載channels.conf文件,通過(guò)文件中元數(shù)據(jù)的引導(dǎo),獲取直播源內(nèi)容并播放。
系統(tǒng)設(shè)計(jì)考慮具備如下優(yōu)勢(shì)。
1)分布式的頻道管理可以分擔(dān)存儲(chǔ)負(fù)荷:利用HTTP URI確定頻道列表的存儲(chǔ)信息,在克服集中式存儲(chǔ)模式中單個(gè)存儲(chǔ)服務(wù)器容量瓶頸的同時(shí),提高系統(tǒng)的可用性、可靠性及可擴(kuò)展性。
2)實(shí)現(xiàn)頻道的管理不再受時(shí)空局限,不需要在資源存放的數(shù)據(jù)中心即可完成直播節(jié)目的增添刪改,具有很大的操作靈活性。
3)結(jié)合P2P架構(gòu),針對(duì)諸如體育賽事現(xiàn)場(chǎng)直播、突發(fā)事件新聞發(fā)布會(huì)直播等實(shí)時(shí)性要求比較高的節(jié)目發(fā)布,具有很大優(yōu)勢(shì)。
4)解決了視頻發(fā)布中的版權(quán)疑慮:傳統(tǒng)的頻道管理需要把視頻源文件集中匯總到數(shù)據(jù)中心服務(wù)器上,然而這個(gè)涉及視頻版權(quán)問(wèn)題;而運(yùn)用本文的方法,數(shù)據(jù)中心并不存放資源,而是存放頻道列表,視頻資源直接本地發(fā)布,從而有效保護(hù)視頻資源的版權(quán)。
系統(tǒng)過(guò)程定義? 根據(jù)上述流程定義以下過(guò)程,如圖2所示。
1)直播流的發(fā)布過(guò)程,指視頻發(fā)布主機(jī)將采集設(shè)備采集到的直播源進(jìn)行分片、流化處理,接著將直播頻道參數(shù)信息通過(guò)網(wǎng)絡(luò)傳到數(shù)據(jù)中心頻道管理服務(wù)器中。將視頻發(fā)布到網(wǎng)絡(luò)中時(shí),所述直播頻道信息包括直播流地址,一般還包括相關(guān)配置信息,如視頻的編碼碼率、音頻的編碼碼率、編碼格式,是可通過(guò)軟件捕獲視頻采集設(shè)備所采集到的視頻,并且通過(guò)HTTP協(xié)議將視頻發(fā)布到網(wǎng)絡(luò)中的過(guò)程。圖2中,主機(jī)A、B為視頻發(fā)布主機(jī),分別用于發(fā)布捕獲的直播節(jié)目,設(shè)主機(jī)A發(fā)布了節(jié)目A,主機(jī)B發(fā)布了節(jié)目B。
2)頻道列表的遠(yuǎn)程添加過(guò)程,指視頻發(fā)布主機(jī)遠(yuǎn)程訪問(wèn)位于數(shù)據(jù)中心的頻道管理服務(wù)器,經(jīng)過(guò)身份驗(yàn)證之后,將所發(fā)布的直播頻道參數(shù)寫(xiě)入頻道管理服務(wù)器的頻道列表中,并可通過(guò)Web遠(yuǎn)程訪問(wèn)方式,將已發(fā)布的直播流地址等參數(shù)寫(xiě)入數(shù)據(jù)中心頻道列表中。圖2中,主機(jī)A、B分別將已發(fā)布的直播流地址等參數(shù)寫(xiě)入頻道管理服務(wù)器管理的數(shù)據(jù)中心頻道列表。頻道管理服務(wù)器一般設(shè)置在遠(yuǎn)程數(shù)據(jù)中心。實(shí)施例中,頻道管理服務(wù)器管理的數(shù)據(jù)中心頻道列表采用一個(gè)文件名為channels.conf的文件保存,具體實(shí)施時(shí),管理人員可自行設(shè)定具體文件名。
3)頻道列表的遠(yuǎn)程下載過(guò)程,指視頻播放主機(jī)根據(jù)指定HTTP URI精確確定數(shù)據(jù)中心的頻道管理服務(wù)器上直播頻道列表所在的位置,并且自動(dòng)從遠(yuǎn)程的數(shù)據(jù)中心頻道管理服務(wù)器上下載直播頻道列表至視頻播放主機(jī)本地,實(shí)現(xiàn)直播頻道列表的更新。客戶端播放器運(yùn)行內(nèi)嵌的程序,通過(guò)HTTP協(xié)議自動(dòng)將遠(yuǎn)程數(shù)據(jù)中心頻道管理服務(wù)器上的頻道列表下載到本地主機(jī)上。圖2中,主機(jī)C是視頻播放主機(jī),從頻道管理服務(wù)器上下載最新的頻道列表,使用主機(jī)C的用戶選擇節(jié)目A即與主機(jī)A進(jìn)行通信,選擇節(jié)目B即與主機(jī)B進(jìn)行通信。
以上過(guò)程綜合實(shí)現(xiàn)頻道管理,視頻發(fā)布主機(jī)和視頻播放主機(jī)采用計(jì)算機(jī)、智能便攜設(shè)備等,頻道管理服務(wù)器可采用現(xiàn)有服務(wù)器技術(shù)實(shí)現(xiàn)。
3 分布式流媒體頻道管理系統(tǒng)的實(shí)現(xiàn)
系統(tǒng)框圖? 系統(tǒng)由直播采集模塊、頻道管理模塊、視頻播放模塊等組成。其中,直播采集模塊完成直播信號(hào)的采集與發(fā)布;頻道管理模塊完成頻道信息的新增與刪除;視頻播放模塊完成頻道信息的解析與直播信號(hào)的播放,如圖3所示。
系統(tǒng)實(shí)現(xiàn)步驟? 利用現(xiàn)有技術(shù)中開(kāi)源的ffmpeg庫(kù)捕獲實(shí)時(shí)直播源,通過(guò)其自帶的音頻/視頻編解碼庫(kù)libavcodec
來(lái)對(duì)直播源進(jìn)行錄制、轉(zhuǎn)換以及流化處理,然后發(fā)布到網(wǎng)絡(luò)中。在分布式對(duì)直播頻道進(jìn)行管理過(guò)程中采用PHP+Apache
技術(shù),PHP為超文本預(yù)處理語(yǔ)言Hypertext Preprocessor,Apache是世界使用排名第一的Web服務(wù)器軟件。將PHP腳本語(yǔ)言嵌入HTML Web頁(yè)面中,以實(shí)現(xiàn)對(duì)頻道列表配置文件(即實(shí)施例中channels.conf)的動(dòng)態(tài)添加、刪除等操作。通過(guò)Apache Web服務(wù)器,將寫(xiě)好的Web頁(yè)面發(fā)布到網(wǎng)絡(luò)中,實(shí)現(xiàn)遠(yuǎn)程對(duì)channels.conf的讀寫(xiě)操作。最后通過(guò)HTTP URI
精確定位channels.conf所在的位置,并且自動(dòng)從遠(yuǎn)程下載最新的頻道列表。系統(tǒng)構(gòu)建在Linux環(huán)境下,采用PHP+
Apache實(shí)現(xiàn)的頻道管理系統(tǒng)、C語(yǔ)言實(shí)現(xiàn)的網(wǎng)絡(luò)播放器。
1)直播流的發(fā)布過(guò)程。在Linux命令行中通過(guò)Linux shell腳本語(yǔ)言來(lái)調(diào)用ffmpeg庫(kù),利用ffmpeg庫(kù)自帶的音頻/視頻編解碼庫(kù)libavcodec來(lái)對(duì)直播源進(jìn)行錄制、轉(zhuǎn)換以及流化處理;然后通過(guò)調(diào)用ffmpeg庫(kù)里面的ffserver將直播流以HTTP方式發(fā)布到網(wǎng)絡(luò)中,實(shí)現(xiàn)將直播頻道參數(shù)通過(guò)網(wǎng)絡(luò)傳到遠(yuǎn)程數(shù)據(jù)中心頻道管理服務(wù)器上。
2)頻道列表的遠(yuǎn)程添加過(guò)程。在頻道列表的遠(yuǎn)程添加過(guò)程中,首先通過(guò)PHP嵌入式腳本語(yǔ)言定義身份驗(yàn)證功能。用戶通過(guò)Web訪問(wèn)時(shí),在正確輸入用戶名和密碼,經(jīng)過(guò)身份驗(yàn)證之后即登錄進(jìn)入直播頻道管理系統(tǒng)。接著在直播頻道管理系統(tǒng)中進(jìn)行直播頻道重名檢測(cè),檢測(cè)系統(tǒng)中是否已有相同名稱的頻道。若無(wú)重名頻道,則直接將新增頻道名稱及相關(guān)直播頻道信息寫(xiě)入頻道管理系統(tǒng)的channels.conf文件中;若已存在同名頻道,則須修改頻道名稱后,將其寫(xiě)入頻道管理系統(tǒng)的channels.conf文件中。channels.conf
文件詳細(xì)信息如下:
其中CCNU-Nercl-01代表頻道的名稱(播放器運(yùn)行效果如圖4所示);AudioCodec代表音頻編碼方式;Audio-Channels為聲道數(shù);SampleRate為采樣率;VideoCodec為視頻編碼方式;Width、Height分別表示視頻的寬度和高度;Ratio代表視頻的寬高比;Bitrate代表視頻碼率;Launch-
String中的-c參數(shù)表示每秒節(jié)點(diǎn)能發(fā)送的視頻塊數(shù)量,-b、-o分別代表輸入、輸出緩沖區(qū)大小,-i表示視頻源的IP地址,-p表示視頻源的端口號(hào)。
待直播視頻流的IP地址及端口號(hào)寫(xiě)入channels.conf頻道配置文件之后,channels.conf頻道配置文件即通過(guò)Apache服務(wù)器發(fā)布到網(wǎng)絡(luò)中。
3)頻道列表的遠(yuǎn)程下載過(guò)程。用戶在客戶端打開(kāi)播放器后,自動(dòng)激活播放器內(nèi)嵌的遠(yuǎn)程下載程序,該程序通過(guò)HTTP URI確定直播頻道列表的準(zhǔn)確位置,并從遠(yuǎn)程將最新的直播頻道列表下載到本地主機(jī)上以供用戶進(jìn)行頻道選擇。
4 結(jié)語(yǔ)
本文提出一種分布式的流媒體直播頻道管理技術(shù),由于分布式將數(shù)據(jù)分散地存儲(chǔ)于多臺(tái)獨(dú)立的機(jī)器設(shè)備上,并不需要將自己的物理資源貢獻(xiàn)出去,克服了教育云平臺(tái)數(shù)據(jù)共享機(jī)制中存在的缺陷,提高了云平臺(tái)的可靠性、可用性及可擴(kuò)展性。實(shí)施案例實(shí)驗(yàn)結(jié)果表明,該技術(shù)方法易于實(shí)現(xiàn),且管理靈活高效,具有較高的實(shí)用價(jià)值。下一步研究工作的重點(diǎn)為該技術(shù)與教育云的結(jié)合,以發(fā)揮各自的技術(shù)優(yōu)勢(shì),構(gòu)建出具有較高網(wǎng)絡(luò)適應(yīng)性和延展性的教育云平臺(tái)架構(gòu),使得這種架構(gòu)能滿足大規(guī)模用戶的并發(fā)訪問(wèn),同時(shí)可以進(jìn)行無(wú)限擴(kuò)展,從而發(fā)揮更大的實(shí)用價(jià)值。
參考文獻(xiàn)
[1]李廣文.對(duì)基礎(chǔ)教育云建設(shè)與云服務(wù)模式的思考[J].中國(guó)現(xiàn)代教育裝備,2012(8):5-6.
[2]祝智庭,管玨琪.我國(guó)基礎(chǔ)教育信息化新發(fā)展:從“班班通”到“教育云”[J].中國(guó)教育信息化:基礎(chǔ)教育,2011(7):
4-8.
[3]張進(jìn)寶,黃榮懷,張連剛.智慧教育云服務(wù):教育信息化服務(wù)新模式[J].開(kāi)放教育研究,2012,18(3):20-26.
[4]祝智庭,楊志和.云技術(shù)給中國(guó)教育信息化帶來(lái)的機(jī)遇與挑戰(zhàn)[J].中國(guó)電化教育,2012(10):1-2.
[5]中華人民共和國(guó)教育部.教育信息化十年發(fā)展規(guī)劃(2011—2020)年[EB/OL].[2012-03-13].http://old.moe.
gov.cn/publicfiles/business/htmlfiles/moe/s3342/2012
03/xxgk_133322.html.
[6]陶西平.“云教育”探索的起步[J].基礎(chǔ)教育參考,
2012(21):3-4.
[7]劉臻.教育云的建設(shè)和運(yùn)行機(jī)制亟待建立[J].中國(guó)教育網(wǎng)絡(luò),2011(6):26.
[8]盧蓓蓉,任友群.中國(guó)教育信息化的云中漫步:教育云建設(shè)的困境及探析[J].遠(yuǎn)程教育雜志,2012(1):62-67.
[9]祝智庭,姜昌華.教育云開(kāi)啟泛在學(xué)習(xí)之門(mén)[J].中國(guó)教育網(wǎng)絡(luò),2011(6):16-17.
*項(xiàng)目來(lái)源:2015年度福建省電化教育館教育信息技術(shù)課題“基于技術(shù)條件下信息技術(shù)體驗(yàn)式教學(xué)研究”(項(xiàng)目編號(hào):KT15017)。
作者:王君黛,福建省廈門(mén)第一中學(xué),研究方向?yàn)橐苿?dòng)學(xué)習(xí)與教育云服務(wù)(361003)。