張貴湖 劉勁松
摘要:針對傳統(tǒng)實驗教學中實驗室對上課人數(shù)有限制的問題,避免互聯(lián)網(wǎng)直播平臺對知識產(chǎn)權(quán)和隱私保護的諸多不足,利用RTMP流媒體技術(shù),研究并實現(xiàn)一種基于Nginx的網(wǎng)絡(luò)多媒體直播系統(tǒng)。該直播系統(tǒng)除了可以使用計算機或手機終端進行直播和觀看以外,還可以使用多個直播間對不同的課程進行同步直播。該研究解決實驗室空間上的限制,以及對實驗教學的信息與網(wǎng)絡(luò)化提供了有力的技術(shù)支撐。
關(guān)鍵詞:Nginx;直播系統(tǒng);RTMP;實驗教學;流媒體
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)23-0084-03
Abstract: In view of the limitations of the number of classes in the traditional experimental teaching, the Internet live broadcast platform avoids many shortcomings of intellectual property rights and privacy protection. Using RTMP streaming media technology, a Nginx-based network multimedia live broadcast system is researched and implemented. In addition to the live broadcast and viewing using a computer or mobile terminal, the live broadcast system can also use multiple live broadcast rooms to simultaneously broadcast different courses. The study addresses the limitations of laboratory space and provides strong technical support for experimental teaching information and networking.
Key words: Nginx; live broadcast system; RTMP; experimental teaching; stream media
1 背景
隨著網(wǎng)絡(luò)技術(shù)的不斷深入發(fā)展,網(wǎng)絡(luò)直播也逐漸地被大眾所接受,該技術(shù)也越來越多地被各高校應(yīng)用到實驗教學中。與傳統(tǒng)實驗教學相比,網(wǎng)絡(luò)直播教育具有實時性和開放性的特點, 它打破傳統(tǒng)的、封閉的教室教學模式,學生可以在任何時間、任何地點學習任何已開放的直播課程,是區(qū)別于傳統(tǒng)教育以面授為主的一種新型教育模式[1]。但是在使用互聯(lián)網(wǎng)直播平臺作為直播教學過程中,會碰到直播中被允許觀看人員范圍不可控,課堂教學互動中學生也隱私難以保護,網(wǎng)絡(luò)直播課堂課件的影音資料難以界定是否侵權(quán)的問題[2-3]。因此如何構(gòu)建具備直播效果好、訪問可控、經(jīng)濟性好的實驗室直播系統(tǒng)是目前急需研究的課題。
2 基于Nginx的實驗室直播系統(tǒng)結(jié)構(gòu)
基于Nginx的實驗室直播系統(tǒng)由前端編碼系統(tǒng)、流媒體傳輸網(wǎng)絡(luò)、直播服務(wù)系統(tǒng)和終端解碼系統(tǒng)構(gòu)成,其基本體系結(jié)構(gòu)如圖1所示。
從圖1中可以看出,實驗室直播系統(tǒng)是以流媒體傳輸網(wǎng)絡(luò)為主要銜接,首先將前端編碼系統(tǒng)生成的流媒體數(shù)據(jù)傳輸?shù)街辈シ?wù)系統(tǒng),直播服務(wù)系統(tǒng)提供直播服務(wù)、網(wǎng)頁服務(wù)和轉(zhuǎn)發(fā)服務(wù),最后終端解碼系統(tǒng)把直播服務(wù)系統(tǒng)傳輸過來的流媒體數(shù)據(jù)再進行解碼,通過以上流程形成了一個完整的運行體系。
3 基于Nginx的實驗室直播系統(tǒng)組成
實驗室直播系統(tǒng)由4個大系統(tǒng)組成,每個大系統(tǒng)又有多個子系統(tǒng)組成,詳細工作流程圖如圖2所示。
3.1 前端編碼系統(tǒng)
前端編碼系統(tǒng)主要功能是把前端設(shè)備所采集到的圖像聲音等信息進行數(shù)字化編碼,并將這些流媒體傳輸?shù)街辈シ?wù)系統(tǒng)。前端解碼系統(tǒng)包換兩個前端工作模塊,分別是計算機端和移動設(shè)備端。
3.1.1 計算機端
計算機端的流媒體傳輸主要依靠軟件OBS(Open Broadcaster Software 開放廣播軟件)實現(xiàn)。OBS是一個免費開源的實時流媒體傳輸軟件,支持多種場景和視頻源,支持DirectShow采集設(shè)備,支持實時RTMP流推送等多種功能,并廣泛應(yīng)用在各種直播領(lǐng)域。
教師演示計算機安裝OBS后,可以將多種場景如計算機桌面板書、攝像頭拍攝教室情況和話筒錄制的教室演講等多種內(nèi)容一同合并編碼,將流媒體數(shù)據(jù)傳輸?shù)街辈シ?wù)系統(tǒng)。
3.1.2 移動設(shè)備端
隨著高速移動互聯(lián)網(wǎng)的發(fā)展,移動設(shè)備直播因此成為直播系統(tǒng)中最為廣泛的應(yīng)用。移動設(shè)備選擇推流App,該軟件是泛用直播工具,可以支持蘋果和安卓兩大智能手機平臺,可以輕松將移動設(shè)備前后攝像頭畫面和移動端屏幕顯示的應(yīng)用內(nèi)容傳輸?shù)街辈シ?wù)器。
3.2 流媒體傳輸網(wǎng)絡(luò)
流媒體傳輸網(wǎng)絡(luò)依托于以太網(wǎng),主要使用RTMP協(xié)議(Real Time Messaging Protocol 實時消息傳輸協(xié)議)傳輸流媒體,以及HTTP協(xié)議(Hyper Text Transfer Protocol 超文本傳輸協(xié)議)提供網(wǎng)頁服務(wù)。
3.2.1 RTMP協(xié)議
RTMP 協(xié)議是客戶端與服務(wù)端之間的傳實時消息傳送協(xié)議,其是專門為視頻、音頻等數(shù)據(jù)高效傳輸而設(shè)計的協(xié)議,主要用來在支持RTMP協(xié)議的流媒體與交互服務(wù)器之間進行視頻、音頻和數(shù)據(jù)通信[4]。相對于傳統(tǒng)的TCP(Transmission Control Protocol 傳輸控制協(xié)議)或UDP(User Datagram Protocol 用戶數(shù)據(jù)報協(xié)議) 媒體傳輸協(xié)議來說,其支持更多的數(shù)據(jù)從服務(wù)端到客戶端和從客戶端到服務(wù)端的多線路動態(tài)傳輸,并且支持數(shù)據(jù)腳本。
RTMP協(xié)議報文使用二進制編碼的AMF格式封裝,編碼經(jīng)過高度壓縮和序列化,提高了傳輸速度和效率,保證數(shù)據(jù)所需的網(wǎng)絡(luò)傳輸消耗最小,達到實時性要求,非常適合用來傳輸大量的流媒體數(shù)據(jù)[5-6]。在流媒體傳輸網(wǎng)絡(luò)中,RTMP協(xié)議可以使視頻音頻等信息在終端到服務(wù)器和服務(wù)器到終端之間以較快速度傳輸。
3.2.2 HTTP協(xié)議
HTTP協(xié)議于1990 年提出, 由WWW 組織定義和發(fā)布的應(yīng)用層協(xié)議,是目前應(yīng)用的最為廣泛的一種應(yīng)用層協(xié)議,采用了請求響應(yīng)模型,是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議[7-8]。直播服務(wù)器遵循HTTP協(xié)議為終端提供頁面服務(wù)。
3.3 直播服務(wù)系統(tǒng)
直播服務(wù)系統(tǒng)是整個實驗室直播系統(tǒng)的核心,采用Nginx服務(wù)為各個系統(tǒng)提供直播服務(wù)和網(wǎng)頁服務(wù),以CKplayer頁面播放器來實現(xiàn)實驗室直播的在線觀看。
3.3.1 Nginx
Nginx被認為是一款強大的高性能服務(wù)器軟件,該軟件集成web 服務(wù)、電子郵件服務(wù)和反向代理服務(wù)。它的特性是服務(wù)所占用系統(tǒng)內(nèi)存極少,網(wǎng)頁數(shù)據(jù)集鏈接并發(fā)能力很強,軟件輕巧而支持的功能極其豐富,在同種的網(wǎng)頁支持服務(wù)器中表現(xiàn)較為出色[9]。
Nginx 采用多進程的方式工作,由一個Master 進程和多個worker 進程組成,其中Master 進行主要負責接收外部控制信號,基本的網(wǎng)絡(luò)事件則由worker 進程處理[10]。Nginx本身是支持頁面服務(wù)的,其附加的Nginx-RTMP-module模塊用來實直播系統(tǒng)現(xiàn)直播功能。
3.3.2 CKplayer
CKplayer是一款多功能頁面播放器,基于Nginx的頁面服務(wù),為終端提供在線播放功能。CKplayer支持基于HTTP協(xié)議的FLV、MP4等格式文件同時也支持RTMP協(xié)議的流媒體播放。該播放器會在播放時還會自動選擇使用HTML5技術(shù)或基于Flash技術(shù)的播放器進行播放,大大提高了終端的兼容性。
3.4 終端解碼系統(tǒng)
終端解碼系統(tǒng)包含兩個子系統(tǒng),即計算機端和移動設(shè)備端。兩個終端只需要使用任意瀏覽器訪問直播服務(wù)器,即可以憑借CKplayer強大的在線播放功能,實現(xiàn)對直播流媒體在線播放,從而達到解碼的目的。
4 基于Nginx的實驗室直播系統(tǒng)實現(xiàn)
4.1 系統(tǒng)基本環(huán)境
直播服務(wù)器采用一臺4核4線程內(nèi)存為8GB的HP 服務(wù)器,操作系統(tǒng)為Microsoft Windows Server 2008r2,Nginx版本為1.14.1,Nginx-RTMP-module模塊版本為1.2.1。傳輸網(wǎng)絡(luò)采用支持全千兆的華為S5700交換機,前端編碼和終端解碼均采用普通臺式機,操作系統(tǒng)為Windows 7。
4.2 系統(tǒng)壓力測試
在以上基本環(huán)境下,配置服務(wù)器Nginx的conf配置文件開啟直播間live,使用一臺普通臺式機作為前端編碼機器,使用OBS播放高清視頻傳輸?shù)街辈シ?wù)器,直播的分辨率為1920x1080,編碼為H264 High 4.0,碼率為5.25 Mbps。測試方法為逐步增加解碼終端的數(shù)量,考驗直播服務(wù)系統(tǒng)與傳輸網(wǎng)絡(luò)承載能力,測試結(jié)果如表1所示。
由表1為可以看出,隨著客戶端的不斷增加,輸入數(shù)據(jù)量緩慢增長,輸入速度基本穩(wěn)定在5.5MB/s,這個和直播系統(tǒng)輸出的碼率基本符合。而輸出數(shù)據(jù)量成倍增長,輸出速度也穩(wěn)定增長,符合轉(zhuǎn)發(fā)服務(wù)器特性,達到系統(tǒng)設(shè)計目標。在達到200個客戶端的時候,輸出速度高達984.44MB/s,已經(jīng)達到1000M網(wǎng)絡(luò)的極限。如果將輸出分辨降低一些,輸出碼率減少到一半,此系統(tǒng)將可以承載達到400個客戶端,基本滿足普通高校實驗室的需求。
5 結(jié)束語
針對目前高校實驗室教育出現(xiàn)的實際問題,利用先進的網(wǎng)絡(luò)媒體技術(shù),以較小的代價實現(xiàn)了資源利用率高、運行穩(wěn)定的實驗室教學直播系統(tǒng),豐富了實驗室教學模式。該系統(tǒng)的成功實現(xiàn)是實驗室教學的一次重要升級。
參考文獻:
[1] 魏冰石. 開放教育直播教學的問題及對策探析[J]. 吉林廣播電視大學學報, 2018(8): 98-99, 112.
[2] 朱巍, 田瑩. 互聯(lián)網(wǎng)直播與隱私權(quán)保護的沖突與平衡[J]. 中國廣播, 2017(8): 43-48.
[3] 趙世蘭, 張熒子暄. 網(wǎng)絡(luò)直播中的音樂版權(quán)問題研究[J]. 音樂傳播, 2018(3): 101-105.
[4] 范圍. 基于RTMP協(xié)議的視頻系統(tǒng)的應(yīng)用探析[J]. 電子測試, 2015(22): 119-120.
[5] 黃波, 張先輝. 基于RTMP協(xié)議的IPTV監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)[J]. 廣播電視信息, 2018(7): 103-107.
[6] 王艷. Android系統(tǒng)中RTMP流媒體直播的設(shè)計與實現(xiàn)[J]. 電視技術(shù), 2017, 41(1): 64-67.
[7] 陳忠菊. HTTP服務(wù)器的研究和實現(xiàn)[J]. 電腦編程技巧與維護, 2018(8): 133-135.
[8] 李琳. 獨立學院網(wǎng)絡(luò)環(huán)境下基于Nginx的反向代理的研究與應(yīng)用[J]. 信息技術(shù)與信息化, 2018(10): 102-103.
[9] 張煒森, 陳濤, 李康. Nginx高并發(fā)負載均衡原理與策略比較研究[J]. 工業(yè)控制計算機, 2018, 31(1): 85-86, 89.
[10] 胡亮, 零宗諭, 陶杜輝, 等. 基于HTTP協(xié)議的信息系統(tǒng)信息泄露的探究[J]. 企業(yè)科技與發(fā)展, 2018(1): 62-64, 67.
【通聯(lián)編輯:謝媛媛】