汪 浩
(岳陽電視轉播臺,湖南 岳陽 414000)
根據國家廣播電視總局下發的《關于按規劃關停地面模擬電視有關工作安排的通知》,岳陽地區的地面模擬電視信號于2020年12月31日徹底關停。岳陽市廣播電視全面進入數字時代。在地面無線電視數字化后,原來采用的基于模擬信號的監測方式已經不能滿足安全播出要求,急需新的監測系統來保證整個播出系統的安全運行[1]。
在模擬電視時期,一個頻道對應一套節目,需要監測的內容較少。縣市級轉播臺通常將模擬節目的信號源通過視音頻分配器接入視音頻采集卡或者圖像分割器,然后送入顯示設備對播出的信號源進行監測。進入數字時代后,數字電視在同一個頻道能傳輸多套節目,需要監測的內容增加了數倍,模擬監測設備無法繼續使用。
以岳陽電視轉播臺金鶚山機房的信號源傳輸鏈路為例,如圖1所示。前端機房將湖南省5套節目、中央12套節目、地方臺1套節目經過編碼和復用后,通過微波和光纖兩條鏈路傳輸到岳陽金鶚山機房。微波和光纖兩路信號傳輸內容相同,互為備份。金鶚山機房將接收到的節目流通過中央廣播電視節目無線數字化覆蓋工程的數碼視訊EMR設備重新復用后,分為兩個流,從EMR設備的ASI接口送入數字切換器,最后進入發射機。在此過程中,如果無法實時監測節目信號狀況,信號源出現問題時就不能及時發現并處理,值班人員應急切換信號會導致安全播出事故。為了及時發現信號源的問題,需要對輸出信號源進行監測[2]。

圖1 微波、光纖信號源流程圖
信號源監測系統是信號源安全傳輸的保障,必須符合國家廣播電視總局62號令有關安全播出的要求,設計時首先要考慮安全問題,不能對正常的播出造成影響。其次要做到簡單易用,不需要操作就能直觀地看到信號源是否正常。
通過對金鶚山機房的信號源流程和實際工作需求進行分析,設計信號源監測系統主要包含信號源節目的獲取和信號源節目的解碼播放兩部分。
信號源節目流可以從交換機、解碼器及復用器等設備獲取。設計時最終選擇從復用器獲取信號源節目,這樣選擇是因為復用器更靠近發射端,信源到發射機中間的節點最少,能更準確地反映進入發射機的信號的狀況。數碼視訊EMR設備(復用器)的ASI輸出口和千兆網口都能獲取信號源節目流。如果從ASI輸出口獲取節目,需要針對服務器額外購置ASI采集板卡,而通過千兆網口獲取節目,只需要編寫軟件解碼。考慮到成本和復雜程度,設計選擇了從千兆網口獲取信號源節目。
現有的數字電視的信號源,經過數碼視訊EMR設備復用后分為主備信號,再通過ASI板卡輸出,所以只需將相同的節目復用到EMR設備的千兆網口,操作如圖2所示。獲取到信號源節目后,將此復用信號送到服務器進行解碼。

圖2 信號源復用到千兆卡網口
解碼播放部分是此系統的核心,需要實現的功能主要有兩個。一是接收、解析信號源TS流。服務器接收到復用器傳來的組播流后,先由demux解復用將TS流中的節目解出,再通過視頻、音頻解碼器對每套節目進行解碼。二是多畫面輸出,通過信號源監測系統的多畫面輸出,可以監測節目的畫面質量,值班人員能及時發現信號源中出現的問題。這兩個功能是通過VLC來實現的。VLC是一款開源、可擴展的多媒體播放器及框架,VLC播放器的核心引擎和多媒體框架接口libVLC,可以讓開發人員快速實現多媒體應用程序[3]。監測系統通過調用第三方開源庫Vlc.DotNet實現對VLC的操作。
軟件開發的硬件環境為處理器Intel(R) Core(TM)i7-6600 CPU,主頻為2.81 GHz,內存為8 GB。 開發軟件環境如表1所示。

表1 開發軟件環境
在IDE中建立好項目工程后,首先需要從NuGet包中安裝Vlc.DotNet.Core.Interops、Vlc.DotNet.Core及Vlc.DotNet.Forms這3個 包。Vlc.DotNet對libVLC進行了封裝。安裝完成后,工具箱中出現Vlc.DotNet組件,如圖3所示。安裝Vlc.DotNet組件后,可以通過鼠標繪制界面和編寫少量代碼,就能調用VLC播放器,實現信號源節目的音視頻監聽監看。

圖3 Vlc.DotNet工具
以單畫面信號源監測為例,對主要代碼進行介紹。對于多畫面監測,只需在此基礎上進行擴展 即可[4-6]。
(1)初始化組件方法部分代碼如圖4所示。初始化vlcControl組件時,必須將VLC的lib文件引入,這些文件是VLC的核心引擎和多媒體解碼組件,沒有引入將會報錯。引入方法如下:在工程文件夾binRelease下新建vlclib文件夾(可自己命名),將VLC播放器目錄下的libvlc.dll、libvlccore.dll等文件和plugins文件夾拷貝到vlclib文件夾中,然后在組件VlcLibDirectory屬性中加入對vlclib文件夾的引用。初始化組件還需要注意的是VlcMediaplayerOptions屬性,播放器很多功能都需要通過這個屬性來設置。

圖4 單畫面初始化組件代碼
(2)讀取配置文件方法,如圖5所示。讀取配置文件Config.ini中的數據,配置文件主要包含UDP組播地址、端口號以及節目PID等信息。
(3)界面初始化方法部分代碼如圖5所示。界面構造時先將界面上的組件初始化,然后讀取配置文件中的數據,最后調用vlcControl組件的Play方法,根據配置文件數據播放相應的節目。Play方法的options參數可以設置播放器選項,能覆蓋之前通過VlcMediaplayerOptions屬性添加的設置。這樣就能夠更方便地對播放器進行操作。

圖5 界面初始化讀取配置播放代碼
信號源監測系統運行后,屏幕顯示多畫面效果如圖6所示。界面上每個子畫面顯示的節目是通過配置文件Config.ini設置的。Config.ini文件將節目UDP地址、端口及PID等信息對應到每個子畫面中。點擊子畫面標題欄,可以監聽當前節目的音頻。

圖6 系統運行效果
信號源監測系統在運行過程中需要注意信號源的碼率設置。
在實際測試中發現,碼率過大時,硬件配置一般的服務器會出現卡頓和馬賽克的情況。信號源組播碼率不要超過20 Mb·s-1,如果節目過多導致碼率過大,需要將信號源拆分成多個組播流。
設置信號源組播時,碼率大小一定要與節目大小適配。碼率設置不當,會導致監測系統解碼出現馬賽克或者中斷現象。
信號源監測系統上線后已經穩定運行了一年多時間,多畫面的展示讓值班員能夠實時對信號源進行監測,減少了因信號源引起的安全播出問題,對保障節目安全播出起到重要作用。系統基于VLC開發,具有很強的擴展性,還可以在此基礎上繼續開發,完善監測軟件功能,幫助技術人員做好數字時代的廣播電視安全播出工作,提升廣播電視基本公共服務的質量和水平。