GVG 4000與BMD ATEM系列切換臺(tái)協(xié)議轉(zhuǎn)換

一揖闸、前言

????之前寫過一篇老樹開新花-通過Synergy100面板實(shí)現(xiàn)對BMD切換臺(tái)控制的文章揍堕,主要介紹的是如何通過Synergy100切換面板對BMD切換臺(tái)進(jìn)行控制的,當(dāng)時(shí)是剛接觸BMD ATEM系列的SDK開發(fā)汤纸,最終實(shí)現(xiàn)了對BMD ATEM切換臺(tái)PGM衩茸、PST、AUX三條母線的控制贮泞,應(yīng)用上有些粗淺递瑰。

????最近有機(jī)會(huì)做了一個(gè)BMD切換臺(tái)和GVG 4000互轉(zhuǎn)的項(xiàng)目祟牲,基本上把4級(jí)ME的切換臺(tái)功能都用上了,在此總結(jié)加深下印象抖部。

二说贝、BMD ATEM系列切換臺(tái)各功能實(shí)現(xiàn)方法

????此次項(xiàng)目中GVG 4000到ATEM協(xié)議的轉(zhuǎn)換,主要參照BMD ATEM系列切換臺(tái)開發(fā)的SDK文檔以及應(yīng)用案例慎颗,關(guān)于ATEM系列切換臺(tái)的API和接口原理乡恕,以及初期需要的環(huán)境配置,可參照我之前寫的那篇文章俯萎,以下為這次項(xiàng)目中新增的一些功能傲宜。

2.1、獲取切換臺(tái)每級(jí)ME的實(shí)例對象

????參考文檔內(nèi)接口IBMDSwitcherMixEffectBlockIterator夫啊,此接口通過IBMDSwitcher::CreateIterator返回對象函卒,接口中定義Next方法,用來枚舉每級(jí)ME的IBMDSwitcherMixEffectBlock接口對象撇眯,即對該ME操作的對象报嵌。具體代碼如下圖,此方法將每個(gè)IBMDSwitcherMixEffectBlock枚舉出來熊榛,返回一個(gè)枚舉對象锚国,需要使用IBMDSwitcherMixEffectBlock的時(shí)候,只需要按順序拿出玄坦,默認(rèn)排序從ME1~ME N血筑。

????當(dāng)獲取到具體IBMDSwitcherMixEffectBlock的對象后,可通過SetPreviewInput煎楣、SetProgramInput豺总、PerformAutoTransition等方法,對切換臺(tái)當(dāng)前ME進(jìn)行各項(xiàng)正常操作择懂,具體IBMDSwitcherMixEffectBlock接口下的方法有很多园欣,可參考文檔。

圖2.1-IBMDSwitcherMixEffectBlock獲取方法

2.2休蟹、獲取切換臺(tái)所有AUX的實(shí)例對象

????參考文檔內(nèi)接口IBMDSwitcherInputIterator沸枯,此接口通過IBMDSwitcher::CreateIterator返回對象,接口中定義Next方法赂弓,用來返回各類IBMDSwitcherInput對象绑榴,我們從這些返回input對象中,篩選并轉(zhuǎn)換出AUX對象IBMDSwitcherInputAux盈魁,因此需要通過input對象的接口類型來判別翔怎,具體代碼如下,我把所有返回的AUX對象加入了List列表中。

????當(dāng)獲取到AUX對象IBMDSwitcherInputAux之后,可通過SetInputSource方法設(shè)置AUX母線交叉點(diǎn)赤套,詳細(xì)方法使用可參考文檔

圖2.2- IBMDSwitcherInputAux獲取方法

2.3飘痛、獲取每級(jí)ME的上游鍵實(shí)例對象

????BMD ATEM系列切換臺(tái)每級(jí)ME帶4個(gè)上游鍵KEY,同時(shí)切換臺(tái)本身還帶2個(gè)下游鍵DSK容握,上游鍵和下游鍵的獲取方法類似宣脉,此次項(xiàng)目中,我只使用了上游鍵的獲取方法剔氏。

????參考文檔內(nèi)接口IBMDSwitcherKeyIterator塑猖,此接口通過IBMDSwitcherMixEffectBlock::CreateIterator返回對象,接口中定義Next方法谈跛,用來返回IBMDSwitcherKey對象羊苟,BMDSwitcherKey對象中,可通過setOnAir方法設(shè)置KEY鍵的上下感憾,也可通過getOnAir方法獲取目前KEY鍵的狀態(tài)蜡励,具體代碼如下,我使用了枚舉器將每級(jí)ME的KEY都放進(jìn)去阻桅,再供調(diào)用凉倚。

