董建偉
(公安邊防部隊士官學(xué)校,云南·昆明 650214)
隨著因特網(wǎng) (Internet)技術(shù)的發(fā)展,公安邊防部隊在執(zhí)法執(zhí)勤過程中對多媒體通信的需求也越來越高,視頻直播業(yè)務(wù)等逐漸成為公安邊防部隊的工作以及生活的一部分,例如視頻會議、視頻圖傳、視頻監(jiān)控等在邊防部隊各項工作中的應(yīng)用,以及視頻點播在部隊業(yè)余文化生活中的應(yīng)用。
如何架設(shè)視頻直播網(wǎng)站,有多種技術(shù)方案可選,可以基于視窗媒體服務(wù)器 (Windows Media Server)技術(shù)架設(shè)①張紅生,基于Windows Media流媒體技術(shù)的自主視聽中心的設(shè)計與管理.中國電化教育,2006,(12):106-107或者可使用主動型網(wǎng)絡(luò)攝像頭 (Active WebCam)來架設(shè)。每種技術(shù)方案都有自己的優(yōu)缺點,本文通過邊防工作中應(yīng)用的一些具體實例,給出使用動畫流媒體服務(wù)器(FMS)架設(shè)直播系統(tǒng)的一種方案。動畫流媒體服務(wù)器 (FMS)具有部署便捷、運行穩(wěn)定、使用方便等優(yōu)點,是諸多多媒體應(yīng)用的服務(wù)器端的主要應(yīng)用平臺。
FMS為動畫流媒體服務(wù)器 (Flash Media Server)的縮寫,是奧多比 (Adobe)公司②Adobe公司創(chuàng)建于1982年,是世界領(lǐng)先的數(shù)字媒體和在線營銷解決方案供應(yīng)商。開發(fā)的一個多媒體應(yīng)用平臺,是一個完全基于軟件的實時通訊環(huán)境??蓱?yīng)用于用戶之間的相互通訊,該平臺集成了多媒體交互的特性,同時又具有音頻和視頻流實時傳輸?shù)忍攸c。FMS支持實時消息傳輸協(xié)議RTMP(Real Time Messaging Protocol)和實時媒體流協(xié)議RTMFP(Real Time Media Flow Protocol)③陳鋒鋒,基于RTSP的流媒體傳輸系統(tǒng)的應(yīng)用開發(fā).南京郵電大學(xué),2013,153頁,由于實時消息傳輸協(xié)議RTMP和實時媒體流協(xié)議RTMFP都是奧多比(Adobe)公司為更好的支持其多媒體程序播放器 (Flash Player)開發(fā),因此結(jié)合多媒體程序播放器 (Flash Player),可以方便地實現(xiàn)視頻點播、直播與多播。
圖1 系統(tǒng)架構(gòu)圖
公安邊防部隊視頻直播系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示,由視頻采集部分、視頻服務(wù)器、用戶終端和網(wǎng)絡(luò)設(shè)備等組成,整個系統(tǒng)通過網(wǎng)絡(luò)設(shè)備進(jìn)行組網(wǎng)并接入因特網(wǎng) (Internet)。
視頻采集部分由攝像機和視頻終端處理機構(gòu)成,由于視頻采集點不止一個,多臺終端處理機通過以太網(wǎng)連在一起。①William B Sanders.Learning Flash Media Server 3.Beijing:O’Reilly Media,Inc,2008
在公安邊防部隊網(wǎng)內(nèi),視頻服務(wù)器與視頻采集部分處于同一個局域網(wǎng),終端處理機可以方便地把直播視頻上傳到視頻服務(wù)器②張榮榮,DNS系統(tǒng)負(fù)載均衡方案的設(shè)計與原型實現(xiàn).北京郵電大學(xué),2011,167頁。為保障網(wǎng)絡(luò)安全,在局域網(wǎng)出口配置防火墻。
在公安邊防部隊的實際應(yīng)用中,用戶終端可以是個人電腦、單兵圖傳設(shè)備、動中通等邊防常用裝備。
系統(tǒng)運行原理如下,視頻終端處理機通過攝像機采集圖像數(shù)據(jù),然后對數(shù)據(jù)進(jìn)行壓縮和編碼,形成flash視頻流,之后使用流媒體傳輸協(xié)議 (RTMP)將視頻發(fā)布到視頻服務(wù)器,視頻服務(wù)采用FMS架設(shè)③班凱,李偉華,基于FMS的Web視頻、音頻通信系統(tǒng)設(shè)計.航空計算技術(shù),2009,39(5),128-131;用戶終端使用多媒體程序播放器 (Flash Player)作為代理,與服務(wù)器建立連接后,從服務(wù)器獲取視頻并顯示,整個系統(tǒng)的運行流程如圖2所示。(三)負(fù)載均衡
為解決大量并發(fā)訪問問題,使用基于DNS的負(fù)載均衡技術(shù),該技術(shù)具有實現(xiàn)簡單、實施容易、成本低、適用于大多數(shù)傳輸控制協(xié)議/網(wǎng)絡(luò)互聯(lián)協(xié)議 (TCP/IP)應(yīng)用的優(yōu)點。
具體的實施方案如下,在多個地理位置區(qū)域部署鏡像視頻服務(wù)器,每個鏡像服務(wù)器在寬帶運營商的域名系統(tǒng) (DNS)服務(wù)器上使用與視頻服務(wù)器相同的域名。視頻服務(wù)器發(fā)布直播視頻的同時將視頻發(fā)布到各個鏡像服務(wù)器,為保證服務(wù)器與鏡像服務(wù)器之間的通信鏈路,視頻服務(wù)器與鏡像服務(wù)器之間使用虛擬專用網(wǎng) (VPN)專用通道。由于鏡像服務(wù)器和服務(wù)器上的視頻內(nèi)容相同,當(dāng)終端用戶通過域名訪問直播視頻時,不同地域的域名系統(tǒng) (DNS)服務(wù)器將會把同一域名解析到不同的網(wǎng)絡(luò)互聯(lián)協(xié)議 (IP)地址,這樣便實現(xiàn)把大量并發(fā)訪問分配到多個服務(wù)器,有效地實現(xiàn)負(fù)載均衡。
與系統(tǒng)架構(gòu)對應(yīng),系統(tǒng)軟件由三部分構(gòu)成,即視頻采集軟件、服務(wù)器軟件和終端用戶軟件。其中,基于客戶機/服務(wù)器 (C/S)架構(gòu)時,終端用戶軟件分為個人電腦 (PC)應(yīng)用、智能手機應(yīng)用和平板應(yīng)用,基于瀏覽器/服務(wù)器 (B/S)架構(gòu)時,終端應(yīng)用為對應(yīng)終端平臺上的瀏覽器,并且瀏覽器需要多媒體程序播放器 (Flash Player)插件的支持。每種軟件的功能說明如下:
視頻采集軟件:采集直播視頻并向FMS傳輸視頻;
服務(wù)器軟件:接收采集軟件上傳的視頻、發(fā)布直播視頻、處理視頻播放請求;
終端用戶軟件:請求視頻并播放。
要設(shè)計開發(fā)這些軟件,需要安裝兩個軟件以搭建開發(fā)環(huán)境,即動畫流媒體服務(wù)器 (Flash Media Server)和奧多比閃客專業(yè)版 (Adobe Flash Professional)。動畫流媒體服務(wù)器 (FMS)為服務(wù)器軟件,同時支持二次開發(fā),奧多比閃客專業(yè)版 (Adobe Flash Professional)為終端用戶軟件提供開發(fā)環(huán)境。在本論文中,僅闡述軟件設(shè)計方法及關(guān)鍵代碼,對于編程細(xì)節(jié)文中不做闡述。
動畫流媒體服務(wù)器 (FMS)支持二次開發(fā),由于其提供一個應(yīng)用框架,所有動畫流媒體服務(wù)器 (FMS)的二次開發(fā)非常簡單,只需要在動畫流媒體服務(wù)器 (FMS)的安裝目錄的應(yīng)用 (Application)目錄下新建應(yīng)用子目錄,然后在新建的應(yīng)用目錄下使用 Actionscript語言編寫一個main.sc腳本文件,在main.asc文件中集中編寫關(guān)注的業(yè)務(wù)代碼即可。雖然鏡像服務(wù)器與視頻服務(wù)器上的視頻內(nèi)容相同,對終端用戶的視頻請求響應(yīng)也相同,但是由于服務(wù)器還有像鏡像服務(wù)器發(fā)布直播視頻,因此兩種的運行軟件是不同的。對于鏡像服務(wù)器軟件,只需編寫一個Application.onConnect函數(shù),在函數(shù)中調(diào)用application.acceptConnection(client)函數(shù)即可,對于其他的事件處理交由FMS應(yīng)用框架處理。與鏡像服務(wù)器相比,服務(wù)器還要向鏡像服務(wù)器發(fā)布直播視頻,因此,在服務(wù)器的main.asc文件中,需要添加application.onPublish函數(shù),在該函數(shù)中將直播視頻發(fā)布到鏡像服務(wù)器,函數(shù)關(guān)鍵代碼如下:
function(client,myStream)①JianFeng Lu,Yao Zhang.Mobile Application Development Based on Adobe AIR.IEEE,2013,376-378
圖2 網(wǎng)絡(luò)測試環(huán)境
視頻采集軟件運行于視頻終端處理機,劃分為用戶界面部分和業(yè)務(wù)邏輯部分。用戶界面部分在本文中不做闡述。業(yè)務(wù)邏輯部分的任務(wù)就是從攝像機采集圖像形成視頻流并將視頻流發(fā)布到視頻服務(wù)器。
該部分軟件使用奧多比閃客專業(yè)版 (Adobe Flash Professional)開發(fā),在終端處理機上需要一個多媒體程序運行時 (Flash Runtime)為軟件提供運行環(huán)境,多媒體程序運行時 (Flash Runtime)可由多媒體程序播放器 (Flash Player)或者奧多比集成運行時 (AIR)提供,在終端處理機上選用多媒體程序播放器 (Flash Player)。由于該開發(fā)環(huán)境提供了眾多功能豐富的開發(fā)模塊,例如:視頻采集、數(shù)據(jù)傳輸、視頻編碼等功能模塊,所以,并不需要從零編寫代碼,很多工作由多媒體程序播放器 (Flash Player)隱式執(zhí)行。
業(yè)務(wù)邏輯處理部分使用actionscript語言編寫,基于事件編程,當(dāng)與視頻服務(wù)器連接成功后開始錄制視頻并發(fā)布到服務(wù)器。
用戶終端軟件使用Adobe Flash Professional開發(fā),使用actionscript語言編寫代碼,終端上也需要Flash Runtime的支持,但不同的終端Runtime是不同的,對于使用windows或linux操作系統(tǒng)的PC選用Flash Player,對于移動終端,基于android智能手機或平板電腦使用 AIR for android,基于IOS的智能手機或平板電腦,使用AIR for ios。
該部分軟件的業(yè)務(wù)邏輯處理比較簡單,與服務(wù)器或鏡像服務(wù)器建立連接后獲取直播視頻并顯示即可。
編碼完成后,將文件保存為fla格式,如保存為videoPlay.fla,然后使用 Adobe Flash Professional編譯發(fā)布,發(fā)布為PC應(yīng)用時選擇發(fā)布目標(biāo)為Flash Player,發(fā)布 Flash和Html兩種格式,相應(yīng)會生成videoPlay.swf和videoPlay.ht-ml兩個文件;當(dāng)發(fā)布為android或ios應(yīng)用時,選擇目標(biāo)分別為AIR for android和AIR for ios,則會生成相應(yīng)兩種平臺的安裝文件包。
用戶終端軟件使用奧多比閃客專業(yè)版(Adobe Flash Professional)開發(fā),使用actionscript語言編寫代碼,終端上也需要多媒體程序運行時 (Flash Runtime)的支持,但不同的終端運行時 (Runtime)是不同的,對于使用視窗(windows)或者勒紐克斯 (linux)操作系統(tǒng)的個人電腦 (PC)選用多媒體程序播放器 (Flash Player)。
該部分軟件的業(yè)務(wù)邏輯處理比較簡單,與服務(wù)器或鏡像服務(wù)器建立連接后獲取直播視頻并顯示即可。
編碼完成后,將文件保存為fla格式,如保存為videoPlay.fla,然后使用奧多比閃客專業(yè)版(Adobe Flash Professional)編譯發(fā)布,發(fā)布為個人電腦 (PC)應(yīng)用時選擇發(fā)布目標(biāo)為多媒體程序播放器 (Flash Player),發(fā)布Flash和Html兩種格式,相應(yīng)會生成videoPlay.swf和videoPlay.html兩個文件。
由于測試條件限制,將服務(wù)器軟件和視頻采集軟件運行于同一臺物理主機,測試網(wǎng)絡(luò)環(huán)境如圖3所示。
服務(wù)器硬件環(huán)境如下:
CPU:Intel酷睿i53470、內(nèi)存:4G
軟件測試環(huán)境如下
服務(wù)器操作系統(tǒng):windows7
手機和平板系統(tǒng):android4.0
圖3 視頻采集圖像
視頻服務(wù)器:Flash Media Server 4.5
Web服務(wù)器:Apache 2.2
瀏覽器:IE、360、UC、android原生瀏覽器
Flash Runtime:Flash Player11、Flash AIR3.2
圖4 瀏覽器播放畫面
對系統(tǒng)進(jìn)行了長達(dá)一周的測試,測試過程中視頻傳輸流暢,未出現(xiàn)死機或拒絕服務(wù)等異常。視頻采集部分測試結(jié)果如圖4所示,當(dāng)點擊開始(start)按鈕后,開始采集視頻并向服務(wù)器發(fā)布。對于終端應(yīng)用軟件測試,由于視頻顯示結(jié)果類似,本文僅給出使用瀏覽器進(jìn)行直播視頻觀看的測試結(jié)果如圖5所示,對于其他方式的測試結(jié)果本文不再貼出。
通過實際開發(fā)和部署實踐可知,使用動畫流媒體服務(wù)器 (FMS)架設(shè)多媒體服務(wù)網(wǎng)站具有實施簡便、系統(tǒng)運行穩(wěn)定、帶寬利用率高等優(yōu)點,是進(jìn)行公安邊防視頻通信多媒體網(wǎng)站架設(shè)的首先技術(shù),可以為公安邊防部隊提供一定程度的視頻直播業(yè)務(wù)。但在實際的測試中發(fā)現(xiàn),雖然視頻傳輸流暢,但視頻延時較大,在本測試環(huán)境中,視頻的時延約為5秒,這又對一些邊防部隊中實時性要求比較高的工作造成了一定的影響。另外,本視頻直播系統(tǒng)沒有放在公網(wǎng)上測試,基于虛擬專用網(wǎng) (VPN)通道的鏡像服務(wù)器性能沒有得到測試,在高并發(fā)情況下整個系統(tǒng)的運行性能也沒有得到足夠的驗證,這些問題都有待進(jìn)一步研究與驗證。