1 引言
蘇州廣播電視總臺(tái)演播室集控系統(tǒng)從正式投入使用至今已經(jīng)過(guò)了4年多的時(shí)間,期間臺(tái)內(nèi)曾多次對(duì)Mosart集控系統(tǒng)進(jìn)行定向開(kāi)發(fā)和擴(kuò)展,如自研發(fā)演播室軌道機(jī)器人與集控的對(duì)接、演播室攝像機(jī)鏡頭與集控的對(duì)接、視頻矩陣與集控的對(duì)接等,目前基本滿足了演播室各檔欄目的制作與直播工作。
但是隨著與集控系統(tǒng)對(duì)接的深入,以及節(jié)目制作需求上的擴(kuò)展,導(dǎo)致原先安裝在集控服務(wù)器上的自研發(fā)軟件過(guò)多,不管是在日常維護(hù)還是服務(wù)器運(yùn)行上,都存在一定的安全隱患。因此,此次項(xiàng)目通過(guò)Raspberry Pi系統(tǒng)對(duì)Mosart服務(wù)器進(jìn)行了優(yōu)化和擴(kuò)展,提高了集控服務(wù)器的運(yùn)行效率和安全性。
2 Mosart集控系統(tǒng)擴(kuò)展方案設(shè)計(jì)
2.1 Mosart集控系統(tǒng)介紹

Mosart集控系統(tǒng)連接框圖如圖1所示,整個(gè)集控系統(tǒng)的連接為播控層,服務(wù)器層和演播室設(shè)備層。Mosart播控層主要負(fù)責(zé)對(duì)設(shè)備操作界面的顯示,集控表單的構(gòu)建和播出,主要面向集控系統(tǒng)操作人員,Mosart播控支持對(duì)主備Mosart服務(wù)器的連接和切換,支持心跳連接和多人操作模式;Mosart服務(wù)器層作為演播室所有設(shè)備的接入層,能夠?qū)崟r(shí)對(duì)接切換臺(tái)、視頻服務(wù)器、調(diào)音臺(tái)、文稿系統(tǒng),并且互為主備,能夠?qū)崿F(xiàn)主備服務(wù)器之間快速倒換;演播室設(shè)備層是演播室系統(tǒng)的核心,直播演播室的設(shè)備之間互為主備冗余關(guān)系,同時(shí)演播室設(shè)備層的操控和Mosart播控層的操控互不干擾,即集控系統(tǒng)接入不影響演播室設(shè)備的手動(dòng)操作。
雖然Mosart集控系統(tǒng)在設(shè)計(jì)之初考慮到了對(duì)演播室各類(lèi)設(shè)備的連接和控制,但是演播室設(shè)備的控制協(xié)議存在變更和升級(jí)的過(guò)程,集控不可能全部覆蓋所有設(shè)備的操作,因此最直接的方式就是在每臺(tái)集控服務(wù)器層部署第三方協(xié)議轉(zhuǎn)換軟件,通過(guò)讀取集控指定的控制協(xié)議,轉(zhuǎn)換成演播室內(nèi)設(shè)備的控制協(xié)議。隨著被控的設(shè)備不斷加入,協(xié)議轉(zhuǎn)換軟件也在增加,這導(dǎo)致不僅在設(shè)備日常維護(hù)上增加了復(fù)雜度(重啟集控服務(wù)時(shí)需要重啟對(duì)應(yīng)的協(xié)議轉(zhuǎn)換),而且還會(huì)占用部分集控服務(wù)器資源,對(duì)集控系統(tǒng)的穩(wěn)定性上也存在一定隱患,因此需要對(duì)集控系統(tǒng)進(jìn)行瘦身,同時(shí)制定一套更集中、安全的擴(kuò)展方案。
2.2 Mosart集控系統(tǒng)擴(kuò)展方案
2.2.1 Raspberry Pi系統(tǒng)的接入
Raspberry Pi簡(jiǎn)稱RasPi,中文名為樹(shù)莓派,是大小只有信用卡大小的微型電腦,其系統(tǒng)基于Linux,外部包含有正常計(jì)算機(jī)的各類(lèi)接口,方便開(kāi)發(fā)人員進(jìn)行定向開(kāi)發(fā)和安裝,非常適合作為集控協(xié)議轉(zhuǎn)換的服務(wù)器。
此次項(xiàng)目中RasPi系統(tǒng)作為單獨(dú)的中間層,介于集控服務(wù)器層和演播室設(shè)備層之間,RasPi系統(tǒng)連接如圖2所示。目前RasPi系統(tǒng)開(kāi)啟VDCP轉(zhuǎn)AMP協(xié)議和SW-P-08轉(zhuǎn)Leitch協(xié)議,前者主要用于實(shí)現(xiàn)Mosart控制GV T2視頻服務(wù)器,后者主要用于控制Harris視頻矩陣,VDCP和SW-P-08都是Mosart內(nèi)部自帶的協(xié)議。RasPi系統(tǒng)能夠同時(shí)連接Mosart主備兩臺(tái)服務(wù)器,能夠自動(dòng)重連Mosart服務(wù)器和演播室設(shè)備,并且RasPi系統(tǒng)內(nèi)將協(xié)議轉(zhuǎn)換軟件定制成系統(tǒng)服務(wù),支持開(kāi)機(jī)自動(dòng)啟動(dòng),能通過(guò)SSH或者VNC等遠(yuǎn)程方式對(duì)服務(wù)進(jìn)行重啟操作。RasPi系統(tǒng)基于Linux,其穩(wěn)定性要高于Windows,并且協(xié)議轉(zhuǎn)換通過(guò)服務(wù)的方式部署在系統(tǒng)內(nèi),降低了系統(tǒng)內(nèi)部開(kāi)發(fā),提高了穩(wěn)定性。

