米 亮
(江蘇省廣播電視總臺,江蘇 南京 210009)
江蘇省廣播電視總臺發射傳輸部負責運維地面數字電視省前端信號系統,為全省83個發射臺站提供中央臺和省臺信號源。該系統基于TS over IP 技術進行信號傳輸。省前端節目數量多、節點多、節目碼率大。為提高前端信號系統的安全性,保障節目信號傳輸穩定、不間斷,研發一種分布式碼流實時監控與錄制系統,為整個前端信號系統提供最快速、準確的技術手段,實現衛星接收、編碼、復用、單頻網適配、輸出、空收各環節信號碼流的實時監控,同時實現碼流錄制功能[1]。
結合江蘇省地面數字電視省前端信號系統具體需求,系統除支持AVS+/DRA的節目解碼、實現多路碼流的集中監控和異常報警外,還具有碼流自動探測、單頻網包分析與調試功能。
在前期工程中,碼流實時監控與錄制系統集中監控碼流,由于碼流多且節目碼率大,在使用中經常出現超負荷不穩定等情況。
(1)數據存儲。碼流數量多,比如主備衛星碼流、主備編碼碼流、主備復用器碼流、主備播出碼流、省前端下傳碼流、地市回傳碼流以及空收碼流。這些碼流的匯集對服務器存儲容量要求較高,服務器經常超負荷運作,即使采用大容量存儲服務器,服務器的可靠性也難以滿足要求[2]。
(2)故障排除。集中化監控方案不易排查故障,當服務器死機或者故障,整個監控系統無法正常運行,維護人員不能直觀判斷故障原因。采用分布式監控方案,一旦某臺設備故障,僅影響接入該服務器的碼流,其他服務器不受影響。維護人員可通過監控終端的語音、聲、光等告警方式直觀判斷故障點,快速完成故障發現和故障定位。
分布式監控將碼流實時監控與錄制系統分布式部署,監控地數省前端衛星接收、編碼、復用、單頻網適配、輸出、空收各環節信號碼流,將監控信息匯聚到采集服務器,提供了對廣播電視節目的視音頻異態實時監控和碼流錄制等功能。
采用分布式部署方案,對于動態變化和擴展要求適應性強[3],節目錄制保存時間更長,正常信息可保存半年以上,異態信息能保存一年以上。
該監控系統將各節點碼流的實時狀態推送到省前端監控系統,實現多路碼流的監控和異常報警。如果信號出現故障,系統能及時鎖定及聲光報警,并能快速查找記錄的故障日志和畫面。系統結構如圖1所示。