圖2.3- IBMDSwitcherKey獲取方法

2.4、獲取宏命令控制對象

????BMD ATEM系列切換臺(tái)可在切換臺(tái)內(nèi)存取本地宏命令鳍刷,也可以供外部調(diào)用占遥。參考文檔內(nèi)IBMDSwitcher接口俯抖,宏命令控制接口對象IBMDSwitcherMacroControl可通過IBMDSwitcher轉(zhuǎn)換實(shí)現(xiàn)输瓜,它本身就是IBMDSwitcher接口的一個(gè)子接口。具體代碼如下圖芬萍,當(dāng)獲取到IBMDSwitcherMacroControl接口對象時(shí)尤揣,可通過Run方法運(yùn)行宏命令,也可通過Record方法記錄宏命柬祠,詳細(xì)方法很多北戏,可以參考文檔。

圖2.4.1-聲明對象
圖2.4.2-接口轉(zhuǎn)換
圖2.4.3-宏命令調(diào)用

2.5漫蛔、設(shè)置每級(jí)ME的轉(zhuǎn)換方式

????ME級(jí)的轉(zhuǎn)換指的是Preview到Program的畫面轉(zhuǎn)換方式嗜愈,主要有WIPE、MIX莽龟、DVE三種蠕嫁,具體使用IBMDSwitcherTransitionParameters這個(gè)接口,此接口對象需要通過IBMDSwitcherMixEffectBlock實(shí)例對象進(jìn)行轉(zhuǎn)換毯盈,當(dāng)獲取到IBMDSwitcherTransitionParameters接口對象后剃毒,再通過SetNextTransitionStyle方法,設(shè)置需要轉(zhuǎn)換的方法,具體代碼如下赘阀,bmdSwitcherTransitionStyleMix益缠、bmdSwitcherTransitionStyleWipe等為固態(tài)參數(shù)。

圖2.5.1-設(shè)置ME MIX方法
圖2.5.2-設(shè)置ME WIPE方法

2.6基公、設(shè)置每級(jí)ME內(nèi)轉(zhuǎn)換幀率

????ME內(nèi)的轉(zhuǎn)換幀率指的時(shí)Preview到Program的畫面轉(zhuǎn)換時(shí)間幅慌,以幀為精確度,WIPE和MIX模式下酌媒,有不同的轉(zhuǎn)換幀率設(shè)置方式欠痴,我們先需要通過IBMDSwitcherTransitionParameters獲取當(dāng)前ME級(jí)的轉(zhuǎn)換方式,再通過IBMDSwitcherTransitionMixParameters或者IBMDSwitcherTransitionWipeParameters設(shè)置對應(yīng)的轉(zhuǎn)換幀率秒咨。

? ??IBMDSwitcherTransitionParameters這個(gè)接口獲取方式上文講過喇辽,需要通過此接口下的GetNextTransitionStyle方法,獲取并判定當(dāng)前時(shí)MIX雨席、WIPE菩咨、DVE中的哪種;IBMDSwitcherTransitionMixParametersIBMDSwitcherTransitionWipeParameters接口陡厘,需要通過IBMDSwitcherMixEffectBlock實(shí)例對象進(jìn)行轉(zhuǎn)換抽米,具體代碼如下圖,當(dāng)獲取到MIX或者WIPE接口后糙置,再通過SetRate方法云茸,設(shè)置幀率。

圖2.6-ME 幀率轉(zhuǎn)換方法

三谤饭、GVG 4000切換臺(tái)協(xié)議分析

3.1标捺、TCP端口轉(zhuǎn)虛擬串口

????GVG 4000主要是通過串口進(jìn)行控制,而BMD ATEM切換臺(tái)是通過TCP端口進(jìn)行控制揉抵,為了方便協(xié)議轉(zhuǎn)換上的對接亡容,我通過USR-VCOM這個(gè)軟件將TCP端口虛擬化為一個(gè)串口接入GVG 4000,具體方式如下圖冤今,TCP Server端端口20108闺兢,映射為虛擬串口COM1,GVG 4000連虛擬COM1端口以后戏罢,所有都會(huì)被20108這個(gè)TCP Server端口接收屋谭。

圖3.1TCP端口轉(zhuǎn)虛擬串口軟件

3.2、GVG 4000協(xié)議數(shù)據(jù)說明