2.2.2 VDCP轉(zhuǎn)AMP實(shí)現(xiàn)對(duì)T2服務(wù)器的控制
VDCP協(xié)議原理及特點(diǎn)
VDCP協(xié)議全稱Video Disk Communications Protocol,視頻磁盤(pán)通訊協(xié)議,該協(xié)議實(shí)時(shí)性強(qiáng),能夠支持RS422、TCP/IP等多種傳輸方式,VDCP協(xié)議數(shù)據(jù)格式如表1。

STX:表示數(shù)據(jù)包的開(kāi)始位,固定位0x02。
BC:Byte Count,統(tǒng)計(jì)BC位之后到CHECKSUM位之前總的數(shù)據(jù)位數(shù)。
TYPE/CMD-1:包含一部分命令類(lèi)型和設(shè)備地址。
CMD-2:對(duì)應(yīng)CMD-1后的補(bǔ)充命令,和CMD-1共同確定該條命令的功能和定義。
DATA-1~DATA-N:需要操作的命令數(shù)據(jù)。
CHECKSUM:數(shù)據(jù)校驗(yàn)位,BC位到CHECKSUM位之間數(shù)據(jù)總和的二進(jìn)制補(bǔ)碼,取二進(jìn)制補(bǔ)碼的低8位。
VDCP針對(duì)不同的發(fā)送命令有不同的回復(fù)方式,VDCP命令具有實(shí)時(shí)性的特點(diǎn),如果發(fā)送的命令沒(méi)有收到答復(fù),或者答復(fù)錯(cuò)誤,則發(fā)送端就會(huì)報(bào)錯(cuò),等待重新建立連接。如應(yīng)答式的命令,則需要回復(fù)ACK(0x04)或者NAK(0x05),如非應(yīng)答式命令,需按照協(xié)議標(biāo)準(zhǔn)數(shù)據(jù)格式,回復(fù)對(duì)應(yīng)的數(shù)據(jù)命令。
AMP協(xié)議原理及特點(diǎn)
AMP協(xié)議全稱Advanced Media Protocol,最早由GV公司開(kāi)發(fā)定制,主要應(yīng)用在GV相關(guān)產(chǎn)品,如K2、T2視頻服務(wù)器上,最大支持64k長(zhǎng)度的字符串,支持RS422、TCP/IP等多種從傳輸方式,AMP協(xié)議數(shù)據(jù)格式如下表。

CMD-1:發(fā)送數(shù)據(jù)命令的類(lèi)型。
CMD-2:對(duì)CMD-1命令的補(bǔ)充,和CMD-1共同確定該條命令的功能和定義。
Actual BC1:統(tǒng)計(jì)BC1后面到CHECKSUM之前所有數(shù)據(jù)的長(zhǎng)度。
Actual BC2:統(tǒng)計(jì)BC2后面到CHECKSUM之前所有數(shù)據(jù)的長(zhǎng)度,Actual BC2=Actual BC1-2.
DATA-1~DATA-N:需要操作的命令數(shù)據(jù)。
CHECKSUM:數(shù)據(jù)校驗(yàn)位,校驗(yàn)方式同VCDP校驗(yàn)一樣。
當(dāng)使用TCP/IP方式進(jìn)行AMP命令傳輸時(shí),協(xié)議內(nèi)規(guī)定TCP或者UDP連接端口號(hào)是3811,命令數(shù)據(jù)發(fā)送時(shí)省去校驗(yàn)位,并添加命令行前綴,如CRAT(建立連接)、CMDS(播控命令),STOP(暫停)。
AMP協(xié)議在TCP/IP的傳輸上,結(jié)構(gòu)和VDCP協(xié)議類(lèi)似,省去了校驗(yàn)位計(jì)算,并且發(fā)送命令不限制字符長(zhǎng)度和格式,提高了內(nèi)部運(yùn)算處理速度和效率。
VDCP轉(zhuǎn)AMP協(xié)議命令對(duì)應(yīng)