圖1 系統結構
監控軟件主要有TS碼流探測模塊、碼流分析模塊、單頻網SIP包分析模塊、碼流錄存及轉發模塊等功能模塊。
2.2.1 碼流探測模塊
碼流分析測試工具需要具備自動探測功能,一是為了方便操作,不需要每個節目手動掃描,二是實現查看某端口的所有節目,確保節目沒有變多或遺漏。但是常見的TS碼流分析軟件在獲取TS組播碼流時,需要手動輸入組播地址,并不能實現自動探測的功能。本軟件根據使用需求支持自動探測所有傳入組播流,同時也支持手動輸入組播地址加入組播組。
(1)自動探測功能。用戶選擇綁定本機某個網卡即可探測所有傳入的TS流,包括推送的組播流,也可通過自行添加組播地址加入組播組以獲得組播碼流。TS流是基于Packet的位流格式,每個包為188個字節(或204個字節,在188個字節后加上了16個字節的CRC校驗數據,其他格式一樣)。
具體實現搜索TS流的方法為:建立.net中socket對象,綁定指定的本地地址,并探測傳入的所有數據。根據上述TS流特征過濾收到的數據包中的TS流,并將基本信息顯示在界面中。
(2)主動加入組播組功能。與一般TS流分析軟件類似,可通過自行添加組播地址加入組播組以獲得組播碼流。
2.2.2 碼流分析模塊
選擇某個TS流并點擊開始分析后,軟件將對該TS流進行詳細分析、監控。本程序設計一個TS_Deal類來完成所有TS碼流信息的監測、分析功能。該類的實例綁定一個TS流后,便會持續收取碼流,在TS_Deal實例中每隔一定時間對已獲取的所有數據包進行分析,主要包括以下內容。
(1)分析TS包頭。根據TS_header的結構,解析每個TS包的包頭,解析后即得到該TS包對應的PID、同步字節、包遞增計數器以及加密標志等 信息。
(2)計算總碼率。在一定時間后計算緩存中的TS包個數,計算得到總碼率。
(3)統計PID信息。每個PID碼率與計算總碼率類似,每隔一定時間計算每個PID包的個數,從而得到每個PID碼率。
(4)節目信息分析。解析SDT、PAT、CAT、PMT表并分析錯誤信息,通過PID判斷表類型,根據每個表結構進行解析。首先解析PAT表,獲取碼流中所有節目列表。程序在解析到N環部分的時候,會讀取并保存節目列表及其PID。PAT表列出了TS流中所有的節目列表,以及節目對應的PID值,這個PID值表征的是該節目對應的PMT表的 PID值。
PMT提供一路節目包含的所有原始碼流的PID映射表。程序在讀取N環的時候會讀取該節目所有的碼流列表及其PID,解析的時候可以根據PID來分離。節目時鐘參考PCR的PID和視頻的PID是相等的。由PAT得出所有的節目列表,根據一個節目篩選出等于該節目PID的TS包,就可以得到該節目的所有碼流的PID映射表。最后,通過SDT表的解析獲得所有節目的節目名稱、服務名稱等信息。最后,將PAT、PMT、SDT表解析后,將節目信息整理并通過界面右側treeview顯示出來。
(5)錯誤分析。錯誤變量使用TR101_Status結構體定義,記錄錯誤狀態及錯誤發生的次數。根據TR101-290,在上文搜索SDT、PAT、PMT等表時分析碼流中的錯誤信息,錯誤解析后將錯誤內容和錯誤個數展示在界面下方,當發生錯誤時對應項目顯示為紅色以及錯誤個數。軟件提供了6個一級錯誤及傳輸錯誤、CAT錯誤、2個二級錯誤的檢測。在IP傳輸層面,按照IP包的時間間隔計數并做統計報警。
2.2.3 單頻網SIP包分析模塊
為了地面數字電視單頻網測試需要,系統加入了單頻網SIP包分析模塊。在地面數字電視單頻網中,適配器每1 s向輸入的TS碼流中插入1個SIP,插入時刻與GPS的1 pps對齊,SIP包的格式與MPEG2-TS包格式相同,由4 Byte的包頭和 184 Byte的數據字段組成。
程序對其中SI_SIP包含的信息進行解析,實時統計SIP包間隔并計算SIP抖動。由于網絡傳輸可能有誤差,程序提供SIP累計抖動調整統計 精度。
2.2.4 碼流錄存及轉發模塊
碼流錄存及轉發模塊支持原始碼流錄制和觸發碼流錄制。原始碼流錄制是對所有節目的原始碼流進行錄制。觸發碼流錄制是在報警發生時,對發生報警節目所在的碼流進行原始碼流錄制。同時,系統采用了磁盤預分配、延時寫入等實用技術,提高了存儲的穩定性,延長硬盤壽命。
軟件自動根據時間間隔建立文件夾,將實時將收到的TS流保存至本地文件夾。在硬盤占用空間達到設定的最大值后循環刪除最早的記錄。保存間隔時間可自定義。
該模塊將系統錄像以UDP組播方式推送至指定組播地址。轉發模塊提供轉發地址/端口號、錄像地址/端口號、錄像路徑等參數配置。此功能實現流程為:客戶端發送預覽請求,服務端接收請求后發送推送申請至對應錄存軟件,錄存軟件推送對應節目至指定地址,客戶端接收節目并解碼 至界面。
結合江蘇省廣播電視總臺地面數字電視省前端信號的需求,研發了一種分布式碼流實時監控與錄制系統。在實現碼流實時監控與錄制的基礎上,開發了碼流自動探測、單頻網包分析、AVS+解碼、監控模板預設等功能模塊。系統可靠性高、實時性強,確保了江蘇省地面數字電視省前端安全播出。