一種分布式音視頻處理裝置及處理方法
【專利摘要】本發(fā)明涉及一種分布式音視頻文件處理系統(tǒng),包括:輸入處理單元,用于接收源視頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別將所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù)進(jìn)行分割處理;數(shù)個視頻數(shù)據(jù)處理單元,分別用于對經(jīng)分割后的視頻數(shù)據(jù)進(jìn)行處理;數(shù)個音頻數(shù)據(jù)處理單元,分別用于對經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理;輸出處理單元,用于對經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出;調(diào)度單元,用于協(xié)調(diào)所述輸入處理單元、所述數(shù)個視頻數(shù)據(jù)處理單元、所述數(shù)個音頻數(shù)據(jù)處理單元及輸出處理單元的工作。同時,本發(fā)明還提供一種分布式音視頻文件處理方法和一種分布式音視頻文件處理裝置。
【專利說明】一種分布式音視頻處理裝置及處理方法【技術(shù)領(lǐng)域】[0001]本發(fā)明涉及一種利用計算機(jī)或數(shù)據(jù)處理裝置處理數(shù)據(jù)的裝置和方法,尤其涉及一 種利用分布式計算機(jī)或數(shù)據(jù)處理裝置對音視頻文件進(jìn)行處理的裝置和方法。技術(shù)背景[0002]隨著網(wǎng)絡(luò)和文化事業(yè)的發(fā)展,音視頻資源極大豐富,對音視頻文件的處理的需要 也快速增長。[0003]音視頻文件處理的大致流程如下:首先將需處理的音視頻文件解封裝成為視頻幀 序列和音頻幀序列;然后將視頻幀序列和音頻幀序列分別解碼為RAW格式和PCM格式數(shù)據(jù); 對RAW格式和PCM格式數(shù)據(jù)進(jìn)行處理;再將RAW格式和PCM格式的數(shù)據(jù)編碼為所需格式的 音頻幀序列和視頻幀序列;最后將音頻幀序列和視頻幀序列封裝成需要的文件格式。[0004]以上處理是通過計算機(jī)或計算機(jī)構(gòu)成的數(shù)據(jù)處理裝置來完成的,現(xiàn)有的這些計算 機(jī)或數(shù)據(jù)處理裝置是依靠本機(jī)的軟硬件資源來實現(xiàn)對文件的處理。音視頻文件處理的計算 量龐大,對處理裝置的運算能力和存儲資源消耗很大,而且隨著高清音視頻文件的日益增 多和處理需求的不斷增大,依靠單機(jī)進(jìn)行音視頻文件處理的瓶頸問題日益突出,單機(jī)處理 速度慢且容易發(fā)生系統(tǒng)崩潰。即使用戶使用配置很高的計算機(jī)也難以保證處理的速度和穩(wěn) 定程度,尤其無法滿足大批量和時間要求很高的處理任務(wù)。[0005]鑒于現(xiàn)有技術(shù)中存在的以上問題,本發(fā)明提供了一種分布式處理系統(tǒng)。使用多臺 計算機(jī)或處理裝置來實現(xiàn)并行處理,大大減少了處理所需的時間,同時降低了系統(tǒng)的處理 壓力,減少了系統(tǒng)崩潰的可能性。由于使用了完善的監(jiān)測系統(tǒng),處理的可靠性很高,完全可 以滿足對處理質(zhì)量的要求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的第一層面提供一種分布式音視頻文件處理系統(tǒng),包括:輸入處理單元,用 于接收源視頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別將所述 視頻數(shù)據(jù)和所述音頻數(shù)據(jù)進(jìn)行分割處理;數(shù)個視頻數(shù)據(jù)處理單元,分別用于對經(jīng)分割后的 視頻數(shù)據(jù)進(jìn)行處理;數(shù)個音頻數(shù)據(jù)處理單元,分別用于對經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理; 輸出處理單元,用于對經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出;調(diào)度單元,用于協(xié) 調(diào)所述輸入處理單元、所述數(shù)個視頻數(shù)據(jù)處理單元、所述數(shù)個音頻數(shù)據(jù)處理單元及輸出處 理單元的工作。[0007]優(yōu)選地,所述輸入處理單兀具有第一監(jiān)控模塊、第一處理模塊和第一傳輸模塊;各 視頻數(shù)據(jù)處理單元分別具有第二監(jiān)控模塊、第二處理模塊和第二傳輸模塊;各音頻數(shù)據(jù)處 理單元分別具有第三監(jiān)控模塊、第三處理模塊和第三傳輸模塊;所述輸出處理單元具有第 四監(jiān)控模塊、第四處理模塊和第四傳輸模塊;其中,所述第一、第二、第三和第四監(jiān)控模塊分 別與所述調(diào)度單元進(jìn)行通信連接,從所述調(diào)度單元接收相關(guān)指令,并各自將相關(guān)處理單元 的運行狀態(tài)報告給所述調(diào)度單元;所述第一傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,將需要處理的相應(yīng)的視頻數(shù)據(jù)和音頻數(shù)據(jù)分別發(fā)送至各所述第二傳輸模塊和各所述第三傳輸模塊;所述第四傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,接收經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)。
[0008]優(yōu)選地,所述輸入處理單元對所接收的源文件進(jìn)行解封裝,獲得視頻序列和音頻序列,并分別將所述視頻序列和所述音頻序列進(jìn)行分割處理。
[0009]優(yōu)選地,所述輸出處理單元在判斷從各視頻數(shù)據(jù)處理單元和各音頻數(shù)據(jù)處理單元接收到經(jīng)處理后的所有的視頻數(shù)據(jù)和音頻數(shù)據(jù)后,將所接到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行合并,并按照預(yù)定格式進(jìn)行封裝。
[0010]優(yōu)選地,所述調(diào)度單元和所述第一、第二、第三和第四監(jiān)控模塊通過系統(tǒng)配置文件獲取的地址信息進(jìn)行通信。
[0011]優(yōu)選地,所述第一、第二、第三和第四監(jiān)控模塊分別定期地將相應(yīng)處理單元的運行狀態(tài)信息發(fā)送給所述調(diào)度單元;所述調(diào)度單元根據(jù)所述運行狀態(tài)信息維護(hù)系統(tǒng)配置文件,并將更新的系統(tǒng)配置文件分別發(fā)送給所述第一、第二、第三和第四監(jiān)控模塊。
[0012]優(yōu)選地,系統(tǒng)配置文件的內(nèi)容包括所述視頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄和所述音頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄。
[0013]優(yōu)選地,當(dāng)所述視頻數(shù)據(jù)處理單元和所述音頻數(shù)據(jù)處理單元的中一個的處理發(fā)生錯誤時,其相應(yīng)的第二或第三監(jiān)控模塊向所述調(diào)度單元報告該錯誤;所述調(diào)度模塊根據(jù)系統(tǒng)配置文件的設(shè)置確定重新執(zhí)行發(fā)生錯誤的處理或忽略該錯誤。
[0014]優(yōu)選地,所述輸入處理單元獲取所述源視頻文件的解封裝后的視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式,并將所述視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式發(fā)送給相應(yīng)的視頻數(shù)據(jù)處理單元和音頻數(shù)據(jù)處理單元。
[0015]優(yōu)選地,所述輸入處理單元將包含經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量的分割信息發(fā)送給所述輸出處理單元。
[0016]優(yōu)選地,所述分割信息還包括各經(jīng)分割后的視頻數(shù)據(jù)和各經(jīng)分割后的音頻數(shù)據(jù)在源視頻文件中的順序信息。
[0017]優(yōu)選地,所述輸出處理單元根據(jù)所述分割信息建立關(guān)于所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)的映射表,根據(jù)收到的所述順序信息標(biāo)記相應(yīng)的所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)在映射表中所處的位置,以此確定所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量是否相同;當(dāng)所述輸出處理單元判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量相同時,對所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)進(jìn)行整合處理,獲得經(jīng)處理后的音視頻文件;當(dāng)所述輸出處理單元判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量不相同時,基于所述映射表獲得所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),并將相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的缺失信息發(fā)送至所述調(diào)度單元。
[0018]優(yōu)選地,當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示所述輸入處理單元向相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次發(fā)送所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),由相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù) 據(jù)處理單元再次對所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行 處理,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單元。[0019]優(yōu)選地,當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示相應(yīng)的視頻數(shù)據(jù)處理單元 或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次啟動對相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的 音頻數(shù)據(jù)的處理進(jìn)程,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單J Li ο[0020]本發(fā)明的第二層面提供一種音視頻文件處理方法,包括:輸入處理步驟,通過輸入 處理單元接收源視頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別 將所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù)進(jìn)行分割處理;視頻數(shù)據(jù)處理步驟,分別使用數(shù)個視頻數(shù) 據(jù)處理單元對經(jīng)分割后的視頻數(shù)據(jù)進(jìn)行處理;音頻數(shù)據(jù)處理步驟,分別使用數(shù)個音頻數(shù)據(jù) 處理單元對經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理;輸出處理步驟,通過輸出處理單元對經(jīng)處理后 的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出;調(diào)度步驟,通過調(diào)度單元協(xié)調(diào)所述輸入處理單元、 所述數(shù)個視頻數(shù)據(jù)處理單元、所述數(shù)個音頻數(shù)據(jù)處理單元及輸出處理單元的工作。[0021]優(yōu)選地,所述輸入處理步驟包括:解封裝步驟,對所接收的源文件進(jìn)行解封裝,獲 得視頻序列和音頻序列;分割步驟,分別將所述視頻序列和所述音頻序列進(jìn)行分割處理。[0022]優(yōu)選地,在所述輸出處理步驟中,在判斷從各視頻數(shù)據(jù)處理單元和各音頻數(shù)據(jù)處 理單元接收到經(jīng)處理后的所有的視頻數(shù)據(jù)和音頻數(shù)據(jù)后,將所接到的視頻數(shù)據(jù)和音頻數(shù)據(jù) 進(jìn)行合并,并按照預(yù)定格式進(jìn)行封裝。[0023]優(yōu)選地,在所述調(diào)度步驟中,通過系統(tǒng)配置文件獲取的地址信息進(jìn)行通信。[0024]優(yōu)選地,在所述調(diào)度步驟中,相應(yīng)處理單元的運行狀態(tài)信息分別定期地被發(fā)送給 所述調(diào)度單元,所述調(diào)度單元根據(jù)所述運行狀態(tài)信息維護(hù)系統(tǒng)配置文件,并發(fā)送更新的系 統(tǒng)配置文件。[0025]優(yōu)選地,系統(tǒng)配置文件的內(nèi)容包括所述視頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行 狀態(tài)和工作目錄和所述音頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄。[0026]優(yōu)選地,在所述視頻數(shù)據(jù)處理步驟中,當(dāng)所述視頻數(shù)據(jù)處理單元中的一個的處理 發(fā)生錯誤時,或在所述音頻數(shù)據(jù)處理步驟中,當(dāng)所述音頻數(shù)據(jù)處理單元中的一個的處理發(fā) 生錯誤時,向所述調(diào)度單元報告該錯誤;所述調(diào)度模塊根據(jù)系統(tǒng)配置文件的設(shè)置確定重新 執(zhí)行發(fā)生錯誤的處理或忽略該錯誤。[0027]優(yōu)選地,在所述輸入處理步驟中,獲取所述源視頻文件的解封裝后的視頻幀數(shù)、音 頻幀數(shù)和音視頻編碼格式,并將所述視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式發(fā)送給相應(yīng)的 視頻數(shù)據(jù)處理單元和音頻數(shù)據(jù)處理單元。[0028]優(yōu)選地,在所述輸入處理步驟中,將包含經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和經(jīng)分割后 的音頻數(shù)據(jù)的數(shù)量的分割信息發(fā)送給所述輸出處理單元。[0029]優(yōu)選地,所述分割信息還包括各經(jīng)分割后的視頻數(shù)據(jù)和各經(jīng)分割后的音頻數(shù)據(jù)在 源視頻文件中的順序信息。[0030]優(yōu)選地,在所述輸出處理步驟中,根據(jù)所述分割信息建立關(guān)于所述經(jīng)處理后的視 頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)的映射表,根據(jù)收到的所述順序信息標(biāo)記相應(yīng)的所述經(jīng) 處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)在映射表中所處的位置,以此確定所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的 數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量是否相同;當(dāng)判斷所收到的所述經(jīng)處理后的視頻數(shù) 據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng) 分割后的音頻數(shù)據(jù)的數(shù)量相同時,對所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù) 進(jìn)行整合處理,獲得經(jīng)處理后的音視頻文件;當(dāng)判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的 總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割 后的音頻數(shù)據(jù)的數(shù)量不相同時,基于所述映射表獲得所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù) 或/和經(jīng)分割后的音頻數(shù)據(jù),并將相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù) 的缺失信息發(fā)送至所述調(diào)度單元。[0031]優(yōu)選地,當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示所述輸入處理單元向相應(yīng) 的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次發(fā)送所缺失的相應(yīng)的經(jīng)分割后 的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),由相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù) 據(jù)處理單元再次對所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行 處理,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單元。[0032]優(yōu)選地,當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示相應(yīng)的視頻數(shù)據(jù)處理單元 或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次啟動對相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的 音頻數(shù)據(jù)的處理進(jìn)程,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單J Li ο[0033]本發(fā)明的另一層面提供一種分布式音視頻文件處理裝置,包括:數(shù)臺第一服務(wù)器, 分別用于對視頻數(shù)據(jù)進(jìn)行處理;數(shù)臺第二服務(wù)器,分別用于對音頻數(shù)據(jù)進(jìn)行處理;第三服 務(wù)器,用于對經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出;第四服務(wù)器,用于接收源視 頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別將所述視頻數(shù)據(jù)和 所述音頻數(shù)據(jù)進(jìn)行分割處理,以及協(xié)調(diào)所述數(shù)臺第一服務(wù)器、所述數(shù)臺第二服務(wù)器和所述 第三服務(wù)器之間的工作。[0034]優(yōu)選地,每一臺第一服務(wù)器僅運行一個視頻數(shù)據(jù)處理進(jìn)程;每一臺第二服務(wù)器僅 運行一個音頻數(shù)據(jù)處理進(jìn)程。[0035]優(yōu)選地,所述第四服務(wù)器對所接收的源文件進(jìn)行解封裝,獲得視頻序列和音頻序 列,并分別將所述視頻序列和所述音頻序列進(jìn)行分割處理。[0036]優(yōu)選地,所述第三服務(wù)器在判斷從各第一服務(wù)器和各第二服務(wù)器接收到經(jīng)處理后 的所有的視頻數(shù)據(jù)和音頻數(shù)據(jù)后,將所接到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行合并,并按照預(yù)定 格式進(jìn)行封裝。[0037]優(yōu)選地,所述第四服務(wù)器獲取所述源視頻文件的解封裝后的視頻幀數(shù)、音頻幀數(shù) 和音視頻編碼格式,并將所述視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式發(fā)送給相應(yīng)的第一服 務(wù)器和第二服務(wù)器。[0038]優(yōu)選地,所述第四服務(wù)器將包含經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和經(jīng)分割后的音頻數(shù) 據(jù)的數(shù)量的分割信息發(fā)送給所述第三服務(wù)器。[0039]優(yōu)選地,所述分割信息還包括各經(jīng)分割后的視頻數(shù)據(jù)和各經(jīng)分割后的音頻數(shù)據(jù)在 源視頻文件中的順序信息。[0040]優(yōu)選地,所述第三服務(wù)器根據(jù)所述分割信息建立關(guān)于所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)的映射表,根據(jù)收到的所述順序信息標(biāo)記相應(yīng)的所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)在映射表中所處的位置,以此確定所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量是否相同;當(dāng)所述第三服務(wù)器判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量相同時,對所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)進(jìn)行整合處理,獲得經(jīng)處理后的音視頻文件;當(dāng)所述第三服務(wù)器判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量不相同時,基于所述映射表獲得所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),并將相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的缺失信息發(fā)送至所述第四服務(wù)器。
[0041]優(yōu)選地,當(dāng)所述第四服務(wù)器接收到所述缺失信息時,向相應(yīng)的第一服務(wù)器或/和相應(yīng)的第二服務(wù)器再次發(fā)送所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),由相應(yīng)的第一服務(wù)器或/和相應(yīng)的第二服務(wù)器再次對所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述第三服務(wù)器。
[0042]優(yōu)選地,當(dāng)所述第四服務(wù)器接收到所述缺失信息時,指示相應(yīng)的第一服務(wù)器或/和相應(yīng)的第二服務(wù)器再次啟動對相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的處理進(jìn)程,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述第三服務(wù)器。
[0043]本發(fā)明的分布式處理系統(tǒng)和處理方法解決了單機(jī)進(jìn)行處理時的速度瓶頸,可以大大縮短音視頻文件處理所需的時間。由于建立了可靠的任務(wù)分配機(jī)制和糾錯機(jī)制,可以保證其處理結(jié)果的可靠性。同時可以有效避免單機(jī)處理負(fù)荷過高時頻繁出現(xiàn)死機(jī)等故障。其可擴(kuò)展性很好,系統(tǒng)配置靈活,尤其適用于特別龐大的或大量的音視頻文件的處理。
【專利附圖】
【附圖說明】
[0044]圖1為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的輸入處理模塊的結(jié)構(gòu)框圖;
圖3為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的輸出處理模塊的結(jié)構(gòu)框圖;
圖4為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的處理流程示意圖;
圖5為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的處理步驟S5的處理流程圖;
圖6為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的信息文件的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的分割后的音頻和視頻文件的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的處理步驟S6的處理流程圖;
圖9為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的映射表的結(jié)構(gòu)示意圖;
圖10為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的處理步驟S8中的視頻文件處理流程
圖;
圖11為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的處理步驟S8中的音頻文件處理流程
圖;圖12為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的處理步驟S9中輸出處理單元的處理 流程圖;圖13為本發(fā)明實施方式涉及的分布式處理系統(tǒng)的輸出處理單元音、視頻文件接收出 錯時的接收映射表結(jié)構(gòu)示意圖?!揪唧w實施方式】[0045]下面根據(jù)附圖所示實施方式闡述本項發(fā)明。此次公開的實施方式可以認(rèn)為在所有 方面均為例示,不具限制性。本發(fā)明的范圍不受上述實施方式的說明所限,僅由權(quán)利要求書 的范圍所示,而且包括與權(quán)利要求范圍具有同樣意思及權(quán)利要求范圍內(nèi)的所有變形。[0046]圖1為分布式處理系統(tǒng)的結(jié)構(gòu)框圖。如圖1所示,本實施方式的分布式系統(tǒng)包括調(diào) 度模塊(Dispatcher模塊)1、輸入處理單元2、數(shù)個視頻處理單元3和4、數(shù)個音頻處理單元 5和6、輸出處理單元7、監(jiān)視模塊(Watcher模塊)8以及客戶端模塊(Client模塊)9。其中, 調(diào)度模塊I用于協(xié)調(diào)整個系統(tǒng)的各部分的運行。輸入處理單元2包括監(jiān)控模塊(Monitor模 塊)21、輸入處理模塊(Ingress模塊)22和傳輸模塊(Offer模塊)23。優(yōu)選地,上述監(jiān)控模 塊21、輸入處理模塊22和傳輸模塊(Offer模塊)23之間可以采用消息隊列通信。上述視頻 處理單元3 (4)包括監(jiān)控模塊(Monitor模塊)31 (41 )、視頻處理模塊(VP模塊)32 (42)和 傳輸模塊(Offer模塊)33 (43)。優(yōu)選地,上述監(jiān)控模塊31 (41 )、視頻處理模塊32 (42)和 傳輸模塊(Offer模塊)33 (43)之間可以采用消息隊列通信。音頻處理單元5(6)包括監(jiān) 控模塊(Monitor模塊)51 (61 )、音頻處理模塊(AP模塊)52 (62)和傳輸模塊(Offer模塊) 53 (63)。優(yōu)選地,上述監(jiān)控模塊51 (61)、音頻處理模塊52 (62)和傳輸模塊(Offer模塊) 53 (63)之間可以采用消息隊列通信。輸出處理單元7包括監(jiān)控模塊(Monitor模塊)71、 輸出處理模塊(Egress模塊)72和傳輸模塊(Offer模塊)73。優(yōu)選地,上述監(jiān)控模塊71、輸 出處理模塊72和傳輸模塊(Offer模塊)73之間可以采用消息隊列通信。監(jiān)視模塊8與調(diào) 度模塊I共享內(nèi)存并由此獲得調(diào)度模塊I中的所有信息。監(jiān)視模塊8將獲取的信息發(fā)送給 客戶端模塊9,由客戶端模塊9將其以圖形界面顯示給用戶。上述調(diào)度模塊1、上述輸入處 理單元2和上述監(jiān)視模塊(Watcher模塊)8可以共用一臺物理機(jī)器(服務(wù)器)。每一個視頻 處理單元3或4可以單獨用一臺物理機(jī)器(服務(wù)器),即:上述監(jiān)控模塊31、上述視頻處理模 塊32和上述傳輸模塊33可以共用一臺物理機(jī)器(服務(wù)器),以及上述監(jiān)控模塊41、上述視頻 處理模塊42和上述傳輸模塊43可以共用一臺物理機(jī)(服務(wù)器),其中每一臺物理機(jī)器(服務(wù) 器)可以每一次僅運行一個視頻處理進(jìn)程(VP進(jìn)程);每一個音頻處理單元5或6可以單獨 用一臺物理機(jī)器(服務(wù)器),即:上述監(jiān)控模塊51、上述音頻處理模塊52和上述傳輸模塊53 可以共用一臺物理機(jī)器(服務(wù)器),以及上述監(jiān)控模塊61、上述音頻處理模塊62和上述傳輸 模塊63共用一臺物理機(jī)器(服務(wù)器),其中每一臺物理機(jī)器(服務(wù)器)可以每一次僅運行一個 音頻處理進(jìn)程(AP進(jìn)程)。上述輸出處理單元7可以單獨用一臺物理機(jī)器(服務(wù)器),即:上述 監(jiān)控模塊71、上述輸出處理模塊72和上述傳輸模塊73可以共用一臺物理機(jī)器(服務(wù)器)。[0047]上述調(diào)度模塊I分別與上述輸入處理單元2中的監(jiān)控模塊21、各個視頻處理單元 (視頻處理單元3和4)中的監(jiān)控模塊(監(jiān)控模塊31和41)、各個音頻處理單元(音頻處理單 兀5和6)中的監(jiān)控模塊(監(jiān)控模塊51和61)及上述輸出處理單兀7中的監(jiān)控模塊71進(jìn)行 通信連接,用于協(xié)調(diào)整個系統(tǒng)中的輸入處理單元2、視頻處理單元3和4、音頻處理單元5和6和輸出處理單元7等各部分的運行。上述輸入處理單元2中的傳輸模塊23分別與各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單元(音頻處理單元5和6)中的傳輸模塊(監(jiān)控模塊53和63)進(jìn)行通信連接,用于向各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單元(音頻處理單兀5和6)中的傳輸模塊(傳輸模塊53和63)分別傳輸相應(yīng)的信息和數(shù)據(jù)。上述輸出處理單元7中的傳輸模塊73分別與各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單兀(音頻處理單兀5和6)中的傳輸模塊(傳輸模塊53和63)進(jìn)行通信連接,用于從各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單兀(音頻處理單兀5和6)中的傳輸模塊(傳輸模塊53和63)分別接受相應(yīng)的信息和數(shù)據(jù)。
[0048]圖2為上述輸入處理模塊22的結(jié)構(gòu)框圖。如圖2所示,上述輸入處理模塊22包括解封裝模塊221、輸入數(shù)據(jù)處理模塊222和數(shù)據(jù)存儲模塊223,其中上述解封裝模塊221對上述輸入處理單元2所接受的源視頻文件進(jìn)行解封裝,上述輸入數(shù)據(jù)處理模塊222對音視頻文件進(jìn)行處理,上述數(shù)據(jù)存儲模塊223用于存儲音視頻文件及相關(guān)信息。上述解封裝模塊221包括音視頻文件格式判斷單元2211、解封裝選擇單元2212和數(shù)個解封裝單元2213、2214,2215……。其中,上述數(shù)個解封裝單元(2213、2214、2215……)具有不同的格式,并且上述解封裝選擇單元2212可以根據(jù)上述音視頻文件格式判斷單元2211的判斷結(jié)果從上述數(shù)個解封裝單元中選擇相應(yīng)的解封裝單元對上述源視頻文件進(jìn)行解封裝,從而使得上述解封裝模塊221可以對應(yīng)于不同的文件格式進(jìn)行解封裝。上述輸入處理模塊22能夠獲取所述源視頻文件的封裝格式信息,并將上述信息通過上述傳輸模塊23、33、43、53、63發(fā)送給上述輸出處理單元7。
[0049]圖3為上述輸出處理模塊72的結(jié)構(gòu)框圖。如圖3所示,上述輸出處理模塊72包括封裝模塊721、輸出數(shù)據(jù)處理模塊722和存儲模塊723。其中,上述存儲模塊723存儲經(jīng)過上述視頻處理單元3和4及上述音頻處理單元5和6處理后的音頻文件和視頻文件,上述輸出數(shù)據(jù)處理模塊722對經(jīng)過上述視頻處理單元3和4及上述音頻處理單元5和6處理后的音頻文件和視頻文件進(jìn) 行處理,并將經(jīng)上述輸出數(shù)據(jù)處理模塊722處理后的音頻文件和視頻文件輸送至上述封裝模塊721。
[0050]上述封裝模塊721包括封裝格式選擇單元7211和數(shù)個具有不同的封裝格式的封裝單元7212、7213、7214……,其中上述封裝格式選擇單元7211根據(jù)上述傳輸模塊73所接收到的封裝格式信息從數(shù)個封裝單元(7212、7213、7214……)中選擇相應(yīng)的封裝單元進(jìn)行封裝,從而可以使得上述封裝模塊721對應(yīng)于不同的封裝格式的要求進(jìn)行封裝。
[0051]圖4為本發(fā)明的分布式處理系統(tǒng)的處理流程示意圖。下面結(jié)合圖4來說明分布式處理系統(tǒng)的處理流程。操作人員開啟各物理機(jī)器(服務(wù)器),啟動上述分布式處理系統(tǒng)(步驟SI)。上述調(diào)度模塊I讀取系統(tǒng)文件(步驟S2)。優(yōu)選地,在步驟S2中,上述調(diào)度模塊I在指定目錄讀取系統(tǒng)配置文件(例如tvmccd.cfg),獲取該進(jìn)程的〈Input〉(輸入)、〈Server〉(服務(wù)器)和〈Port〉(端口)等配置項,同時在〈Input〉項指定的目錄(例如/opt/tvmccd/ingress/Dispatcher/Input)讀取相應(yīng)的文件(例如tvmccd.par文件和logo文件),根據(jù)相應(yīng)文件(例如tvmccd.par和tvmccd.cfg文件)中的內(nèi)容生成源視頻文件處理指令,其中上述源視頻文件處理指令可以包括源視頻文件的分段數(shù)目和源視頻文件名與ID對應(yīng)的映射表文件(Map文件,例如tvmccd.map)。上述logo文件可以有多個,也可以沒有l(wèi)ogo文 件。系統(tǒng)配置文件中記錄有整個分布式系統(tǒng)的配置信息,如:各模塊所在計算機(jī)的IP地址、 使用的端口號、工作目錄的位置、視頻處理和音頻處理模塊的數(shù)量、任務(wù)分配的方法等。PAR 文件中記錄有待處理文件的文件名及處理后的文件名、處理后的音視頻文件的編碼格式、 碼率、幀率、分辨率等各項參數(shù)。LOGO文件記錄的是用戶需要在視頻中加入的水印、字幕等 的內(nèi)容及其大小、位置等參數(shù)。與調(diào)度模塊I同樣的,系統(tǒng)中的其他模塊也都從各自的指定 目錄中讀取系統(tǒng)配置文件,從配置文件中獲得系統(tǒng)中各模塊的通信地址等信息,以此與需 要通信的其他模塊建立連接。上述調(diào)度模塊I分別與上述輸入處理單元2的監(jiān)控模塊21、 各視頻處理單元(3和4)的監(jiān)控模塊(31和41)、各音頻處理單元的監(jiān)控模塊(51和61)和 上述輸出處理單元7的監(jiān)控模塊71之間建立通信連接(步驟S3)。優(yōu)選地,在步驟S3中, 上述調(diào)度模塊I建立Socket監(jiān)聽(監(jiān)聽端口號Dispatcher_Port在系統(tǒng)配置文件中,比如 tvmccd.cfg),等待上述各監(jiān)控模塊的連接請求。各處理單元按系統(tǒng)配置文件中的地址向調(diào) 度模塊I發(fā)出建立Socket連接的請求,一旦上述調(diào)度模塊I監(jiān)聽到上述監(jiān)控模塊的Socket 連接請求,接受上述各監(jiān)控模塊的連接請求并建立Socket鏈接,同時將上述相應(yīng)的文件發(fā) 送給對應(yīng)的監(jiān)控模塊(監(jiān)控模塊21、31、41、51、61或71)。例如,將tvmccd.par和tvmccd.map文件發(fā)送給每一個監(jiān)控模塊,將logo文件發(fā)送給各視頻處理單元(5和6)的監(jiān)控模塊 (51 和 61)。[0052]上述輸入處理單元2的傳輸模塊23與各視頻處理單元(3和4)的傳輸模塊(33和 43)和各音頻處理單元(5和6)的傳輸模塊(53和63)建立通信連接,同時上述輸出處理單 元7的傳輸模塊73與各視頻處理單元(3和4)的傳輸模塊(33和43)和各音頻處理單元 (5和6)的傳輸模塊(53和63)建立通信連接(步驟S4)。上述輸入處理單元2開始對源視 頻文件的處理(步驟S5)。[0053]圖5為上述步驟S5的處理流程圖。如圖5所示,上述輸入處理單元2的輸入處理 模塊22將源視頻文件的處理進(jìn)程的啟動時間和名稱等信息發(fā)送給上述監(jiān)控模塊21 (步驟 S51)。上述輸入處理模塊22在指定目錄讀取系統(tǒng)配置文件(比如tvmccd.cfg文件),獲取相 應(yīng)的〈Source〉(源項)“Processed〉(處理項)、〈Failed> (錯誤項)、〈0utput> (輸出項)和 〈Send〉(發(fā)送項)等配置項(步驟S52)。上述輸入處理模塊22從上述〈Source〉項目錄按順 序讀取源視頻文件(步驟S53),并由上述輸入處理模塊22的解封裝模塊221依次對上述源 視頻文件進(jìn)行解封裝(步驟S54)。如果源視頻文件解封裝成功(步驟S55:是),獲取相應(yīng)的 音、視頻巾貞序列,并將解封裝成功的源視頻文件從〈Source〉項目錄移送至〈Processed〉目 錄和將解封裝后的音、視頻幀序列存儲至上述存儲模塊223(步驟S56)。上述輸入處理模塊 22的輸入數(shù)據(jù)處理模塊222對上述存儲模塊223中的音、視頻幀序列進(jìn)行處理,獲取其相 關(guān)信息(比如編碼信息等),并將所獲取的相關(guān)信息(比如編碼信息等)寫入信息文件(info 文件K步驟S57)。圖6為信息文件的格式示意圖。如圖6中所示,信息文件中含有源文件 ID、文件長度、編碼類型等。本實施例中,視頻信息文件以V1-文件ID.1nfo的格式命名,其 中還包含視頻比特率、視頻高度、視頻寬度等信息;音頻信息文件以Al-文件ID.1nfo的格 式命名,其中還包含音頻比特率、采樣率、聲道數(shù)等信息。在步驟S57中,當(dāng)info文件正在 寫時,info文件被寫入〈Output〉目錄,當(dāng)info文件寫完成并確認(rèn)無誤時,將info文件移 送到〈Send〉目錄。上述輸入處理模塊22的輸入數(shù)據(jù)處理模塊222基于所讀取的系統(tǒng)配置文件(比如tvmccd.cfg文件)將上述存儲模塊223中的音視頻幀序列分割成數(shù)份(比如以GOP段(畫面組)為單位,將音視頻幀序列分割成數(shù)份GOP文件和GOA (音頻組)文件)(步驟S58)。圖7為GOP或GOA文件的格式示意圖。如圖7中所示,分割后的每個GOP文件和GOA文件中包含其源文件ID、本GOP或GOA文件在源文件的所有的GOP或GOA文件中的序號、包含的幀數(shù)等信息以及幀數(shù)據(jù)部分。上述輸入處理模塊22的輸入數(shù)據(jù)處理模塊222將生成的GOP和GOA文件分別寫入〈Output〉項目錄,并當(dāng)GOP和GOA文件寫磁盤完成并確認(rèn)無誤時被移送至〈Send〉項目錄,隨后源文件由〈Source〉目錄移送至〈Processed〉目錄(步驟S59),同時將GOP和GOA的總數(shù)寫入總數(shù)文件(total文件)(步驟S510)。在步驟S510中,當(dāng)total文件正在寫時,其被寫入〈Output〉項目錄,當(dāng)total文件寫完成并確認(rèn)無誤時,其被移送至〈Send〉項目錄。在步驟S511中,將文件名(包括源文件和GOP、GOA文件的文件名)、文件ID、視頻幀數(shù)、音頻幀數(shù)、視頻編碼格式和音頻編碼格式發(fā)送給上述監(jiān)控模塊
21。如果源視頻文件解封裝出錯(步驟S55:否),上述輸入處理單元2將上述解封裝出錯的源視頻文件從〈Source〉項目錄移送到〈Failed〉項目錄(步驟S512),同時將出錯的源視頻文件ID發(fā)送給上述監(jiān)控模塊21 (步驟S513)。
[0054]返回圖4,在步驟S6中,上述輸入處理單元2的監(jiān)控模塊21將上述文件名、文件ID、視頻幀數(shù)、音頻幀數(shù)、視頻編碼格式和音頻編碼格式等相關(guān)信息發(fā)送給上述調(diào)度模塊I并進(jìn)行必要的處理,同時上述輸入處理單元2的傳輸模塊23將上述〈Send〉目錄下的info文件、GOP和GOA文件和total文件等數(shù)據(jù)發(fā)送到相應(yīng)的視頻處理單元3 (4)和音頻處理單元5 (6)(步驟S6)。
[0055]圖8為上述步驟S6的處理流程圖。如圖8所示,上述調(diào)度模塊I接收到上述輸入處理單元2發(fā)送的上述文件名、文件ID、視頻幀數(shù)、音頻幀數(shù)、視頻編碼格式和音頻編碼格式等相關(guān)信息,填寫上述Map文件(參照圖9)(步驟S61)。例如,如圖9所示,上述調(diào)度模塊I接收到上述輸入處理單元2發(fā)送的上述源視頻文件名稱(Tvm.mp4和Tvm2.avi)和對應(yīng)的文件ID (F01和F02)。例如,Tvm.mp4被分割為10個GOP文件和10個GOA文件,Tvm2.avi被分割為6個GOP文件和6個GOA文件。Tvm.mp4的10個GOP文件名稱為HU-L gop?F01-10.gop, GOA 文件名為 R)l-1.goa ?F01-10.goa ;Tvm2.avi 的 6 個 GOP 文件名稱為F02-1.gop?F02-6.gop, GOA文件名為F02-1.goa?F02-6.goa。在已經(jīng)記錄了源文件名和文件ID的Map文件中對應(yīng)地填入分割后的GOP和GOA文件的文件名。
[0056]在步驟S62中,上述調(diào)度模塊I根據(jù)步驟S61中所生成的Map文件,對上述音視頻文件進(jìn)行分配。例如,參照圖9,調(diào)度模塊I將Tvm.mp4的前五個GOP文件R)l-1.gop?F01-5.gop分配給視頻處理單元3 (VPl ),后五個GOP文件R)l-6.gop?R)l-10.gop分配給視頻處理單元4 (VP2);將Tvm.mp4的前五個GOA文件F01-1.goa?F01-5.goa分配給音頻處理單元5 (API),后五個GOA文件F01-6.goa?F01-10.goa分配給音頻處理單元6(AP2)。同樣,將Tvm2.avi的GOP文件和GOA文件也分配給相應(yīng)的音頻和視頻處理單元。如圖9所示,以上分配信息被記錄在Map文件中。
[0057]然后,將上述GOP和GOA文件的分配結(jié)果通知上述輸入處理單元2(步驟S63)。上述輸入處理單兀2的傳輸模塊23將上述輸入處理模塊22所生成的GOP和GOA文件按上述分配結(jié)果發(fā)送到相應(yīng)的視頻處理單元3或4和音頻處理單元5或6中進(jìn)行處理,并將上述〈Send〉目錄下的info文件和total文件等相關(guān)信息發(fā)送到相應(yīng)的視頻處理單元3、4和音頻處理單元5、6中(步驟S64)。[0058]返回圖4,在步驟S7中,上述調(diào)度模塊I將所完成的Map文件、視頻幀數(shù)、音頻幀 數(shù)、視頻編碼格式和音頻編碼格式等相關(guān)信息發(fā)送到相應(yīng)的視頻處理單元3、4和音頻處理 單元5、6以及輸出處理單元7中。[0059]在步驟S8中,上述視頻處理單元3 (4)的視頻處理模塊32 (42)根據(jù)監(jiān)控模塊31(41)所接收到的Map文件、視頻幀數(shù)和視頻編碼格式等相關(guān)信息和輸送模塊33 (43)所接 收到的視頻文件和info文件等信息對上述GOP文件(視頻文件)進(jìn)行相應(yīng)的處理,同時上述 音頻處理單元5 (6)根據(jù)監(jiān)控模塊51 (61)所接收到的Map文件、音頻幀數(shù)和音頻編碼格 式等相關(guān)信息和輸送模塊53 (63)所接收到的音頻文件和info文件等信息對上述GOA文 件(音頻文件)進(jìn)行相應(yīng)的處理,并將經(jīng)過處理后的音視頻文件發(fā)送至上述輸出處理單元7。[0060]圖10為步驟S8中的視頻文件處理流程圖。在本實施方式中,視頻處理單元3和 視頻處理單元4的視頻文件處理流程相同,因此僅就視頻處理單元3介紹視頻文件處理流 程。如圖10所示,上述視頻處理單元3的視頻處理模塊32將視頻文件處理進(jìn)程的啟動時 間和收到的視頻文件的ID信息(例如收到了以下文件gop?R)l-5.gop和R)2_l.gop?R)2-3.gop)發(fā)送給上述監(jiān)控模塊31 (步驟S811)。上述監(jiān)控模塊31可以將上述啟 動時間和視頻文件的ID信息反饋到上述調(diào)度模塊I,使得系統(tǒng)能夠監(jiān)控上述視頻處理單元 3的處理進(jìn)程狀況。上述視頻處理模塊32在指定目錄讀取系統(tǒng)配置文件(tvmccd.cfg),獲 取上述視頻處理單元3的處理進(jìn)程的〈Source〉(源項)、〈0utput> (輸出項)和〈Send〉(發(fā) 送項)等配置項(步驟S812),并在〈Source〉項目錄讀取相關(guān)信息(info文件)和視頻文件 (gop文件)(步驟S813)。如果〈Source〉項目錄下有total文件,則上述視頻處理模塊32 將上述total文件移送至〈Send〉項目錄。然后,上述視頻處理模塊32根據(jù)監(jiān)控模塊31所 接收到的視頻編碼格式信息選擇相應(yīng)的解碼器對上述視頻文件進(jìn)行解碼(步驟S814)。如果 解碼成功(步驟S815:是),上述視頻處理模塊32對上述經(jīng)解碼后的視頻數(shù)據(jù)進(jìn)行預(yù)定處理 (步驟S816)。上述預(yù)定處理可以是視頻幀率定制調(diào)節(jié)、向視頻中添加滾屏信息、不同音視頻 文件的合并等。上述視頻處理模塊32根據(jù)監(jiān)控模塊31從調(diào)度模塊I收到的處理后的文件 的參數(shù)要求將經(jīng)過處理后的視頻數(shù)據(jù)進(jìn)行編碼,獲取經(jīng)處理后的視頻文件(gop文件),并將 正在輸出的視頻文件(gop文件)寫到〈Output〉項目錄,在寫磁盤結(jié)束并校驗無誤后將該文 件移送到〈Send〉項目錄,由上述傳輸模塊33輸送至上述輸出處理單元7 (步驟S817)。[0061]如果解碼出錯(步驟S815:否),并且該視頻文件的解碼次數(shù)η沒有超過預(yù)定閾值a (步驟S818:否),則將上述解碼次數(shù)η加I (步驟S819)并返回到步驟S814進(jìn)行重新解碼, 如果該視頻文件的解碼次數(shù)η超過預(yù)定閾值a (步驟S818:是),則將解碼出錯的視頻文件 的ID信息發(fā)送給監(jiān)控模塊31 (步驟S8110)。上述監(jiān)控模塊31將解碼出錯的視頻文件的 ID信息反饋給上述調(diào)度模塊1,上述調(diào)度模塊I可以選擇讓輸入處理單元2向上述視頻處 理單元3再次發(fā)送該視頻文件,或讓輸入處理單元2將該視頻文件分配給其它視頻處理單 元進(jìn)行處理;調(diào)度模塊I也可以選擇直接忽略該解碼錯誤,并將錯誤信息輸出給用戶。[0062]圖11為步驟S8中的音頻文件處理流程圖。在本實施方式中,音頻處理單元5和 音頻處理單元6的視頻文件處理流程相同,因此僅就音頻處理單元5介紹音頻文件處理流 程。如圖11所示,上述音頻處理單元5的音頻處理模塊52將音頻文件處理進(jìn)程的啟動時 間和音頻文件的ID信息(例如收到了以下文件:F01-1.goa?F01-5.goa和F02-1.goa?R)2-3.goa)發(fā)送給上述監(jiān)控模塊51 (步驟S821)。上述監(jiān)控模塊51可以將上述啟動時間和音頻文件的ID信息反饋到上述調(diào)度模塊I,使得系統(tǒng)能夠監(jiān)控上述音頻處理單元5的處理進(jìn)程狀況。上述音頻處理模塊52在指定目錄讀取系統(tǒng)配置文件(tvmccd.cfg),獲取上述音頻處理單元5的處理進(jìn)程的〈Source〉(源項)、〈0utput> (輸出項)和〈Send〉(發(fā)送項)等配置項(步驟S822),并在〈Source〉項目錄讀取相關(guān)信息(info文件)和音頻文件(goa文件)(步驟S823)。如果〈Source〉項目錄下有total文件,則上述音頻處理模塊52將上述total文件移送至〈Send〉項目錄。然后,上述音頻處理模塊52根據(jù)監(jiān)控模塊51從上述調(diào)度模塊I所接收到的音頻編碼格式信息選擇相應(yīng)的解碼器對上述音頻文件進(jìn)行解碼(步驟S824)。如果解碼成功(步驟S825:是),上述音頻處理模塊52對上述經(jīng)解碼后的音頻數(shù)據(jù)進(jìn)行預(yù)定處理(步驟S826 )。上述預(yù)定處理可以是音量自動調(diào)節(jié)、音量定制調(diào)節(jié)或聲道處理等。上述音頻處理模塊52根據(jù)監(jiān)控模塊51從調(diào)度模塊I收到的處理后的文件的參數(shù)要求將經(jīng)過處理后的音頻數(shù)據(jù)進(jìn)行編碼,獲取經(jīng)處理后的音頻文件(goa文件),并將正在輸出的音頻文件(goa文件)寫到〈Output〉項目錄,在寫磁盤結(jié)束并校驗無誤后將該文件移送到〈Send〉項目錄,由上述傳輸模塊33輸送至上述輸出處理單元7 (步驟S827)。
[0063]如果解碼出錯(步驟S825:否),并且該音頻文件的解碼次數(shù)m沒有超過預(yù)定閾值b(步驟S828:否),則將上述解碼次數(shù)m加I (步驟S829)并返回到步驟S824進(jìn)行重新解碼,如果該音頻文件的解碼次數(shù)m超過預(yù)定閾值b (步驟S828:是),則將解碼出錯的音頻文件的ID信息發(fā)送給監(jiān)控模塊51 (步驟S8210)。上述監(jiān)控模塊51將解碼出錯的音頻文件的ID信息反饋給上述調(diào)度模塊1,上述調(diào)度模塊I可以選擇讓輸入處理單元2向上述音頻處理單元5再次發(fā)送該音頻文件,或讓輸入處理單元2將該音頻文件分配給其它音頻處理單元進(jìn)行處理;調(diào)度模塊I也可以選擇直接忽略該解碼錯誤,并將錯誤信息輸出給用戶。
[0064]返回圖4,在步驟S9中,上述輸出處理單元7根據(jù)上述監(jiān)控模塊71從上述調(diào)度模塊I所接收到的相關(guān)信息對來自上述視頻處理單元3 (4)的視頻文件和來自上述音頻處理單元5 (6)的音頻文件進(jìn)行處理,獲得經(jīng)處理后的音視頻文件。
[0065]圖12為步驟S9中上述輸出處理單元7的處理流程圖。如圖12所示,上述輸出處理單元7的輸出處理模塊72將輸出處理單元7的啟動時間及處理進(jìn)程的名稱發(fā)送給上述輸出處理單元7的監(jiān)控模塊71 (步驟S91)。上述輸出處理模塊72在指定目錄讀取系統(tǒng)配置文件(比如tvmccd.cfg),獲取上述處理進(jìn)程的配置項,例如〈Source〉(源項)、〈0utput>(輸出項)和〈FinishedX完成項)等配置項(步驟S92),并且監(jiān)控〈Source〉項目錄的write_close事件(寫入關(guān)閉事件),當(dāng)有write_close事件到來時,獲取write_close的文件的文件名,并記錄最新的write_close事件的時刻(步驟S93)。由此,可以監(jiān)控〈Source〉項目錄最新收到的文件,如果收到由傳輸模塊23經(jīng)過傳輸模塊33、43、53和/或63傳輸?shù)絺鬏斈K73的total文件,就讀取total文件中關(guān)于音頻文件的總數(shù)信息和視頻文件的總數(shù)信息,比如GOP文件的總數(shù)信息和GOA文件的總數(shù)信息,同時上述輸出數(shù)據(jù)處理模塊721獲取音、視頻文件(比如GOP和GOA文件),生成音、視頻文件的接收映射表(步驟S94)。其中,上述音、視頻文件的接收映射表的部分結(jié)構(gòu)可以與步驟S61所生成的映射表的結(jié)構(gòu)相同(參照圖9和圖13),并且上述所接收到的音頻文件的總數(shù)信息和視頻文件的總數(shù)信息以及所生成的接收映射表均可存儲在上述輸出處理模塊72的存儲模塊723中。在步驟S95中,上述輸出數(shù)據(jù)處理模塊722獲取音頻文件的總數(shù)和視頻文件的總數(shù),判斷上述源視頻文件中的所有音、視頻文件(GOP和GOA文件)是否均已接收(步驟S96)。當(dāng)接收到的文件總數(shù)與total文件的信息不同時,說明還有音、視頻文件(GOP和GOA文件)沒有接收到。
[0066]如果上述輸出數(shù)據(jù)處理模塊722判斷上述源視頻文件中的所有音、視頻文件(G0P和GOA文件)均已接收(步驟S96:是),則在上述輸出處理模塊72的封裝模塊721中進(jìn)行封裝處理(步驟S97 )。如果封裝成功(步驟S98:是),上述封裝模塊721將封裝成功的新音視頻文件輸出到上述輸出數(shù)據(jù)處理單元7的傳輸模塊73(步驟S99)。如果封裝出錯(步驟S98:否),上述輸出數(shù)據(jù)處理模塊722判斷嘗試重新封裝處理的次數(shù)M是否超出預(yù)定值B (步驟S914)。如果上述嘗試重新封裝處理的次數(shù)M沒有超出預(yù)定值B (步驟S914:否),將M加I(步驟S915),并回到上述封裝模塊721再次嘗試封裝處理。如果上述嘗試重新封裝處理的次數(shù)M超出預(yù)定值B (步驟S914:是),將封裝出錯的音、視頻文件的ID信息發(fā)送給上述輸出處理單元7的監(jiān)控模塊71 (步驟S916),上述監(jiān)控模塊71將上述封裝錯誤信息和上述封裝出錯的音、視頻文件的ID信息反饋給上述調(diào)度模塊I (步驟S917)。上述調(diào)度模塊I根據(jù)要求決定是否重新對上述源視頻文件進(jìn)行新一輪的處理,或者直接放棄對上述源視頻文件進(jìn)行新一輪的處理。
[0067]如果上述輸出數(shù)據(jù)處理模塊722判斷上述源視頻文件中的所有音、視頻文件(G0P和GOA文件)沒有被完全接收(步驟S96:否),則上述輸出數(shù)據(jù)處理模塊722判斷等待沒有被接收的音、視頻文件的時間N是否超過預(yù)定閾值A(chǔ)(步驟S910)。如果等待沒有被接收音、視頻文件的時間N沒有超過預(yù)定閾值A(chǔ) (步驟S910:否),則繼續(xù)等待沒有被接收的音、視頻文件。如果等待沒有被接收音、視頻文件的時間N超過預(yù)定閾值A(chǔ) (步驟S910:是),則上述輸出數(shù)據(jù)處理模塊722檢查上述音、視頻文件的接收映射表,獲得未收到的音頻文件的ID信息和/或視頻文件的ID信息等,并將其發(fā)送給上述輸出處理單元7的監(jiān)控模塊71 (步驟S911)。例如,如圖13所示,上述輸出數(shù)據(jù)處理模塊722通過檢查上述接收映射表發(fā)現(xiàn)Tvm.mp4的F01-4.goa和F01-6.gop兩個文件在等待時間超過上述預(yù)定閾值A(chǔ)后仍沒收到,上述輸出數(shù)據(jù)處理模塊722將未收到文件的文件ID發(fā)送給上述輸出處理單元7的監(jiān)控模塊71。其中,上述等待時間可以由輸出處理模塊72讀取到了某源文件的total文件起計算,也可以自該源文件的接收映射表被建立之時起計算。上述監(jiān)控模塊71將上述音、視頻文件接收錯誤信息和未收到的音頻和/或視頻文件的ID信息反饋到上述調(diào)度模塊I (步驟S912)。上述調(diào)度模塊I根據(jù)上述監(jiān)控模塊71所反饋的上述音、視頻文件接收錯誤信息和未收到的音頻文件的ID信息和/或視頻文件的ID信息可以命令上述輸入處理單元2向相應(yīng)的音頻處理單元5 (6)和/或視頻處理單元3 (4)重新發(fā)送上述未收到的音頻文件和/或視頻文件及相關(guān)信息,由相應(yīng)的音頻處理單元5 (6)和/或視頻處理單元3 (4)對上述未收到的音頻文件和/或視頻文件進(jìn)行重新處理(步驟S913)。調(diào)度模塊I還可以將上述未收到的音頻文件ID和/或視頻文件ID及相關(guān)信息發(fā)送給音頻處理單元5 (6)和/或視頻處理單元3 (4),并且命令音頻處理單元5 (6)和/或視頻處理單元3 (4)在自己的工作目錄下查找到未處理的該文件,重新進(jìn)行處理后發(fā)送給輸出處理單元7。
[0068]在上述實施方式中,上述輸入處理模塊22的輸入數(shù)據(jù)處理模塊222基于所讀取的系統(tǒng)配置文件(比如tvmccd.cfg文件)對音視頻幀序列進(jìn)行分割。但是,本發(fā)明并不限于此,也可以是上述輸入處理模塊22的輸入數(shù)據(jù)處理模塊222基于來自上述調(diào)度模塊I的原視頻文件處理指令對音視頻幀序列進(jìn)行分割。[0069]輸入處理模塊、視頻處理模塊、音頻處理模塊以及輸出處理模塊定時通過消息隊列向各自的監(jiān)控模塊報告各自模塊的工作狀態(tài)、當(dāng)前任務(wù)、已完成任務(wù)等,同時還將上述內(nèi)容記入各自的日志文件。各監(jiān)控模塊定時將本處理單元的IP地址、系統(tǒng)負(fù)荷、網(wǎng)絡(luò)狀況、本進(jìn)程狀態(tài)以及從本單元的處理模塊收到的上述信息發(fā)送給調(diào)度模塊I。監(jiān)視模塊8定時與調(diào)度模塊I分享上述信息,并通過客戶端模塊9處理后以圖形界面顯示給用戶。
[0070]調(diào)度模塊I利用各監(jiān)控模塊發(fā)來的信息維護(hù)配置文件,配置文件中為每個物理機(jī)器分配了一個狀態(tài)屬性,當(dāng)該機(jī)器因掉電或斷網(wǎng)暫時退出系統(tǒng)時,狀態(tài)屬性被設(shè)為不可用;當(dāng)有新的物理機(jī)器加入系統(tǒng)時,用戶指令調(diào)度模塊I在配置文件中添加該機(jī)器的信息。配置文件中的信息發(fā)生變化后,調(diào)度模塊I賦予其一個新的版本號,并立即將其發(fā)送至各控制豐吳塊。
[0071]如果系統(tǒng)運行中調(diào)度模塊I掉電或者無響應(yīng),客戶端模塊9就無法從監(jiān)視模塊8獲取數(shù)據(jù),這種情況持續(xù)一定時間后,客戶端模塊9會通過提示框或警報聲等方法提示用戶排除故障。故障排除后,調(diào)度模塊I重新讀取配置文件與各監(jiān)控模塊建立連接,各監(jiān)控模塊根據(jù)各自的日志將未成功傳送給調(diào)度模塊I的信息重新傳送。
[0072]如果某一監(jiān)控模塊停止工作,調(diào)度模塊I在經(jīng)過一定時間沒有從該模塊收到信息后判斷該模塊出現(xiàn)故障。故障原因可能是由斷電或斷網(wǎng)造成的物理故障也可能是該模塊的進(jìn)程無響應(yīng)。調(diào)度模塊I偵測與該監(jiān)控模塊的物理機(jī)器的連接是否正常(比如可以使用ping命令),如果不正常說明是物理故障,通過客戶端模塊9向用戶發(fā)送提示。如果連接正常說明是該模塊的進(jìn)程無響應(yīng),則等待一定時間后再試,經(jīng)過一定次數(shù)的嘗試仍無法通信再通過客戶端模塊9向用戶發(fā)送提示。
[0073]如果某一處理單元所在的物理機(jī)器掉電,重新通電后,該監(jiān)控模塊的處理單元重新初始化與其他模塊建立連接。如果掉電的機(jī)器是輸入處理單元、視頻處理單元或音頻處理單元所在的機(jī)器,已經(jīng)完成處理的文件會被從〈Source〉項目錄移送至〈Processed〉或〈failed〉等目錄,因此,恢復(fù)后只要從〈Source〉項目錄讀取文件繼續(xù)進(jìn)行處理即可。如果掉電的機(jī)器是輸出處理單元所在的機(jī)器,初始化后,輸出處理模塊掃描〈Source〉項目錄,讀取目錄下的total文件,建立音、視頻文件的接收映射表,并根據(jù)〈Source〉項目錄下的GOP和GOA文件填寫接收映射表。掃描的同時監(jiān)視最新收到的文件,對〈Source〉項目錄下的所有文件都完成上述操作后繼續(xù)S93?S917的處理。如果某一處理單元所在的物理機(jī)器斷網(wǎng),當(dāng)連接恢復(fù)時,調(diào)度模塊I向其發(fā)送最新的配置文件,該單元的監(jiān)控模塊查詢?nèi)罩?,并指令該單元的傳輸模塊將〈Send >目錄下的文件傳輸給指定的處理單元。
[0074]如果監(jiān)控模塊的進(jìn)程無響應(yīng)后被重啟,重啟后首先與其他模塊建立通信,然后在日志中查詢與各模塊的最后通信時間,要求調(diào)度模塊I和對應(yīng)的處理模塊、傳輸模塊重傳該時間之后的信息。監(jiān)控模塊向調(diào)度模塊I發(fā)送信息時都帶有配置文件的版本號,因此,調(diào)度模塊I發(fā)現(xiàn)信息中的配置文件過期會重新發(fā)送新的配置文件。監(jiān)控模塊對收到的重傳的信息執(zhí)行正常的操作。
[0075]如上所述,輸入處理模塊、視頻處理模塊、音頻處理模塊以及輸出處理模塊定時通過消息隊列向各自的監(jiān)控模塊報告各自模塊的工作狀態(tài),因此,當(dāng)某個模塊的進(jìn)程無響應(yīng)超過一定時間,對應(yīng)的監(jiān)控模塊就會發(fā)現(xiàn)異常,如果等待一定時間不能恢復(fù),監(jiān)控模塊就提醒用戶重啟該模塊的進(jìn)程或者自行重啟該模塊的進(jìn)程。重啟后,這些模塊從各自的工作目錄讀取文件進(jìn)行處理即可。
[0076]在本實施方式中,各物理機(jī)器通過局域網(wǎng)連接,各模塊的地址為所在機(jī)器的IP地址和對應(yīng)端口號,但各物理機(jī)器也可以通過廣域網(wǎng)或高速總線等其他方式連接,只要可以賦予各模塊相應(yīng)的地址表示方式即可。
[0077]另外,在利用本發(fā)明的系統(tǒng)處理大量的小體積視頻文件時,也可以省略分割音視頻文件的步驟,讓每個音視頻處理模塊獨自處理一個源文件的音頻或視頻部分。
[0078]在本實施方式中,分布式系統(tǒng)用于處理音視頻文件,但本系統(tǒng)改變相應(yīng)模塊的功能后也可以用于處理其他類型的數(shù)據(jù),只要這種分塊處理后再合并的處理流程不會對該數(shù)據(jù)的處理結(jié)果造成影響即可。
【權(quán)利要求】
1.一種分布式音視頻文件處理系統(tǒng),包括: 輸入處理單元,用于接收源視頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別將所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù)進(jìn)行分割處理; 數(shù)個視頻數(shù)據(jù)處理單元,分別用于對經(jīng)分割后的視頻數(shù)據(jù)進(jìn)行處理; 數(shù)個音頻數(shù)據(jù)處理單元,分別用于對經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理; 輸出處理單元,用于對經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出; 調(diào)度單元,用于協(xié)調(diào)所述輸入處理單元、所述數(shù)個視頻數(shù)據(jù)處理單元、所述數(shù)個音頻數(shù)據(jù)處理單元及輸出處理單元的工作。
2.根據(jù)權(quán)利要求1所述的音視頻文件處理系統(tǒng),其特征在于: 所述輸入處理單兀具有第一監(jiān)控模塊、第一處理模塊和第一傳輸模塊; 各視頻數(shù)據(jù)處理單元分別具有第二監(jiān)控模塊、第二處理模塊和第二傳輸模塊; 各音頻數(shù)據(jù)處理單元分別具有第三監(jiān)控模塊、第三處理模塊和第三傳輸模塊; 所述輸出處理單元具有第四監(jiān)控模塊、第四處理模塊和第四傳輸模塊;其中, 所述第一、第二、第三和第四監(jiān)控模塊分別與所述調(diào)度單元進(jìn)行通信連接,從所述調(diào)度單元接收相關(guān)指令,并各自將相關(guān)處理單元的運行狀態(tài)報告給所述調(diào)度單元;所述第一傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,將需要處理的相應(yīng)的視頻數(shù)據(jù)和音頻數(shù)據(jù)分別發(fā)送至各所述第二傳輸模塊和各所述第三傳輸模塊;所述第四傳輸模塊分別與各 所述第二傳輸模塊和各所述第三傳輸模塊通信連接,接收經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的音視頻文件處理系統(tǒng),其特征在于: 所述輸入處理單元對所接收的源文件進(jìn)行解封裝,獲得視頻序列和音頻序列,并分別將所述視頻序列和所述音頻序列進(jìn)行分割處理。
4.根據(jù)權(quán)利要求1所述的音視頻文件處理系統(tǒng),其特征在于:所述輸出處理單元在判斷從各視頻數(shù)據(jù)處理單元和各音頻數(shù)據(jù)處理單元接收到經(jīng)處理后的所有的視頻數(shù)據(jù)和音頻數(shù)據(jù)后,將所接到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行合并,并按照預(yù)定格式進(jìn)行封裝。
5.根據(jù)權(quán)利要求2所述的音視頻文件處理系統(tǒng),其特征在于: 所述調(diào)度單元和所述第一、第二、第三和第四監(jiān)控模塊通過系統(tǒng)配置文件獲取的地址信息進(jìn)行通信。
6.根據(jù)權(quán)利要求5所述的音視頻文件處理系統(tǒng),其特征在于: 所述第一、第二、第三和第四監(jiān)控模塊分別定期地將相應(yīng)處理單元的運行狀態(tài)信息發(fā)送給所述調(diào)度單元; 所述調(diào)度單元根據(jù)所述運行狀態(tài)信息維護(hù)系統(tǒng)配置文件,并將更新的系統(tǒng)配置文件分別發(fā)送給所述第一、第二、第三和第四監(jiān)控模塊。
7.根據(jù)權(quán)利要求5所述的音視頻文件處理系統(tǒng),其特征在于: 系統(tǒng)配置文件的內(nèi)容包括所述視頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄和所述音頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄。
8.根據(jù)權(quán)利要求5所述的音視頻文件處理系統(tǒng),其特征在于: 當(dāng)所述視頻數(shù)據(jù)處理單元和所述音頻數(shù)據(jù)處理單元的中一個的處理發(fā)生錯誤時,其相應(yīng)的第二或第三監(jiān)控模塊向所述調(diào)度單元報告該錯誤;所述調(diào)度模塊根據(jù)系統(tǒng)配置文件的設(shè)置確定重新執(zhí)行發(fā)生錯誤的處理或忽略該錯誤。
9.根據(jù)權(quán)利要求1所述的音視頻文件處理系統(tǒng),其特征在于:所述輸入處理單元獲取所述源視頻文件的解封裝后的視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式,并將所述視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式發(fā)送給相應(yīng)的視頻數(shù)據(jù)處理單元和音頻數(shù)據(jù)處理單元。
10.根據(jù)權(quán)利要求1~9所述的音視頻文件處理系統(tǒng),其特征在于:所述輸入處理單元將包含經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量的分割信息發(fā)送給所述輸出處理單元。
11.根據(jù)權(quán)利要求10所述的音視頻文件處理系統(tǒng),其特征在于:所述分割信息還包括各經(jīng)分割后的視頻數(shù)據(jù)和各經(jīng)分割后的音頻數(shù)據(jù)在源視頻文件中的順序息。
12.根據(jù)權(quán)利要求11所述的音視頻文件處理系統(tǒng),其特征在于:所述輸出處理單元根據(jù)所述分割信息建立關(guān)于所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)的映射表,根據(jù)收到的所述順序信息標(biāo)記相應(yīng)的所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)在映射表中所處的位置,以此確定所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量是否相同;當(dāng)所述輸出處理單元判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量相同時,對所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)進(jìn)行整合處理,獲得經(jīng)處理后的音視頻文件;當(dāng)所述輸出處理單元判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量不相同時,基于所述映射表獲得所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),并將相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的缺失信息發(fā)送至所述調(diào)度單元。
13.根據(jù)權(quán)利要求12所述的音視頻文件處理系統(tǒng),其特征在于:當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示所述輸入處理單元向相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次發(fā)送所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/ 和經(jīng)分割后的音頻數(shù)據(jù),由相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次對所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單元。
14.根據(jù)權(quán)利要求12所述的音視頻文件處理系統(tǒng),其特征在于:當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次啟動對相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的處理進(jìn)程,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單元。
15.—種分布式音視頻文件處理方法,包括:輸入處理步驟,通過輸入處理單元接收源視頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別將所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù)進(jìn)行分割處理;視頻數(shù)據(jù)處理步驟,分別使用數(shù)個視頻數(shù)據(jù)處理單元對經(jīng)分割后的視頻數(shù)據(jù)進(jìn)行處理; 音頻數(shù)據(jù)處理步驟,分別使用數(shù)個音頻數(shù)據(jù)處理單元對經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理; 輸出處理步驟,通過輸出處理單元對經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出; 調(diào)度步驟,通過調(diào)度單元協(xié)調(diào)所述輸入處理單元、所述數(shù)個視頻數(shù)據(jù)處理單元、所述數(shù)個音頻數(shù)據(jù)處理單元及輸出處理單元的工作。
16.根據(jù)權(quán)利要求15所述的音視頻文件處理方法,其特征在于:所述輸入處理步驟包括: 解封裝步驟,對所接收的源文件進(jìn)行解封裝,獲得視頻序列和音頻序列; 分割步驟,分別將所述視頻序列和所述音頻序列進(jìn)行分割處理。
17.根據(jù)權(quán)利要求15所述的音視頻文件處理方法,其特征在于:在所述輸出處理步驟中,在判斷從各視頻數(shù)據(jù)處理單元和各音頻數(shù)據(jù)處理單元接收到經(jīng)處理后的所有的視頻數(shù)據(jù)和音頻數(shù)據(jù)后,將所接到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行合并,并按照預(yù)定格式進(jìn)行封裝。
18.根據(jù)權(quán)利要求15~17所述的音視頻文件處理方法,其特征在于: 在所述調(diào)度步驟中,通過系統(tǒng)配置文件獲取的地址信息進(jìn)行通信。
19.根據(jù)權(quán)利要求18所述的音視頻文件處理方法,其特征在于: 在所述調(diào)度步驟中,相應(yīng)處理單元的運行狀態(tài)信息分別定期地被發(fā)送給所述調(diào)度單元,所述調(diào)度單元根據(jù)所述運行狀態(tài)信息維護(hù)系統(tǒng)配置文件,并發(fā)送更新的系統(tǒng)配置文件。
20.根據(jù)權(quán)利要求18所述的音視頻文件處理方法,其特征在于: 系統(tǒng)配置文件的內(nèi)容包括所述視頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄和所述音頻數(shù)據(jù)處理單元的數(shù)量、物理地址、運行狀態(tài)和工作目錄。
21.根據(jù)權(quán)利要求18所述的音視頻文件處理方法,其特征在于: 在所述視頻數(shù)據(jù)處理步驟中,當(dāng)所述視頻數(shù)據(jù)處理單元中的一個的處理發(fā)生錯誤時,或在所述音頻數(shù)據(jù)處理步驟中,當(dāng)所述音頻數(shù)據(jù)處理單元中的一個的處理發(fā)生錯誤時,向所述調(diào)度單元報告該錯誤; 所述調(diào)度模塊根據(jù)系統(tǒng)配置文件的設(shè)置確定重新執(zhí)行發(fā)生錯誤的處理或忽略該錯誤。
22.根據(jù)權(quán)利要求15所述的音視頻文件處理方法,其特征在于: 在所述輸入處理步驟中,獲取所述源視頻文件的解封裝后的視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式,并將所述視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式發(fā)送給相應(yīng)的視頻數(shù)據(jù)處理單元和音頻數(shù)據(jù)處理單元。
23.根據(jù)權(quán)利要求15所述的音視頻文件處理方法,其特征在于: 在所述輸入處理步驟中,將包含經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量的分割信息發(fā)送給所述輸出處理單元。
24.根據(jù)權(quán)利要求23所述的音視頻文件處理方法,其特征在于: 所述分割信息還包括各經(jīng)分割后的視頻數(shù)據(jù)和各經(jīng)分割后的音頻數(shù)據(jù)在源視頻文件中的順序信息。
25.根據(jù)權(quán)利要求24所述的音視頻文件處理方法,其特征在于:在所述輸出處理步驟中,根據(jù)所述分割信息建立關(guān)于所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)的映射表,根據(jù)收到的所述順序信息標(biāo)記相應(yīng)的所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)在映射表中所處的位置,以此確定所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量是否相同;當(dāng)判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量相同時,對所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)進(jìn)行整合處理,獲得經(jīng)處理后的音視頻文件; 當(dāng)判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量不相同時,基于所述映射表獲得所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),并將相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的缺失信息發(fā)送至所述調(diào)度單元。
26.根據(jù)權(quán)利要求25所述的音視頻文件處理方法,其特征在于:當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示所述輸入處理單元向相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次發(fā)送所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/ 和經(jīng)分割后的音頻數(shù)據(jù),由相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次對所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單元。
27.根據(jù)權(quán)利要求25所述的音視頻文件處理方法,其特征在于:當(dāng)所述調(diào)度單元接收到所述缺失信息時,指示相應(yīng)的視頻數(shù)據(jù)處理單元或/和相應(yīng)的音頻數(shù)據(jù)處理單元再次啟動對相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的處理進(jìn)程,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述輸出處理單元。
28.—種分布式音視頻文件處理裝置,包括:數(shù)臺第一服務(wù)器,分別用于對視頻數(shù)據(jù)進(jìn)行處理;數(shù)臺第二服務(wù)器,分別用于對音頻數(shù)據(jù)進(jìn)行處理;第三服務(wù)器,用于對經(jīng)處理后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行處理并輸出;第四服務(wù)器,用于接收源視頻文件,對所述源視頻文件進(jìn)行處理獲得視頻數(shù)據(jù)和音頻數(shù)據(jù),并分別將所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù)進(jìn)行分割處理,以及協(xié)調(diào)所述數(shù)臺第一服務(wù)器、所述數(shù)臺第二服務(wù)器和所述第三服務(wù)器之間的工作。
29.根據(jù)權(quán)利要求28所述的裝置,其特征在于:每一臺第一服務(wù)器僅運行一個視頻數(shù)據(jù)處理進(jìn)程;每一臺第二服務(wù)器僅運行一個音頻數(shù)據(jù)處理進(jìn)程。
30.根據(jù)權(quán)利要求28所述的裝置,其特征在于:所述第四服務(wù)器對所接收的源文件進(jìn)行解封裝,獲得視頻序列和音頻序列,并分別將所述視頻序列和所述音頻序列進(jìn)行分割處理。
31.根據(jù)權(quán)利要求28所述的裝置,其特征在于:所述第三服務(wù)器在判斷從各第一服務(wù)器和各第二服務(wù)器接收到經(jīng)處理后的所有的視頻數(shù)據(jù)和音頻數(shù)據(jù)后,將所接到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行合并,并按照預(yù)定格式進(jìn)行封裝。
32.根據(jù)權(quán)利要求28所述的裝置,其特征在于:所述第四服務(wù)器獲取所述源視頻文件的解封裝后的視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式,并將所述視頻幀數(shù)、音頻幀數(shù)和音視頻編碼格式發(fā)送給相應(yīng)的第一服務(wù)器和第二服務(wù)器。
33.根據(jù)權(quán)利要求28所述的裝置,其特征在于: 所述第四服務(wù)器將包含經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量的分割信息發(fā)送給所述第三服務(wù)器。
34.根據(jù)權(quán)利要求33所述的裝置,其特征在于: 所述分割信息還包括各經(jīng)分割后的視頻數(shù)據(jù)和各經(jīng)分割后的音頻數(shù)據(jù)在源視頻文件中的順序信息。
35.根據(jù)權(quán)利要求34所述的裝置,其特征在于: 所述第三服務(wù)器根據(jù)所述分割信息建立關(guān)于所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)的映射表,根據(jù)收到的所述順序信息標(biāo)記相應(yīng)的所述經(jīng)處理后的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)在映射表中所處的位置,以此確定所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量是否相同; 當(dāng)所述第三服務(wù)器判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量相同時,對所述經(jīng)處理后 的視頻數(shù)據(jù)和所述經(jīng)處理后的音頻數(shù)據(jù)進(jìn)行整合處理,獲得經(jīng)處理后的音視頻文件; 當(dāng)所述第三服務(wù)器判斷所收到的所述經(jīng)處理后的視頻數(shù)據(jù)的總數(shù)和所述經(jīng)處理后的音頻數(shù)據(jù)的總數(shù)與所述經(jīng)分割后的視頻數(shù)據(jù)的數(shù)量和所述經(jīng)分割后的音頻數(shù)據(jù)的數(shù)量不相同時,基于所述映射表獲得所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),并將相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的缺失信息發(fā)送至所述第四服務(wù)器。
36.根據(jù)權(quán)利要求35所述的裝置,其特征在于: 當(dāng)所述第四服務(wù)器接收到所述缺失信息時,向相應(yīng)的第一服務(wù)器或/和相應(yīng)的第二服務(wù)器再次發(fā)送所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù),由相應(yīng)的第一服務(wù)器或/和相應(yīng)的第二服務(wù)器再次對所缺失的相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)進(jìn)行處理,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述第三服務(wù)器。
37.根據(jù)權(quán)利要求35所述的裝置,其特征在于: 當(dāng)所述第四服務(wù)器接收到所述缺失信息時,指示相應(yīng)的第一服務(wù)器或/和相應(yīng)的第二服務(wù)器再次啟動對相應(yīng)的經(jīng)分割后的視頻數(shù)據(jù)或/和經(jīng)分割后的音頻數(shù)據(jù)的處理進(jìn)程,并將再次處理后的視頻數(shù)據(jù)或/和音頻數(shù)據(jù)發(fā)送至所述第三服務(wù)器。
【文檔編號】G06F17/30GK103605709SQ201310558558
【公開日】2014年2月26日 申請日期:2013年11月12日 優(yōu)先權(quán)日:2013年11月12日
【發(fā)明者】武悅 申請人:天脈聚源(北京)傳媒科技有限公司