孫 恒
(山東大學 外國語學院,山東濟南 250100)
隨著信息產業(yè)的迅猛發(fā)展,互聯(lián)網(wǎng)規(guī)模的日益擴大,網(wǎng)絡科技不斷進步,基于互聯(lián)網(wǎng)的各種新型應用也與人們的工作生活緊密連接在一起。2013年首屆中國移動學習展在北京召開。移動學習成為繼遠程學習和數(shù)字化學習之后教育發(fā)展的新階段。2015年初教育部下發(fā)的《2015年教育信息化工作要點》中就表明,堅持促進信息技術與教育教學深度融合的核心理念,以信息技術在教育教學中的深入普遍應用為導向,促進教育教學模式創(chuàng)新,引導資源共建共享,提高教育質量。由此可見,在線教育開始進入爆發(fā)期,移動學習作為在線教育的一種形式也迅猛發(fā)展。移動學習絕不是網(wǎng)絡學習平臺和課程的簡單移植,而是更為符合移動狀態(tài)下的學習需求,如微型化、便攜化[1]。
通過挖掘現(xiàn)有的教學視頻的使用價值,可以更好地為移動學習提供資源支持。由于移動終端使用平臺的多樣化和資源受限的特性給系統(tǒng)的設計和應用帶來新的挑戰(zhàn),突出體現(xiàn)在移動學習資源設計和開發(fā)、界面設計等各個方面。本文詳細闡述了基于跨平臺技術的流媒體點播系統(tǒng)的設計實現(xiàn)過程。因為在設計中考慮到了跨平臺的特性,所以系統(tǒng)既能用傳統(tǒng)PC瀏覽器訪問,同時也可以在移動平臺上進行使用[2]。
針對跨平臺移動學習的特點以及對資源的需求,給出基于跨平臺技術的流媒體點播系統(tǒng)平臺總體框架。因為面向學校所有用戶提供 7*24小時在線流媒體服務,所以系統(tǒng)的穩(wěn)定性和快速處理能力處于首要位置。我們采用J2EE架構,后臺數(shù)據(jù)庫采用MySQL進行系統(tǒng)開發(fā)。
J2EE技術架構可以簡化企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題。它包含許多組件,主要可簡化且規(guī)范應用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。J2EE體系結構提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性應用的需求。通過提供統(tǒng)一的開發(fā)平臺,降低了開發(fā)多層應用的費用和復雜性,同時為現(xiàn)有應用程序集成提供強有力的支持,完全支持EJB,具有良好的向導支持打包和部署應用,可以添加目錄支持、增強安全機制,提高系統(tǒng)性能[3][4]。
基于跨平臺技術的流媒體點播系統(tǒng)采用B/S架構、多層次多模塊化設計,既是流媒體資源內容采集、存儲、共享管理平臺,實現(xiàn)資源管理等多項功能;又滿足流媒體點播和流媒體直播等網(wǎng)絡應用的需要,可以完善和提升校園網(wǎng)絡直播點播、媒資管理、內容發(fā)布等應用功能和服務質量;同時也可以將各種類型的音視頻媒體、文字、圖表資料進行數(shù)字化存儲和管理。
基于跨平臺技術的流媒體點播系統(tǒng)利用服務器集群和高性能路由器進行軟硬件相結合的負載平衡和分布式數(shù)據(jù)處理。使用該組合性能穩(wěn)定可靠,是流媒體點播系統(tǒng)常用的解決方案。系統(tǒng)服務器物理架構如圖1所示。用戶使用多平臺終端通過3G、4G或校園網(wǎng)進行訪問,在通過防火墻過濾和用戶身份認證后,就可以使用流媒體點播服務。系統(tǒng)根據(jù)服務器的軟硬件配置不同,進行對應功能分配。高性能服務器提供調度和播出節(jié)目,響應用戶點播請求等核心業(yè)務服務。服務器集群根據(jù)訪問用戶量的多少,自動平衡過大流量負載,以保證出現(xiàn)大量并發(fā)訪問時,用戶仍可正常訪問系統(tǒng)。
數(shù)據(jù)服務器包括用戶管理、資源管理及業(yè)務配置管理等模塊。用戶管理模塊提供對注冊用戶的全面管理;資源管理模塊提供對流媒體資源的管理,包括資源的信息查詢等。系統(tǒng)資源服務器包括系統(tǒng)資源管理等其他模塊實現(xiàn)對系統(tǒng)資源等信息內容的監(jiān)控。媒體服務器向用戶提供流媒體服務,其主要功能是對媒體內容進行收集、暫存和傳輸播放。媒體服務器的性能直接影響到流媒體點播應用系統(tǒng)的服務質量[5][6]。
由于點播系統(tǒng)同時支持跨平臺多終端訪問,因此,流媒體資源必須能同時兼容多種點播模式。我們使用了FLV流媒體播放格式,因為它的文件體積小、流媒體質量良好、加載速度快,在各種網(wǎng)絡環(huán)境下都能流暢觀看,并且具有保護版權的功能,非常適合網(wǎng)絡應用,所以被眾多流媒體分享網(wǎng)站廣泛使用。
因為要保證流媒體在各種平臺下都能夠流暢的播放,所以轉碼是本系統(tǒng)設計開發(fā)中的重點。轉碼流程圖如圖2所示。系統(tǒng)管理員添加流媒體文件,系統(tǒng)對資源的大小及名稱進行對比,防止數(shù)據(jù)重復錄入。如果對比發(fā)現(xiàn)相同資源,則提示管理員進行流媒體觀看進行確認,如果確認相同,則停止添加操作;如果沒有相同資源,則自動錄入系統(tǒng)。入庫分類結束后,調用轉碼工具進行轉碼,轉碼時間長短由流媒體大小、碼率以及服務器 CPU負載決定。轉碼完成后,自動生成內容頁面并發(fā)布到網(wǎng)站;轉碼失敗時,顯示信息,提示出錯原因[7][8]。