參照VDCP和AMP播控協(xié)議對(duì)照表可知,VDCP和AMP作為目前廣泛應(yīng)用的視頻播控協(xié)議,在命令格式上有許多相似之處,同時(shí)又各有特點(diǎn)。首先VDCP在播出端口號(hào)范圍是1~n,錄制端口號(hào)-1~-n,AMP播出端口2~n,錄制端口號(hào)1,在端口的控制范圍上,VDCP更廣泛;其次VDCP播控中,可設(shè)置心跳連接,每隔固定時(shí)間發(fā)送命令,獲取目標(biāo)設(shè)備ID信息,而AMP協(xié)議不存在心跳連接機(jī)制;同時(shí)VDCP素材ID長(zhǎng)度固定分為8位和16位,而AMP在素材ID的長(zhǎng)度和命名方式上不受限制,更加靈活;最后,AMP在查詢和更新素材方面的效率要高于VDCP,VDCP命令每次固定獲取10條素材,而AMP在獲取第1條素材ID以后,可根據(jù)命令格式,獲取指定數(shù)量素材。
2.2.3 SW-P-08轉(zhuǎn)Leitch實(shí)現(xiàn)對(duì)視頻矩陣的控制
SW-P-08協(xié)議原理及特點(diǎn)
SW-P-08矩陣協(xié)議(General Remote Control Protocol)是目前比較通用的矩陣控制協(xié)議,該協(xié)議提供了一種矩陣外部控制的方法,支持TCP/IP以及串口控制。協(xié)議數(shù)據(jù)格式如下圖3所示,其中SOM為2個(gè)字節(jié)的固定消息頭數(shù)據(jù)0x10和0x02。DATA為消息數(shù)據(jù),包含矩陣控制指令。BTC為DATA域的字節(jié)長(zhǎng)度。CHK為校驗(yàn)和數(shù)據(jù)。EOM為2字節(jié)固定的消息尾數(shù)據(jù)0x10和0x03。

Leitch矩陣協(xié)議原理及特點(diǎn)
Harris矩陣以Telnet的方式登錄,端口號(hào)是21,用戶名為“l(fā)eitch”,登錄密碼“l(fā)eicthadmin”,當(dāng)?shù)卿洺晒σ院?,可以通發(fā)送命令的方式設(shè)置矩陣交叉點(diǎn),控制命令格式為“@...X:<Lvls>/<Dest>,<Src>[:I<ID>]”,其中“@...”為固定命令開(kāi)頭(“...”表示一個(gè)空格),X代表命令類(lèi)型為交叉點(diǎn)設(shè)置命令,Lvls代表矩陣所在層級(jí),Dest和Src代表交叉點(diǎn)目標(biāo)信號(hào)和源信號(hào)編號(hào)(以0號(hào)為第一個(gè))。ID為16進(jìn)制的矩陣ID號(hào)。若要將矩陣的03號(hào)物理輸出端口的信號(hào)源切換為01號(hào)輸入源,則需要發(fā)送的控制命令為“@...X:0/0,2:I40”。
SW-P-08轉(zhuǎn)Leitch實(shí)現(xiàn)方式
我臺(tái)演播室視音頻系統(tǒng)內(nèi),矩陣設(shè)備接入不存在層級(jí)和主備關(guān)系,因此兩類(lèi)協(xié)議轉(zhuǎn)換的發(fā)送命令上,層級(jí)都是0;Harris矩陣的默認(rèn)ID號(hào)經(jīng)過(guò)測(cè)試為40,因此整個(gè)協(xié)議的轉(zhuǎn)換只涉及到源交叉點(diǎn)信息(Mosart集控)的讀取,以及目的交叉點(diǎn)信息(Harris矩陣)的寫(xiě)入。
3 Mosart集控系統(tǒng)擴(kuò)展方案實(shí)現(xiàn)
3.1 協(xié)議轉(zhuǎn)換程序設(shè)計(jì)
3.1.1 VDCP轉(zhuǎn)AMP協(xié)議程序設(shè)計(jì)
轉(zhuǎn)換程序設(shè)計(jì)框圖如圖4所示,RasPi端先跟T2視頻服務(wù)器建立連接,然后再作為服務(wù)端跟Mosart主備服務(wù)器進(jìn)行連接。當(dāng)RasPi端接收到集控發(fā)送的VDCP播控命令后,進(jìn)行判定并轉(zhuǎn)化為相應(yīng)的AMP播控命令發(fā)送給T2,同時(shí)等待T2進(jìn)行播控反饋,當(dāng)接收到反饋后,再轉(zhuǎn)成VDCP命令發(fā)送給主備集控服務(wù)器。
程序設(shè)計(jì)充分考慮的安全和穩(wěn)定性,支持T2視頻服務(wù)器端和Mosart集控服務(wù)器端的斷開(kāi)重連,并把每條播控命令寫(xiě)入RasPi對(duì)應(yīng)日志文件。