????GVG 4000數(shù)據(jù)結(jié)構(gòu)跟GVG 100/200類似龟糕,之前有過之前Syner100的開發(fā)案例桐磁,分析起來很快,所有數(shù)據(jù)交互均以16進(jìn)制顯示。

握手方式:發(fā)送-30 02,返回-84 03 00 EC 01翩蘸。

ME1-ME4 PGM母線直切:發(fā)送-03 (00 01 02 03)C1 XX于樟,其中第二位數(shù)據(jù)從00~03分別代表ME1~ME4,第四位數(shù)據(jù)XX表示交叉點(diǎn)咒循。

ME1-ME4 PST母線直切:發(fā)送-03 (00 01 02 03)C2 XX,其中第二位數(shù)據(jù)從00~03分別代表ME1~ME4泄鹏,第四位數(shù)據(jù)XX表示交叉點(diǎn)。

設(shè)定Transform方式位MIX或者WIPE:發(fā)送-04 (00 01 02 03)C6 02 (06 08)秧耗,其中第二位數(shù)據(jù)從00~03分別代表ME1~ME4备籽,第五位數(shù)據(jù)06表示MIX方式,08表示W(wǎng)IPE方式分井。

設(shè)定ME級(jí)的幀率:發(fā)送-05 (00 01 02 03) CC 80 00 XX车猬,其中第二位數(shù)據(jù)從00~03分別代表ME1~ME4,第六位數(shù)據(jù)XX表示設(shè)置幀率的數(shù)值尺锚。

AUX母線交叉點(diǎn)設(shè)置:發(fā)送-03 (40 42 44 46 48 4A)C0 XX,其中第二位數(shù)據(jù)從40~4A分別代表AUX1~AUX6珠闰,依次類推,第四位數(shù)據(jù)XX表示AUX交叉點(diǎn)設(shè)置瘫辩。

下游鍵DSK上下鍵設(shè)置:發(fā)送-04 00 02 (23 25 27 29)伏嗜,其中第四位數(shù)據(jù)23~29分別代表DSK1~DSK4的上下鍵。類似于一個(gè)出發(fā)按鈕伐厌。

宏命令調(diào)用:發(fā)送-04 00 DB 00 XX承绸,其中第五位數(shù)據(jù)XX表示需要調(diào)取宏命令的號(hào)數(shù)。

四挣轨、總結(jié)

????BMD ATEM系列切換臺(tái)以其功能強(qiáng)大军熏,性價(jià)比高的特點(diǎn),目前在廣電卷扮、教育荡澎、影視上都有很多應(yīng)用,而且不管是最便宜的ATEM Mini,還是到ATEM 8K切換臺(tái)画饥,底層的SDK調(diào)用都是一樣的衔瓮,這種開放性也衍生出很多可行性浊猾,尤其是在集中控制抖甘,未來可以嘗試考慮構(gòu)建一個(gè)以BMD ATEM切換臺(tái)為核心的小型集控播出體系,筆者精力有限葫慎,只嘗試了SDK開發(fā)包中的一小部分功能衔彻,以后有機(jī)會(huì)再補(bǔ)充。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偷办,一起剝皮案震驚了整個(gè)濱河市艰额,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌椒涯,老刑警劉巖柄沮,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡祖搓,警方通過查閱死者的電腦和手機(jī)狱意,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯欧,“玉大人详囤,你說我怎么就攤上這事「渥鳎” “怎么了藏姐?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長该贾。 經(jīng)常有香客問我羔杨,道長,這世上最難降的妖魔是什么杨蛋? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任问畅,我火速辦了婚禮,結(jié)果婚禮上六荒,老公的妹妹穿的比我還像新娘护姆。我一直安慰自己,他們只是感情好掏击,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布卵皂。 她就那樣靜靜地躺著,像睡著了一般砚亭。 火紅的嫁衣襯著肌膚如雪灯变。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天捅膘,我揣著相機(jī)與錄音添祸,去河邊找鬼。 笑死寻仗,一個(gè)胖子當(dāng)著我的面吹牛刃泌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播署尤,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼耙替,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了曹体?” 一聲冷哼從身側(cè)響起俗扇,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箕别,沒想到半個(gè)月后铜幽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滞谢,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年除抛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爹凹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡镶殷,死狀恐怖禾酱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绘趋,我是刑警寧澤颤陶,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站陷遮,受9級(jí)特大地震影響滓走,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帽馋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一搅方、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绽族,春花似錦姨涡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至检诗,卻和暖如春匈仗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逢慌。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工悠轩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人攻泼。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓火架,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坠韩。 傳聞我的和親對象是個(gè)殘疾皇子距潘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容