圖1 系統(tǒng)服務器物理架構

圖2 流媒體轉碼流程圖
數(shù)據(jù)庫采用MySQL作為數(shù)據(jù)平臺,因為在Web應用方面MySQL是目前最流行的關系型數(shù)據(jù)庫管理系統(tǒng)應用軟件。MySQL關聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,這樣就增加了讀取速度并提高了靈活性。由于MySQL體積小、速度快、總體擁有成本低,在很多Web應用網(wǎng)站的開發(fā)中都選擇將其作為網(wǎng)站數(shù)據(jù)庫[9]。整個數(shù)據(jù)庫中最主要的表為用戶表MediaUser,數(shù)據(jù)表MediaFilm。用戶表MediaUser中,User_ID作為主鍵來對用戶進行唯一性確定。其余字段作為補充條件對用戶其他信息進行登記。數(shù)據(jù)表MediaFilm中,F(xiàn)ilm_ID作為主鍵,流媒體相關信息作為補充內容標示信息的唯一性。具體內容如表1、表2所示,僅列出主要字段內容,其他次要部分略。

表1 用戶表MediaUser

表2 數(shù)據(jù)表MediaFilm
系統(tǒng)由于支持跨平臺多終端訪問,所以使用了屏幕顯示自適應模式,根據(jù)訪問端的狀況自動調整流媒體點播系統(tǒng)在不同平臺上的顯示內容。從臺式電腦端訪問流媒體點播系統(tǒng)的界面如圖3所示,從移動端平臺訪問流媒體點播系統(tǒng)的界面如圖4所示。

圖3 電腦端訪問流媒體點播系統(tǒng)效果截圖

圖4 移動端訪問流媒體點播系統(tǒng)效果截圖
系統(tǒng)首頁代碼中使用 Javascript代碼來進行訪問終端類型判斷,根據(jù)判斷類型進入電腦端或者移動端對應的網(wǎng)頁訪問模型[10]。代碼概要如下:

流媒體點播平臺系統(tǒng)功能主要由以下幾個模塊構成。
(1)資源門戶:通過系統(tǒng)將資源通過門戶進行展示,進行下載和瀏覽點擊進行統(tǒng)計排行。(2)離線轉碼:該模塊采用任務編碼方式,對上傳的文件媒體格式進行自動轉碼。
(3)內容管理模塊:系統(tǒng)以WEB方式對跨平臺發(fā)布的內容進行統(tǒng)一管理,支持對節(jié)目的各種操作功能;可以對節(jié)目信息進行編輯;可以預覽影片內容,并將畫面截圖作為海報。
(4)用戶管理:系統(tǒng)具備完備的用戶管理功能,按照用戶類型進行管理,前臺用戶擁有節(jié)目的觀看權限,后臺用戶則擁有系統(tǒng)的管理權限。可以設置用戶組級別。可以對不同的分類設置觀看等級,不同級別的用戶可以看到的節(jié)目不同。
(5)服務器管理:對服務器進行全面的管理,包括查看和修改服務器信息、服務器運行狀態(tài)監(jiān)控等;監(jiān)控服務支持實時監(jiān)控每臺服務器當前的負載情況和運行狀態(tài)等。
視頻轉碼是將已經壓縮編碼的視頻碼流轉換成另一個視頻碼流,以適應不同的網(wǎng)絡帶寬、不同的終端處理能力和不同的用戶需求。轉碼本質上是一個先解碼,再編碼的過程,因此轉換前后的碼流可能遵循相同的流媒體編碼標準,也可能不遵循相同的流媒體編碼標準。系統(tǒng)對視頻重編碼進行了全新優(yōu)化,在服務器端通過調用轉換工具實現(xiàn)流媒體格式轉換[11]。關鍵處理代碼接口類定義如下:

使用該定義類接口可以迅速的將各種流媒體文件轉換成為FLV格式文件,在同等時間內可以完成更多的流媒體轉換任務。
系統(tǒng)采用了服務器集群負載均衡模式,可以同時支持 2000個點播請求。我們使用 Apache JMeter開源工具對系統(tǒng)進行WEB端壓力測試。用一臺高性能計算機使用多線程模擬出大量用戶同時訪問系統(tǒng)的情況,用來測試WEB系統(tǒng)的并發(fā)量上限。在軟件壓力測試結果中最重要的部分就是Error%[12]。由測試結果看到Error%為0.00%,說明出現(xiàn)錯誤的請求的數(shù)量為0,證明系統(tǒng)是經得起多線程大并發(fā)量考驗的。壓力測試報告如圖5所示。
本文在利用現(xiàn)有媒體資源的基礎上,通過交流座談等形式深入了解學校師生實際教學中對移動學習的需求,設計并實現(xiàn)了基于跨平臺技術的流媒體點播系統(tǒng),在新的網(wǎng)絡應用環(huán)境下,使得大量寶貴教學視頻資源可以繼續(xù)發(fā)揮應有的教學輔助作用?;诳缙脚_技術的流媒體點播系統(tǒng)支持目前市場上所有種類的移動終端平臺和臺式電腦端平臺的流媒體傳輸服務,系統(tǒng)通過對多種終端平臺的視頻資源進行統(tǒng)一管理,實現(xiàn)各種視頻文件格式的快速高效轉碼能力。統(tǒng)一流媒體服務可以保護學校在教學上的原有投資,保證平臺在未來的無縫對接升級,可以為臺式電腦平臺用戶、手機平臺用戶和移動平板電腦用戶同時服務。經過兩年的無故障運行,充分證明系統(tǒng)中的流媒體資源可以在各種平臺環(huán)境下清晰、流暢的播放,用戶體驗良好,并且滿足師生工作學習中對視頻資源訪問的實際需求。
我們正在有針對性的開發(fā)基于Android、IOS、Windows Phone等系統(tǒng)的專用APP程序,實現(xiàn)一鍵即可完成登陸、點播的功能。隨著跨平臺技術和互聯(lián)網(wǎng)的不斷前進,使流媒體點播系統(tǒng)更加貼近師生學習工作、更符合實際教學需求。
[1]教育部辦公廳.2015年教育信息化工作要點[OL].
[2]鮑松彬.融合移動學習的大學英語教學新模式[J].實驗室研究與探索,2013,(4):144-147.
[3]閆俊伢,安俊秀. J2EE技術體系的探討與研究[J].實驗室研究與探索,2010,(7):83-85.
[4]楊中科.J2EE開發(fā)全程實錄[M].北京:清華大學出版社,2007: 186-188.
[5]莫志超,張未展,王軍等.基于云計算的P2P流媒體服務器集群部署算法[J].計算機應用, 2014,(2):365-368.
[6]沈超莉,何明昌,郭雅雯.基于文件系統(tǒng)的視頻教學流媒體播放平臺設計[J].實驗室研究與探索,2012,(2):138-140.
[7]賈振華. Java語言程序設計[M].北京:中國水利水電出版社,2010:195-198.
[8] Joyce F. Fundamentals of Java programming[M].北京:科學出版社,2012:242-245.
[9] Baron S,Peter Z,Vadim T著.寧海元,周振興,彭立勛等譯.高性能MySQL[M].北京:電子工業(yè)出版社,2013:86-92.
[10]鐘迅科.基于HTML5的跨平臺移動Web應用與混合型應用的研究[J].現(xiàn)代計算機, 2014,(13):32-36.
[11] Ken B,Lee C著施宏斌譯.HTML5多媒體開發(fā)指南[M].北京:清華大學出版社,2013:201-206.
[12]溫素劍.零成本實現(xiàn)Web性能測試:基于Apache JMeter [M].北京:電子工業(yè)出版社,2012:189-193.