3.1.2 VDCP轉(zhuǎn)AMP程序連接測(cè)試
T2視頻服務(wù)器、Mosart集控、RasPi處于同一局域網(wǎng)內(nèi),RasPi的IP地址是172.19.24.222,VDCP播控端口號(hào)是5100,Mosart集控服務(wù)器內(nèi)連接狀態(tài)如圖4,T2 P1通道和T2 P2通道映射到集控系統(tǒng)為通道C和D。

集控系統(tǒng)內(nèi)VDCP協(xié)議建立連接后,素材查詢流程如圖5所示,首先會(huì)建立心跳連接,每隔10秒發(fā)送“0203300701C8”心跳連接命令(Active ID Request命令),AMP不存在對(duì)應(yīng)返回命令,因此直接由RasPi進(jìn)行心跳命令的回復(fù);同時(shí)查詢所有素材ID(IDList命令),當(dāng)獲取到素材ID后,再對(duì)每個(gè)素材進(jìn)行查詢(IDSize Request命令),獲取單個(gè)素材的時(shí)長(zhǎng);最后,VDCP每隔25秒發(fā)送素材更新查詢(ID‘s
Added List/ID’s Deleted List命令),當(dāng)由素材更新時(shí),返回給VDCP更新的素材ID列表,Mosart集控從其緩存中更新素材。

3.1.3 SW-P-08轉(zhuǎn)Leitch協(xié)議程序設(shè)計(jì)
矩陣協(xié)議轉(zhuǎn)換程序設(shè)計(jì)框圖如圖7所示,RasPi首先通過(guò)Telnet方式跟Harris矩陣建立連接并登錄,然后打開(kāi)TCP/IP端口監(jiān)聽(tīng),監(jiān)聽(tīng)并接收Mosart集控端發(fā)送的SW-P-08命令,如果接收到的命令消息頭數(shù)據(jù)和校驗(yàn)位正確,則提交叉點(diǎn)信息,轉(zhuǎn)換為L(zhǎng)eitch格式,并發(fā)送給Harris矩陣,如果消息頭數(shù)據(jù)或校驗(yàn)位接收錯(cuò)誤,則該命令無(wú)效,繼續(xù)等待下一條集控命令。
程序在設(shè)計(jì)時(shí)同樣考慮了日志記錄和自動(dòng)重連,Mosart服務(wù)端和Harris矩陣連接斷開(kāi)或重啟后能夠自動(dòng)連接RasPi上矩陣協(xié)議轉(zhuǎn)換服務(wù)。

3.1.4 SW-P-08轉(zhuǎn)Leitch程序連接測(cè)試
Harris矩陣、Mosart集控、RasPi處于同一局域網(wǎng)內(nèi),矩陣連接測(cè)試如圖8所示,RasPi地址172.19.24.222,SW-P-08協(xié)議接收端口號(hào)5000,當(dāng)RasPi成功與Harris矩陣和Mosart集控建立連接后,長(zhǎng)期保持端口監(jiān)聽(tīng)當(dāng)接收到Mosart集控發(fā)送的交叉點(diǎn)命令后,打印到日志,并顯示“Receive“接收數(shù)據(jù),接收數(shù)據(jù)的消息頭和校驗(yàn)位正確后,發(fā)送Telnet命令到Harris矩陣,并打印到日志,顯示”Telnet命令發(fā)送成功“;經(jīng)過(guò)測(cè)試發(fā)現(xiàn)當(dāng)RasPi端同時(shí)接收到兩條Mosart集控命令后,同樣能夠進(jìn)行快速處理,按照先后順序發(fā)送到Harris矩陣端。

