黃琪洋 成都外國語學校
數(shù)據(jù)流監(jiān)控平臺建設
黃琪洋 成都外國語學校
本文討論了數(shù)據(jù)流監(jiān)控平臺的實現(xiàn)方案,提出解析和解碼、數(shù)據(jù)分析和報警處理等三大流程環(huán)節(jié)的解決辦法。
數(shù)據(jù)流 HLS RTMP
移動網(wǎng)絡技術發(fā)展到今天,廣播的業(yè)態(tài)也變成為互聯(lián)網(wǎng)+廣播形式,無論在地球的任何角落,聽眾都能從互聯(lián)網(wǎng)獲得優(yōu)秀的節(jié)目資源。東方傳媒集團有限公司旗下?lián)碛?2個廣播頻率和韓語泡菜廣播和粵語粵來粵愛兩個互聯(lián)網(wǎng)頻率,其中990新聞、第一財經(jīng)、五星體育、經(jīng)典音樂、動感音樂、歐美音樂等優(yōu)秀頻率,在長三角地區(qū)家喻戶曉。東方傳媒集團有限公司于2015年推出了阿基米德(移動廣播APP),使得這些優(yōu)秀的節(jié)目得到廣泛的傳播。但由于網(wǎng)絡傳輸鏈路的復雜性,節(jié)目的品質(zhì)監(jiān)控一直沒有解決,例如聲音的忽大忽小、爆音、斷線等。這些品質(zhì)直接影響到用戶體驗。在用戶體驗為王的大背景下,雖然節(jié)目優(yōu)秀,如果體驗差,也會喪失用戶。因此,建立數(shù)據(jù)流監(jiān)控平臺勢在必行,東方傳媒集團有限公司于2017年啟動數(shù)據(jù)流監(jiān)控平臺建設,目前該系統(tǒng)已投入使用。
數(shù)據(jù)流傳輸系統(tǒng)結構如下圖所示。系統(tǒng)輸入信號包括12套無線廣播信號和2套互聯(lián)網(wǎng)信號組成,將節(jié)目進行RTMP封裝后的數(shù)據(jù)流,推送至流媒體服務器。由于蘋果設備操作系統(tǒng)和Andrio設備操作系統(tǒng)分別支持HLS和RTMP協(xié)議,因此,流媒體服務器需要將節(jié)目信號進行解包和封包,分別發(fā)布到互聯(lián)網(wǎng)上。
數(shù)據(jù)流監(jiān)控平臺包括解析解碼系統(tǒng)、數(shù)據(jù)分析系統(tǒng)、報警處理系統(tǒng)三大部分。監(jiān)控數(shù)據(jù)源由上圖的監(jiān)測面A的14套節(jié)目信號數(shù)據(jù)流、監(jiān)測面B的14套HLS數(shù)據(jù)流和14套RTMP數(shù)據(jù)流組成,實現(xiàn)了對節(jié)目從數(shù)據(jù)編碼、發(fā)布接收整個過程監(jiān)控。
解析解碼系統(tǒng)實際是HLS/RTMP協(xié)議解析器和MP3解碼器構成,輸入數(shù)據(jù)流,輸出線性的節(jié)目數(shù)據(jù)。線性數(shù)據(jù)作為數(shù)據(jù)分析系統(tǒng)的輸入信號。
HLS協(xié)議封裝的數(shù)據(jù)包括一個m3u(8)索引文件和多個數(shù)據(jù)碎片文件。系統(tǒng)通過索引文件找到相應的碎片文件,利用HTTP網(wǎng)絡協(xié)議逐一取得每幀的流數(shù)據(jù)。 RTMP是基于TCP之上封裝的協(xié)議,采用默認端口1935,服務器和客戶首先通過1536字節(jié)數(shù)據(jù)包進行握手后,即可發(fā)送內(nèi)容數(shù)據(jù),內(nèi)容數(shù)據(jù)包括固定長度的包頭和128字節(jié)的包體組成,解析內(nèi)容數(shù)據(jù)包,可以取得每幀的流數(shù)據(jù)。
解碼模塊基于FFMPEG平臺提供的接口函數(shù)進行開發(fā),首先注冊音視頻壓縮格式和分配內(nèi)存空間,從HLS/RTMP解析器中獲取壓縮幀,并根據(jù)數(shù)據(jù)格式類型,調(diào)用解碼器解碼,輸出線性數(shù)據(jù)。
42套節(jié)目數(shù)據(jù)同時解碼,在讀取數(shù)據(jù)時,由于網(wǎng)絡環(huán)境、服務器性能和資源波動等因素,會不定時出現(xiàn)阻塞狀態(tài),因此,如果42套數(shù)據(jù)流放在一個主線程中處理,將直接影響檢測數(shù)據(jù)的真實性。因此解析和解碼系統(tǒng)采用多線程編程,防止數(shù)據(jù)流之間的相互影響。
在數(shù)據(jù)分析系統(tǒng)中,設定信號的報警閾值和持續(xù)時間(默認為8秒),系統(tǒng)記錄故障開始時間和故障恢復時間,并將報警信息輸出到報警處理系統(tǒng)進行處理。其中電平檢測主要監(jiān)控音量大小,報警閾值包括最低電平(-35db)、最高電平(-4db)。相位檢測主要是監(jiān)控左右聲道的相關系數(shù),并進行歸一化處理,報警閾值設置為-1~-0.7和1~0.7,當相關系數(shù)落在閾值范圍內(nèi)并持續(xù)一定時間,就生成一條報警信息。斷線檢測主要是監(jiān)控數(shù)據(jù)流的網(wǎng)絡延時時間。系統(tǒng)參數(shù)根據(jù)網(wǎng)絡環(huán)境,服務器存儲、CPU等資源進行設置。如果閾值太嚴格,數(shù)據(jù)流稍微有一點偏差,就會報警,導致管理人員疲于應付,但閾值設置太寬松,就達不到自動監(jiān)控的目的,因此在設置閾值時,需要多次試驗,反復修改,獲得理想的閾值參數(shù)。
報警處理系統(tǒng)中,報警信息根據(jù)不同的緊迫程度,指定不同級別的管理人員。例如:斷線報警定義為重要級別、電平過低等定義為中等級別、相位反相定義為輕微級別。報警管理人員分為技術管理和節(jié)目管理等兩大類,技術管理主要負責網(wǎng)絡傳輸?shù)然A網(wǎng)絡通路的維護,節(jié)目管理負責節(jié)目電平、相位等內(nèi)容質(zhì)量監(jiān)控。系統(tǒng)中設置的報警管理人員電話、郵箱等。通過短信、電話和郵件,將報警信息分發(fā)給不同的管理者。當故障長時間未得到解決時,可以定義重復發(fā)送等。
短信模塊通過短信平臺的服務接口,將報警信息通過短信平臺發(fā)送給相應的管理者。短信平臺可以自行建設,也可以租用電信服務商的短息平臺。郵件處理模塊主要負責將報警信息以郵件形式發(fā)送給管理者。其中發(fā)件人的郵箱地址、郵箱密碼和管理者的郵箱地址,設置在系統(tǒng)數(shù)據(jù)庫中。
綜上所述,數(shù)據(jù)流監(jiān)控平臺是一個復雜的工程,不但要涉及到HLS/RTMP協(xié)議的解析、數(shù)據(jù)的解碼、節(jié)目電平和左右聲道相關系數(shù)計算、短信平臺接口和郵箱控制等各個流程環(huán)節(jié),而且還需要考慮網(wǎng)絡環(huán)境、服務器存儲、CPU等設備的性能,進行最佳的監(jiān)控參數(shù)調(diào)整。本文提出了東方傳媒集團有限公司目前采用的系統(tǒng)方案,僅供今后進行數(shù)據(jù)流監(jiān)控平臺作參考。