高 偉
呼和浩特廣播電視臺 內(nèi)蒙古 呼和浩特市 010011
隨著高清電視節(jié)目制作的復(fù)雜化、多樣化,視頻節(jié)目越來越大,30分鐘的標(biāo)清節(jié)目大小約為500M,而30分鐘高清節(jié)目約為1~2G,4K節(jié)目的大小則超過3G。所以傳統(tǒng)的單臺服務(wù)器對一個(gè)時(shí)間線的節(jié)目合成所需要的時(shí)間越來越長,效率越來越低下,已經(jīng)無法滿足高清節(jié)目和4K節(jié)目生產(chǎn)的需求。呼和浩特廣播電視臺建設(shè)了分布式合成服務(wù)器集群,通過把單條合成任務(wù)拆分為多個(gè)子任務(wù),多臺合成服務(wù)器同時(shí)合成各個(gè)子任務(wù)的方式,來縮短單條節(jié)目任務(wù)的合成時(shí)間,從而提高視頻節(jié)目合成的效率。
分布式合成系統(tǒng)提供7x24小時(shí)的服務(wù),包括三大安全機(jī)制,分別是任務(wù)檢測機(jī)制、故障重試機(jī)制和故障重啟機(jī)制,三大安全機(jī)制保障了系統(tǒng)穩(wěn)定運(yùn)行。系統(tǒng)支持高標(biāo)清之間智能切換,根據(jù)合成目標(biāo)智能切換打包制式,對于緊急任務(wù),可以設(shè)置合成優(yōu)先等級,系統(tǒng)將會優(yōu)先執(zhí)行優(yōu)先級高的任務(wù)。
為了適應(yīng)高清電視節(jié)目高效率合成需求,分布式合成服務(wù)器系統(tǒng)提供智能化網(wǎng)格合成功能,即任務(wù)調(diào)度中心根據(jù)不同的任務(wù)需求統(tǒng)一調(diào)度,集群生成服務(wù)器同時(shí)工作,執(zhí)行節(jié)目的打包生成。系統(tǒng)會根據(jù)節(jié)目信息文件自動進(jìn)行分段拆條,每個(gè)分段使用最優(yōu)的拼接技術(shù)提高合成速率,如圖1分布式打包系統(tǒng)架構(gòu)圖所示。
圖1 分布式打包系統(tǒng)架構(gòu)圖
這種架構(gòu)被設(shè)計(jì)為管理層和業(yè)務(wù)層。管理層主要包括視頻節(jié)目合成任務(wù)的流程管理、策略管理、任務(wù)派發(fā)和狀態(tài)監(jiān)控等功能,含有任務(wù)管理、任務(wù)監(jiān)控和任務(wù)引擎3個(gè)模塊。
業(yè)務(wù)層主要包括提交的視頻節(jié)目任務(wù)的合成、分拆子任務(wù)的合成、符合條件任務(wù)的智能分拆、分拆子任務(wù)的拼接等功能,內(nèi)含任務(wù)分拆、任務(wù)合成和任務(wù)拼接3個(gè)模塊。
任務(wù)分拆策略的主要作用是依據(jù)系統(tǒng)預(yù)先設(shè)置好的分拆原則,將符合分布式合成啟動條件的任務(wù)進(jìn)行分拆,拆成若干子任務(wù)。任務(wù)分拆模塊包含以下功能:
(1)將任務(wù)分拆模塊初始化,判斷任務(wù)分拆模塊是否完成初始化;
(2)啟動合成任務(wù)的分拆服務(wù),判斷是否完成分拆任務(wù);
(3)將任務(wù)分拆結(jié)果返回,釋放任務(wù)分拆模塊資源。
任務(wù)管理模塊根據(jù)任務(wù)需要將分拆任務(wù)分配給任務(wù)分拆模塊;任務(wù)分拆模塊首先對任務(wù)進(jìn)行初始化工作;初始化完成后,任務(wù)分拆模塊在任務(wù)的故事板上調(diào)用系統(tǒng)的非線性編輯插件,獲取故事板不可分拆的段落信息;任務(wù)分拆模塊依照分拆原則將任務(wù)進(jìn)行分拆;任務(wù)分拆模塊把分拆結(jié)果輸入合成子任務(wù)的列表;任務(wù)完成后,將任務(wù)分拆模塊資源釋放。
合成策略的主要作用是將一個(gè)視頻工程文件任務(wù)重新渲染生成為目標(biāo)視音頻文件。合成模塊包括以下功能:
(1)支持各種不同格式的工程文件,滿足各類視音頻素材的合成;
(2)同時(shí)支持高清和標(biāo)清兩種工程文件素材的合成,并根據(jù)需求格式自動進(jìn)行上下變換,支持各類特技和多種字幕的合成;
(3)支持一切編解碼目標(biāo)格式,同時(shí)支持目標(biāo)文件的MD5碼生成;
(4)具有依照優(yōu)先級自動選取合成任務(wù)的功能,具有合成任務(wù)執(zhí)行的進(jìn)度及狀態(tài)的反饋功能。
任務(wù)的拼接策略主要作用是將被分拆成多個(gè)子任務(wù)的文件片段,根據(jù)拼接策略重新拼接成為一個(gè)完整的符合格式的視音頻文件,并返回結(jié)果。任務(wù)拼接模塊包括以下功能:
(1)對拼接模塊進(jìn)行初始化,并且判斷任務(wù)拼接模塊是否完成初始化;
(2)執(zhí)行轉(zhuǎn)碼服務(wù),進(jìn)行拼接任務(wù)指令,并判斷拼接任務(wù)是否完成;
(3)返回拼接任務(wù)完成的結(jié)果,并釋放拼接任務(wù)模塊資源。
啟動任務(wù)管理服務(wù),將要執(zhí)行的任務(wù)分派給拼接模塊;任務(wù)拼接模塊對任務(wù)執(zhí)行初始化;初始化完成后,任務(wù)拼接模塊依照設(shè)置好的順序依次讀取生成的子任務(wù)文件;任務(wù)拼接模塊依據(jù)合成任務(wù)所需的目標(biāo)格式,對所有生成好的子任務(wù)文件執(zhí)行拼接;完成拼接后,任務(wù)拼接模塊將執(zhí)行結(jié)果回執(zhí)給任務(wù)管理服務(wù);所有任務(wù)完成后,釋放拼接模塊資源。
電視節(jié)目視音頻的編碼和解碼算法通常比較復(fù)雜,轉(zhuǎn)碼處理會消耗較長的時(shí)間。特別是對于高清電視節(jié)目視頻來說,需要處理的數(shù)據(jù)量約為標(biāo)清的5倍,為降低壓縮碼率往往采用一些算法更為復(fù)雜的編碼格式,因此提高高清轉(zhuǎn)碼的效率是目前需要解決的突出問題。
設(shè)計(jì)的關(guān)鍵問題是,如何高效率、高質(zhì)量的完成海量的高清素材的格式轉(zhuǎn)換。為此增加了分布式轉(zhuǎn)碼和分布式技審功能,可以有效利用系統(tǒng)資源,解決高清素材轉(zhuǎn)碼,提高轉(zhuǎn)碼效率。
分布式轉(zhuǎn)碼系統(tǒng)包括管理者(Manager)和執(zhí)行者(Actor)兩部分,其中管理者提供轉(zhuǎn)碼任務(wù)的調(diào)度資源分配服務(wù),執(zhí)行者提供轉(zhuǎn)碼運(yùn)算的執(zhí)行服務(wù)。轉(zhuǎn)碼中心接到任務(wù)后,首先由管理者將任務(wù)拆分為若干條子任務(wù),每個(gè)子任務(wù)對源素材的一個(gè)片段提供轉(zhuǎn)碼服務(wù);然后管理者根據(jù)每個(gè)片段的時(shí)間先后順序,把子任務(wù)依次分配到當(dāng)前空閑的執(zhí)行者上,由執(zhí)行者將這些片段完成轉(zhuǎn)碼并生成目標(biāo)所需的壓縮格式的臨時(shí)文件;最后所有臨時(shí)文件通過文件合并服務(wù)生成轉(zhuǎn)碼目標(biāo)所需文件。
為了提高分拆效率,轉(zhuǎn)碼中心系統(tǒng)中對任務(wù)的拆分方式做了優(yōu)化處理,使用了更高效率的分拆策略,即將一條任務(wù)拆分成多個(gè)小片段,拆分的片段數(shù)量遠(yuǎn)大于執(zhí)行者的數(shù)量。任務(wù)下發(fā)根據(jù)片段生成的時(shí)間先后順序,分發(fā)給所有的執(zhí)行者。管理者全程監(jiān)控執(zhí)行者的工作狀態(tài),發(fā)現(xiàn)有空閑的執(zhí)行者就將新任務(wù)分發(fā)過去,直至所有子任務(wù)全部執(zhí)行完畢。
隨著電視的發(fā)展,對電視節(jié)目制作提出了更高的要求,呼和浩特廣播電視臺通過實(shí)踐,應(yīng)用分布式合成技術(shù),使日常電視節(jié)目和視音頻節(jié)目的制作合成效率提高5倍以上,極大地提高節(jié)目制作效率,使電視臺在相同時(shí)間段里,可以制作完成更多的節(jié)目,有效的保障了電視節(jié)目及時(shí)傳輸和安全播出,做到了快速制作、快速完成、快速發(fā)布,從而適應(yīng)時(shí)效性強(qiáng)、信息量大、傳播速度快的現(xiàn)代媒體發(fā)展趨勢。