3.2 Raspberry Pi系統(tǒng)內(nèi)服務(wù)部署
RasPi系統(tǒng)基于Linux內(nèi)核,在系統(tǒng)操作和命令上支持Shell腳本語(yǔ)言,同時(shí)為了兼顧程序的移植和后續(xù)維護(hù),開(kāi)發(fā)協(xié)議轉(zhuǎn)換程序時(shí)采用的是輕量化的Python編程語(yǔ)言,協(xié)議轉(zhuǎn)換程序通過(guò)Python編寫(xiě)和編譯后,在通過(guò)Shell腳本語(yǔ)言進(jìn)行服務(wù)部署,將編譯后的協(xié)議轉(zhuǎn)換程序自動(dòng)加入的開(kāi)啟自啟動(dòng)服務(wù)中,具體操作如下。
1.編寫(xiě)Shell可執(zhí)行腳本,該腳本能夠執(zhí)行VDCP轉(zhuǎn)AMP、SW-P-08轉(zhuǎn)Leitch對(duì)應(yīng)的Python程序模塊,VDCP轉(zhuǎn)AMP對(duì)應(yīng)Shell腳本文件為“vdcptrans.sh”, SW-P-08轉(zhuǎn)Leitch對(duì)應(yīng)Shell腳本文件為“ruconvert.sh“。
2.編寫(xiě)開(kāi)機(jī)自啟動(dòng)的服務(wù)類(lèi)型文件,服務(wù)的作用是指向Shell腳本文件并運(yùn)行,服務(wù)文件放置路徑為RasPi系統(tǒng)內(nèi)“/usr/lib/systemd/system/ ”目錄下,兩個(gè)協(xié)議轉(zhuǎn)換對(duì)應(yīng)的服務(wù)文件為“vdcpconvert.service”、“reconvert.service“。
3.打開(kāi)RasPi系統(tǒng)內(nèi)終端控制窗口,使用systemctl命令,啟動(dòng)對(duì)應(yīng)服務(wù),如“pi@raspberry:~ $ sudo systemctl enable vdcptrans.service ”。
4.重啟RasPi系統(tǒng),服務(wù)自動(dòng)啟動(dòng),可以通過(guò)systemctl命令pi@raspberry:~ $ sudo systemctl status vdcptrans.service “查看服務(wù)運(yùn)行狀態(tài)。如圖9為vdcptrans.service服務(wù)運(yùn)行狀態(tài),有”Active:activating(start)“字樣,說(shuō)明服務(wù)運(yùn)行狀態(tài)正常。

3.3 集控系統(tǒng)與演播室設(shè)備相關(guān)配置
安裝RasPi系統(tǒng)作為中間層后,對(duì)于Mosart集控和演播室設(shè)備來(lái)說(shuō),并不需要做額外的配置。對(duì)于Mosart集控,它把需要控制的設(shè)備IP地址以及端口號(hào)指向RasPi系統(tǒng),在集控系統(tǒng)內(nèi),RasPi系統(tǒng)被認(rèn)作矩陣和視頻服務(wù)器設(shè)備;對(duì)于演播室矩陣和視頻服務(wù)器設(shè)備,只需要等待連接并獲取正確的控制命令,演播室設(shè)備不需要關(guān)系它是被什么設(shè)備去控制。RasPi系統(tǒng)作為中間層,也起著“橋梁”的作用,實(shí)現(xiàn)了演播室設(shè)備和Mosart集控的連接,同時(shí)不占用兩邊設(shè)備任何系統(tǒng)資源。
4 結(jié)語(yǔ)
此次通過(guò)RasPi對(duì)Mosart集控的橫向擴(kuò)展,打通了我臺(tái)演播室集控和T2視頻服務(wù)器、Harris矩陣的連接,實(shí)現(xiàn)了將演播室全部設(shè)備融入到全媒體節(jié)目只用的應(yīng)用中,減少了操作人員和操作復(fù)雜度,同時(shí)提高了系統(tǒng)的安全性。
在對(duì)全媒體演播室節(jié)目制作的探索中,筆者也深入了解到了各類(lèi)視頻播控協(xié)議和矩陣協(xié)議的優(yōu)劣,伴隨著廣電全媒體深度融合的繼續(xù)發(fā)展,如何最大化、最有效的利用演播室內(nèi)現(xiàn)有的資源,能夠更有力的助推全媒體節(jié)目在制作的創(chuàng)造與創(chuàng)新。