楊凱 鄭郁劼 蘇州廣播電視總臺技術(shù)中心
蘇州廣播電視總臺現(xiàn)有十間廣播直播室,包括8間自辦節(jié)目的廣播直播室、1間多媒體直播室和1間備份直播室。目前,各節(jié)目部門根據(jù)自身全天節(jié)目編排的需要,每天會有一些時間段需要在廣播節(jié)目中轉(zhuǎn)播某些電視頻道的節(jié)目,例如FM91.1城市綜合頻率每天中午12點至12點30分轉(zhuǎn)播CCTV1綜合頻道的午間新聞。這些節(jié)目的信號取自每個直播室安裝的一臺普通電視機頂盒,機頂盒的音頻輸出通過模擬平衡音頻接口接入調(diào)音臺,視頻輸出通過視頻接口接入液晶電視作為監(jiān)看,實現(xiàn)廣播節(jié)目轉(zhuǎn)播電視頻道節(jié)目的需求。雖然該方案沿用了很長時間,但是由于機頂盒信號源是外來信號(廣電網(wǎng)絡(luò)運營商)而非臺內(nèi)信號,當(dāng)信號出現(xiàn)中斷時無法追查問題根源,只能等待信號恢復(fù),以往也出現(xiàn)過因為機頂盒信號長時間中斷,導(dǎo)致轉(zhuǎn)播無法正常進行的情況。為了確保自辦節(jié)目的安全播出,也為了確保例如國慶、兩會直播、春節(jié)聯(lián)歡晚會等某些特定時間段和重大事件的轉(zhuǎn)播,需要設(shè)計一套以臺內(nèi)信號為信號源的播出方案。
對于在廣播直播間使用的電視信號轉(zhuǎn)播系統(tǒng),在設(shè)計上需要考慮以下特點:(1)穩(wěn)定性
由于系統(tǒng)涉及播出,穩(wěn)定性是最重要的要求。之前使用的系統(tǒng)中,不穩(wěn)定因素在于信號源是外來信號,很多因素不可控、不可查。要改善這一問題,可以考慮使用臺內(nèi)的信號源。根據(jù)部門的實際情況,決定使用電視總控輸出的UDP組播多節(jié)目TS流信號,每個組播流信號包含若干個電視頻道節(jié)目。
(2)可擴展性
目前廣播常規(guī)需求的電視節(jié)目轉(zhuǎn)播涉及的電視臺包括蘇州臺、中央電視臺新聞頻道等少數(shù)幾個電視頻道,但在未來可能有更多直播電視臺節(jié)目的需求,如重大體育比賽、大型晚會活動等。因此系統(tǒng)必須能夠方便地添加新的電視頻道。
(3)易上手
之前的機頂盒方案采用的播出設(shè)備為電視機頂盒,操作比較簡單,只需按下頻道切換按鈕即可實現(xiàn)頻道切換。新的播出系統(tǒng)交互方案的設(shè)計不能過于復(fù)雜,必須能讓操作人員盡快上手。
經(jīng)過多種技術(shù)方案的可行性比較和討論,決定采用電視臺總控部門傳輸?shù)腢DP組播多節(jié)目TS流,將信號接入至廣播總控網(wǎng)絡(luò)機房,再通過交換機將節(jié)目流送至10間直播室。每個直播室安裝一臺電腦用于解碼播放節(jié)目流,解出的音視頻信號分別送直播調(diào)音臺和液晶電視,以替換原機頂盒轉(zhuǎn)播方式,該廣播轉(zhuǎn)播電視節(jié)目系統(tǒng)框架如圖1所示。
圖1 廣播轉(zhuǎn)播電視節(jié)目系統(tǒng)框架
(1)節(jié)目播出電腦 該電腦作用是利用播放器軟件播放TS節(jié)目流。為了能夠方便地進行頻道切換,需要配置一個合適的切換程序。此外,為了最大程度避免誤操作,決定使用獨立的數(shù)字小鍵盤來進行切換控制。
(2)電視機頂盒 保留原電視機頂盒作為備路方案,當(dāng)主路節(jié)目播出電腦出現(xiàn)故障時可作為備份信號,這樣也提高了廣播轉(zhuǎn)播電視頻道的播出安全性。
(3)調(diào)音臺 節(jié)目播出電腦播放器以及機頂盒輸出的音頻信號進入調(diào)音臺,分別作為音頻播出的主路和備路信號,調(diào)音后作為最終節(jié)目播出。
(4)液晶電視 接收電腦播放器及機頂盒的視頻信號,用于輔助監(jiān)看。
整個電視節(jié)目轉(zhuǎn)播系統(tǒng)核心包括兩個部分,第一是對節(jié)目播出電腦的配置,包括播放器配置和切換軟件的開發(fā);第二是在接入節(jié)目播出電腦輸出的音頻后,廣播直播間調(diào)音臺的設(shè)置調(diào)整。
對于播放器的需求一是需要支持多節(jié)目UDP TS流的播放以及節(jié)目切換,二是穩(wěn)定性好,能夠在視音頻正常的情況下連續(xù)播放高清碼流。
節(jié)目播出電腦的操作系統(tǒng)采用性能較穩(wěn)定的Linux發(fā)行版Ubuntu 16.04系統(tǒng)。在ubuntu系統(tǒng)下測試了幾款較為流行的播放器,包括vlc、mplayer、smplayer。測試內(nèi)容包括是否支持對UDP TS流的播放、多節(jié)目流的選擇功能、視音頻正常情況下的連續(xù)播放時長。Ubuntu平臺下的多播放器測試結(jié)果見表1。
表1 Ubuntu平臺下的多播放器測試結(jié)果
(1)UDP TS流播放 三款播放器均支持播放UDP協(xié)議的TS節(jié)目流。
(2) 多頻道選擇 由于總控輸出的UDP流為多節(jié)目的TS流,即一個地址包含多個節(jié)目,因此需要播放器支持以參數(shù)選擇的方式打開某個地址中特定頻道的功能。vlc和mplayer均有參數(shù)支持選擇頻道,但是smplayer無法選擇播放流中的指定節(jié)目,且會出現(xiàn)視音頻誤匹配的情況,即出現(xiàn)播放節(jié)目1的視頻和節(jié)目2的音頻的情況。
(3)連續(xù)正常播放時長 由于涉及播出,播放器的穩(wěn)定性是一個非常重要的指標(biāo)。在測試中,vlc(v2.0.4)比較穩(wěn)定,vlc(v2.2.2)在播放一天左右后會出現(xiàn)未知原因的音頻丟失情況,mplayer播放器在連續(xù)播放3天后出現(xiàn)了卡頓、無聲音的情況,而包括smplayer和其他未列舉的播放器未得到更好的測試結(jié)果。需要說明的是在測試vlc更新版本軟件(v3.0.2)也出現(xiàn)了音頻丟失現(xiàn)象,在此不予列舉。綜上所述,最終本系統(tǒng)的播放器選用v2.0.4版的vlc播放器。在實際使用時,需要設(shè)置系統(tǒng)策略定期重啟電腦,避免可能因播放器長時間播放,出現(xiàn)內(nèi)存泄漏導(dǎo)致死機的情況。
操作人員對節(jié)目播出電腦的操作主要是電視頻道的切換,為了方便操作人員的操作,同時最大程度地降低誤操作的可能性,放棄了傳統(tǒng)的全鍵盤和鼠標(biāo)的操作,改為使用獨立的數(shù)字小鍵盤進行操作,配合切換軟件,可以快速切換各頻道。
切換軟件主要功能實現(xiàn)包括以下方面:
(1)查詢并獲取小鍵盤設(shè)備按鍵事件
在linux系統(tǒng)下,對于鼠標(biāo)、鍵盤等輸入設(shè)備的操作會在系統(tǒng)中產(chǎn)生input事件,捕獲這一事件就能判斷出鼠標(biāo)鍵盤的具體操作。要對事件進行捕獲,首先在路徑/proc/bus/input/device下找到數(shù)字小鍵盤對應(yīng)的event編號,如圖2所示Name為“SEM USB Keyboard”的設(shè)備即為所使用的小鍵盤,其對應(yīng)event編號為event13。然后操作鍵盤時讀取其在路徑/dev/input下對應(yīng)的節(jié)點/dev/input/event13,即可獲取鍵盤按鍵信息,包括按鍵碼和事件類型。按鍵碼是用于標(biāo)識鍵盤上每個按鍵的標(biāo)號,按鍵事件包括按下和釋放。捕獲按鍵碼和按鍵事件類型后就可以設(shè)定邏輯觸發(fā)執(zhí)行預(yù)先寫好的播放器腳本。
(2)節(jié)目播放
VLC播放器支持命令行啟動,并可同時添加各種需要的參數(shù)。在本項目中,當(dāng)切換軟件捕獲按鍵命令后,啟動vlc播放器,需要指定以下參數(shù):①碼流UDP地址,即總控發(fā)出的UDP TS組播流地址;② 節(jié)目號,由于源碼流為多節(jié)目TS流,需要指定播放其中的哪一套節(jié)目,由參數(shù)“--program”指定;③ 全屏顯示,由參數(shù)“--fullscreen”控制。
(3)小鍵盤開關(guān)
使用以上鍵盤監(jiān)聽的方法進行按鍵監(jiān)聽識別,即使在小鍵盤功能(Num Lock)關(guān)閉的情況下也能正常運作。為了確保操作員是在小鍵盤usb連接正常時進行操作,規(guī)定必須打開(Num Lock)功能后才能操作。在技術(shù)實現(xiàn)方面,監(jiān)聽到按鍵時先讀取Num Lock狀態(tài),在Num Lock打開的前提下才會對按鍵進行進一步的功能響應(yīng)。
(4)小鍵盤斷線重連
圖2 數(shù)字小鍵盤在系統(tǒng)中的設(shè)備信息
在意外情況下,小鍵盤的usb連接可能會因為外部原因被斷開。因此在切換軟件中需設(shè)置邏輯檢測小鍵盤是否連接上系統(tǒng),方法是在包含輸入設(shè)備信息的系統(tǒng)路徑/proc/bus/input/device中查找是否包含小鍵盤信息,如果未檢測到設(shè)備,則在交互界面上輸出提示信息,間隔一段時間后繼續(xù)檢測,直到檢測到設(shè)備才開始監(jiān)聽按鍵邏輯。
按鍵監(jiān)聽軟件使用交互采用終端界面,如圖3所示。
圖3 按鍵響應(yīng)程序界面
節(jié)目播出電腦音頻輸出接口為SPDIF,經(jīng)過接口轉(zhuǎn)換后通過音頻數(shù)字線纜接入調(diào)音臺的數(shù)字輸入接口模塊上。因為原機頂盒的信號保留,所以需要在調(diào)音臺上增加A/B鍵切換邏輯,用于兩路信號的切換。
在用調(diào)音臺有兩種型號分別是RM4200D和RX52,在功能使用上略有區(qū)別。
3.3.1 RM4200D
DHD RM4200D調(diào)音臺有自身研發(fā)專用的控制軟件TOOLBOX4,可對調(diào)音臺進行個性化設(shè)置,十分簡潔和便利。將電腦與調(diào)音臺通過網(wǎng)線連接,在電腦上打開TOOLBOX4控制軟件。
首先,在DSP frameI/O將TV推流解碼電腦音頻輸入定義為TV,機頂盒音頻輸入定義為JDH,在fader channels里加入CH32 TV和CH10 JDH。
如圖4所示。
在console里,點擊需設(shè)置功能的調(diào)音臺控制面,選擇兩個RM420-012模塊的空白鍵(地址碼#C11),分別定義為TV和JDH并選擇好各自對應(yīng)的音源。
圖4 DSP frameI/O(左)及fader channels(右)中的設(shè)置
其次,是給這兩個定義好的按鍵設(shè)置邏輯功能,實現(xiàn)A/B鍵切換的功能。以在第9路推子上實現(xiàn)A/B切換為例,在logic systemlogic function里增加兩個判斷邏輯量SEL TV和SEL JDH,同時在右側(cè)的設(shè)置框里修改設(shè)置,這里面增加了一條FS Fader 9低電平的條件,意思是只有當(dāng)?shù)?路推子是未推起的狀態(tài)時才能實現(xiàn)切換,目的是防止誤操作,最后,在Edit script界面里編輯一段8位16進制數(shù),圖 5 所 示 是 SEL TV 的 腳 本 110D0000, 6, 00, 08, 00,20, 00, 00,其中的 6代表 6 選 1,08 代表推子序號為第9路推子,20為16進制,代表輸入調(diào)音臺的信號源序號即第32路CH32 TV,按下Select…鍵選擇源為LF SEL TV。同樣的設(shè)置SEL JDH的腳本為110D0000, 6, 00, 08, 00, 0A, 00, 00。 至 此,RM4200調(diào)音臺A/B鍵切換功能實現(xiàn)。
圖5 Logic Function(左)及Edit Script(右)中的設(shè)置
3.3.2 RX52
RX52調(diào)音臺系列是DHD公司在RM4200系列調(diào)音臺基礎(chǔ)上進行了升級和改進后的產(chǎn)品,從硬件架構(gòu)、DSP處理能力、軟件控制等方面與RM4200系列相比,都更加簡潔、強大和穩(wěn)定,在A/B鍵切換功能設(shè)置上就能體現(xiàn)出來。
RX52調(diào)音臺控制軟件為TOOLBOX8。首先,在I/O overview里將TV推流解碼電腦音頻輸入定義為TV,機頂盒音頻輸入定義為JDH,在fader channels里加入CH41 TV和CH9 JDH。
其次,在console里,點擊需設(shè)置功能的調(diào)音臺控制,選擇兩個模塊空白鍵,分別定義為TV和JDH,并選擇好各自對應(yīng)的音源fader channel,function…里選擇 Direct input select,Act…里選擇on fader fader 9,同樣選擇在第9路推子上做切換。
至此,RX52的A/B鍵切換也設(shè)置完畢,可以明顯看出,和RM4200D調(diào)音臺相比,RX52的設(shè)置簡便了許多。
此次廣播直播室電視轉(zhuǎn)播系統(tǒng)的改造,改變了原有模式信號源為單一外來信號的缺點。通過新增一路內(nèi)部信號通路,使得信號源更穩(wěn)定,即使出現(xiàn)問題也可以追根溯源。同時,新增系統(tǒng)與原機頂盒播出系統(tǒng)形成主備,從而加強了廣播播出的安全性。
圖6 RX52的console設(shè)置