新四季網

一種分布式音視頻處理裝置及處理方法

2023-08-01 07:33:51 4

一種分布式音視頻處理裝置及處理方法
【專利摘要】本發明提供一種分布式音視頻文件處理系統,包括:輸入處理單元,用於接收源視頻文件,對源視頻文件進行處理獲得音/視頻數據,並將音/視頻數據分別按順序分割成音/視頻數據片段後,並根據一定的分配規則將分割所得的音/視頻數據片段分配給相應的音/視頻數據處理單元進行處理;數個視頻數據處理單元,分別用於對經分割後的視頻數據片段進行處理;數個音頻數據處理單元,分別用於對經分割後的音頻數據片段進行處理;輸出處理單元,用於對經處理後的音/視頻數據片段進行處理並輸出;調度單元,用於協調輸入處理單元、數個音/視頻數據處理單元及輸出處理單元的工作。本發明孩提供一種分布式音視頻文件處理方法和一種分布式音視頻文件處理裝置。
【專利說明】一種分布式音視頻處理裝置及處理方法
【技術領域】
[0001]本發明涉及一種利用計算機或數據處理裝置處理數據的裝置和方法,尤其涉及一種利用分布式計算機或數據處理裝置對音視頻文件進行處理的裝置和方法。
技術背景
[0002]隨著網絡和文化事業的發展,音視頻資源極大豐富,對音視頻文件的處理的需要也快速增長。
[0003]音視頻文件處理的大致流程如下:首先將需處理的音視頻文件解封裝成為視頻幀序列和音頻幀序列;然後將視頻幀序列和音頻幀序列分別解碼為RAW格式和PCM格式數據;對RAW格式和PCM格式數據進行處理;再將RAW格式和PCM格式的數據編碼為所需格式的音頻幀序列和視頻幀序列;最後將音頻幀序列和視頻幀序列封裝成需要的文件格式。
[0004]以上處理是通過計算機或計算機構成的數據處理裝置來完成的,現有的這些計算機或數據處理裝置是依靠本機的軟硬體資源來實現對文件的處理。音視頻文件處理的計算量龐大,對處理裝置的運算能力和存儲資源消耗很大,而且隨著高清音視頻文件的日益增多和處理需求的不斷增大,依靠單機進行音視頻文件處理的瓶頸問題日益突出,單機處理速度慢且容易發生系統崩潰。即使用戶使用配置很高的計算機也難以保證處理的速度和穩定程度,尤其無法滿足大批量和時間要求很高的處理任務。
[0005]鑑於現有技術中存在的以上問題,本發明提供了一種分布式處理系統。使用多臺計算機或處理裝置來實現並行處理,大大減少了處理所需的時間,同時降低了系統的處理壓力,減少了系統崩潰的可能性。由於使用了完善的監測系統,處理的可靠性很高,完全可以滿足對處理質量的要求。

【發明內容】

[0006]本發明的第一層面提供一種分布式音視頻文件處理系統,包括:輸入處理單元,用於接收源視頻文件,對所述源視頻文件進行處理獲得視頻數據和音頻數據,並將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,並根據一定的分配規則對分割所得的視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理;數個視頻數據處理單元,分別用於對經分割後的視頻數據片段進行處理;數個音頻數據處理單元,分別用於對經分割後的音頻數據片段進行處理;輸出處理單元,用於對經處理後的視頻數據片段和音頻數據片段進行處理並輸出;調度單元,用於協調所述輸入處理單元、所述數個視頻數據處理單元、所述數個音頻數據處理單元及輸出處理單元的工作。
[0007]優選地,所述輸入處理單元將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,將各視頻數據片段和音頻數據片段的順序號按視頻數據處理單元和音頻數據處理單元的數量進行模運算,根據模運算的結果將各視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理。[0008]優選地,所述輸入處理單兀具有第一監控模塊、第一處理模塊和第一傳輸模塊;各視頻數據處理單元分別具有第二監控模塊、第二處理模塊和第二傳輸模塊;各音頻數據處理單元分別具有第三監控模塊、第三處理模塊和第三傳輸模塊;所述輸出處理單元具有第四監控模塊、第四處理模塊和第四傳輸模塊;其中,所述第一、第二、第三和第四監控模塊分別與所述調度單元進行通信連接,從所述調度單元接收相關指令,並各自將相關處理單元的運行狀態報告給所述調度單元;所述第一傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,將需要處理的相應的視頻數據片段和音頻數據片段分別發送至各所述第二傳輸模塊和各所述第三傳輸模塊;所述第四傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,接收經處理後的視頻數據片段和音頻數據片段。
[0009]優選地,所述輸入處理單元對所接收的源文件進行解封裝,獲得視頻序列和音頻序列,並分別將所述視頻序列和所述音頻序列進行分割處理。
[0010]優選地,所述輸出處理單元在判斷從各視頻數據處理單元和各音頻數據處理單元接收到經處理後的所有的視頻數據片段和音頻數據片段後,將所接到的視頻數據片段和音頻數據片段進行合併,並按照預定格式進行封裝。
[0011]優選地,所述調度單元和所述第一、第二、第三和第四監控模塊通過系統配置文件獲取的地址信息進行通信。
[0012]優選地,所述第一、第二、第三和第四監控模塊分別定期地將相應處理單元的運行狀態信息發送給所述調度單元;所述調度單元根據所述運行狀態信息維護系統配置文件,並將更新的系統配置文件分別發送給所述第一、第二、第三和第四監控模塊。
[0013]優選地,系統配置文件的內容包括所述視頻數據處理單元的數量、物理地址、運行狀態和工作目錄和所述音頻數據處理單元的數量、物理地址、運行狀態和工作目錄。
[0014]優選地,當所述視頻數據處理單元和所述音頻數據處理單元的中一個的處理發生錯誤時,其相應的第二或第三監控模塊向所述調度單元報告該錯誤;所述調度模塊確定重新執行發生錯誤的處理或忽略該錯誤。
[0015]優選地,所述輸入處理單元將出錯的視頻數據片段和/或音頻數據片段重新加入未被發送的剩餘視頻數據片段和/或音頻數據片段中並進行重新編序,再所述重新編序所得的順序號按所述視頻數據處理單元和/或所述音頻數據處理單元的數量進行模運算,根據模運算的結果將所述出錯的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理。
[0016]優選地,所述輸入處理單元獲取所述源視頻文件的解封裝後的視頻幀數、音頻幀數和音視頻編碼格式,並將所述視頻幀數、音頻幀數和音視頻編碼格式發送給相應的視頻數據處理單元和音頻數據處理單元。
[0017]優選地,所述輸入處理單元將源文件經分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量發送給所述輸出處理單元。
[0018]優選地,所述輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息。
[0019]優選地,所述輸入處理單元將所述源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息插入到分割後的視頻數據片段和音頻數據片段的文件名中。[0020]優選地,所述輸出處理單元根據分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量建立該源文件的接收映射表,根據輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入的該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息在接收映射表中將收到的已處理的數據片段標記為已收到;當所述輸出處理單元判斷接收映射表中的所有視頻數據片段和音頻數據片段均標記為已收到時,對所述經處理後的視頻數據片段和所述經處理後的音頻數據片段進行整合處理,獲得經處理後的音視頻文件;當所述輸出處理單元判斷經過一定時間後接收映射表中有視頻數據片段和音頻數據片段標記為未收到時,將相應的經分割後的視頻數據片段或/和經分割後的音頻數據片段的缺失信息發送至所述調度單元。
[0021]優選地,所述接收映射表中還包含已收到的視頻數據片段的數量和音頻數據片段的數量;所述輸出處理單元判斷接收映射表中的視頻數據片段的數量和音頻數據片段的數量與所述輸入處理單元發送的視頻數據片段的數量和音頻數據片段的數量一致後,才進行接收映射表中的所有視頻數據片段和音頻數據片段是否均標記為已收到的判斷。
[0022]優選地,當所述調度單元接收到所述缺失信息時,指示所述輸入處理單元將缺失的視頻數據片段和/或音頻數據片段的順序號按當前視頻數據處理單元和/或音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理,並將再次處理後的視頻數據片段和/或音頻數據片段發送至所述輸出處理單元。
[0023]優選地,當所述調度單元接收到視頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的視頻數據片段重新按順序編號,並將該編號按當前視頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段重新分配給相應的視頻數據處理單元進行處理,並將再次處理後的視頻數據片段發送至所述輸出處理單元;當所述調度單元接收到音頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的音頻數據片段重新按順序編號,並將該編號按當前音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的音頻數據片段重新分配給相應的音頻數據處理單元進行處理,並將再次處理後的音頻數據片段發送至所述輸出處理單元。
[0024]本發明另一方面提供一種音視頻文件處理方法,包括:輸入處理步驟,通過輸入處理單元接收源視頻文件,對所述源視頻文件進行處理獲得視頻數據和音頻數據,並分別將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,並根據一定的分配規則對分割所得的視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理;視頻數據處理步驟,分別使用數個視頻數據處理單元對經分割後的視頻數據片段進行處理;音頻數據處理步驟,分別使用數個音頻數據處理單元對經分割後的音頻數據片段進行處理;輸出處理步驟,通過輸出處理單元對經處理後的視頻數據片段和音頻數據片段進行處理並輸出;調度步驟,通過調度單元協調所述輸入處理單元、所述數個視頻數據處理單元、所述數個音頻數據處理單元及輸出處理單元的工作。
[0025]優選地,在所述輸入處理步驟中,將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,將各視頻數據片段和音頻數據片段的順序號按視頻數據處理單元和音頻數據處理單元的數量進行模運算,根據模運算的結果將各視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理。[0026]優選地,解封裝步驟,對所接收的源文件進行解封裝,獲得視頻序列和音頻序列;分割步驟,分別將所述視頻序列和所述音頻序列進行分割處理。
[0027]優選地,在所述輸出處理步驟中,在判斷從各視頻數據處理單元和各音頻數據處理單元接收到經處理後的所有的視頻數據片段和音頻數據片段後,將所接到的視頻數據片段和音頻數據片段進行合併,並按照預定格式進行封裝。
[0028]優選地,在所述調度步驟中,通過系統配置文件獲取的地址信息進行通信。
[0029]優選地,在所述調度步驟中,相應處理單元的運行狀態信息分別定期地被發送給所述調度單元,所述調度單元根據所述運行狀態信息維護系統配置文件,並發送更新的系統配置文件。
[0030]優選地,系統配置文件的內容包括所述視頻數據處理單元的數量、物理地址、運行狀態和工作目錄和所述音頻數據處理單元的數量、物理地址、運行狀態和工作目錄。
[0031]優選地,在所述視頻數據處理步驟中,當所述視頻數據處理單元中的一個的處理發生錯誤時,或在所述音頻數據處理步驟中,當所述音頻數據處理單元中的一個的處理發生錯誤時,向所述調度單元報告該錯誤;所述調度模塊確定重新執行發生錯誤的處理或忽略該錯誤。
[0032]優選地,所述輸入處理單元將出錯的視頻數據片段和/或音頻數據片段重新加入未被發送的剩餘視頻數據片段和/或音頻數據片段中並進行重新編序,再所述重新編序所得的順序號按所述視頻數據處理單元和/或所述音頻數據處理單元的數量進行模運算,根據模運算的結果將所述出錯的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理。
[0033]優選地,在所述輸入處理步驟中,獲取所述源視頻文件的解封裝後的視頻幀數、音頻幀數和音視頻編碼格式,並將所述視頻幀數、音頻幀數和音視頻編碼格式發送給相應的視頻數據處理單元和音頻數據處理單元。
[0034]優選地,在所述輸入處理步驟中,將源文件經分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量的分割信息發送給所述輸出處理單元。
[0035]優選地,在所述輸入處理步驟中,所述輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息。
[0036]優選地,在所述輸出處理步驟中,所述輸出處理單元根據分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量建立該源文件的接收映射表,根據輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入的該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息在接收映射表中將收到的已處理的數據片段標記為已收到;當所述輸出處理單元判斷接收映射表中的所有視頻數據片段和音頻數據片段均標記為已收到時,對所述經處理後的視頻數據片段和所述經處理後的音頻數據片段進行整合處理,獲得經處理後的音視頻文件;當所述輸出處理單元判斷經過一定時間後接收映射表中有視頻數據片段和音頻數據片段標記為未收到時,將相應的經分割後的視頻數據片段或/和經分割後的音頻數據片段的缺失信息發送至所述調度單元。
[0037]優選地,所述接收映射表中還包含已收到的視頻數據片段的數量和音頻數據片段的數量;所述輸出處理單元判斷接收映射表中的視頻數據片段的數量和音頻數據片段的數量與所述輸入處理單元發送的視頻數據片段的數量和音頻數據片段的數量一致後,才進行接收映射表中的所有視頻數據片段和音頻數據片段是否均標記為已收到的判斷。
[0038]優選地,當所述調度單元接收到所述缺失信息時,指示所述輸入處理單元將缺失的視頻數據片段和/或音頻數據片段的順序號按當前視頻數據處理單元和/或音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理,並將再次處理後的視頻數據片段和/或音頻數據片段發送至所述輸出處理單元。
[0039]優選地,當所述調度單元接收到視頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的視頻數據片段重新按順序編號,並將該編號按當前視頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段重新分配給相應的視頻數據處理單元進行處理,並將再次處理後的視頻數據片段發送至所述輸出處理單元;當所述調度單元接收到音頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的音頻數據片段重新按順序編號,並將該編號按當前音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的音頻數據片段重新分配給相應的音頻數據處理單元進行處理,並將再次處理後的音頻數據片段發送至所述輸出處理單元。
[0040]本發明還提供一種分布式音視頻文件處理裝置,包括:數臺第一伺服器,分別用於對視頻數據片段進行處理;數臺第二伺服器,分別用於對音頻數據片段進行處理;第三伺服器,用於對經處理後的視頻數據片段和音頻數據片段進行處理並輸出;第四伺服器,用於接收源視頻文件,對所述源視頻文件進行處理獲得視頻數據和音頻數據,並將所述視頻數據和所述音頻數據分別按順序分割成成視頻數據片段和音頻數據片段後,並根據一定的分配規則對分割所得的視頻數據片段和音頻數據片段進行分配給相應的所述第一伺服器和所述第二伺服器進行處理,以及協調所述數臺第一伺服器、所述數臺第二伺服器和所述第三伺服器之間的工作。
[0041]優選地,所述第四伺服器將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,將各視頻數據片段和音頻數據片段的順序號按所述第一伺服器和所述第二伺服器的數量進行模運算,根據模運算的結果將各視頻數據片段和音頻數據片段分配給相應的所述第一伺服器和所述第二伺服器進行處理。
[0042]優選地,每一臺第一伺服器僅運行一個視頻數據處理進程;每一臺第二伺服器僅運行一個音頻數據處理進程。
[0043]優選地,所述第四伺服器對所接收的源文件進行解封裝,獲得視頻序列和音頻序列,並分別將所述視頻序列和所述音頻序列進行分割處理。
[0044]優選地,所述第三伺服器在判斷從各第一伺服器和各第二伺服器接收到經處理後的所有的視頻數據片段和音頻數據片段後,將所接到的視頻數據片段和音頻數據片段進行合併,並按照預定格式進行封裝。
[0045]優選地,所述第四伺服器獲取所述源視頻文件的解封裝後的視頻幀數、音頻幀數和音視頻編碼格式,並將所述視頻幀數、音頻幀數和音視頻編碼格式發送給相應的第一伺服器和第二伺服器。
[0046]優選地,所述第四伺服器將源文件經分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量的分割信息發送給所述第三伺服器。[0047]優選地,所述第四伺服器將所述源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息插入到分割後的視頻數據片段和音頻數據片段的文件名中。
[0048]優選地,所述第三伺服器根據分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量建立該源文件的接收映射表,根據第四伺服器向分割後的視頻數據片段和音頻數據片段中插入的該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息在接收映射表中將收到的已處理的數據片段標記為已收到;當所述第三伺服器判斷接收映射表中的所有視頻數據片段和音頻數據片段均標記為已收到時,對所述經處理後的視頻數據片段和所述經處理後的音頻數據片段進行整合處理,獲得經處理後的音視頻文件;當所述第三伺服器判斷經過一定時間後接收映射表中有視頻數據片段和音頻數據片段標記為未收到時,將相應的經分割後的視頻數據片段和/或經分割後的音頻數據片段的缺失信息發送至所述第四伺服器。
[0049]優選地,所述接收映射表中還包含已收到的視頻數據片段的數量和音頻數據片段的數量;所述第三伺服器判斷接收映射表中的視頻數據片段的數量和音頻數據片段的數量與所述第四伺服器發送的視頻數據片段的數量和音頻數據片段的數量一致後,才進行接收映射表中的所有視頻數據片段和音頻數據片段是否均標記為已收到的判斷。
[0050]優選地,當所述第四伺服器接收到所述缺失信息時,將缺失的視頻數據片段和/或音頻數據片段的順序號按當前第一伺服器和/或第二伺服器的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段和/或音頻數據片段重新分配給相應的第一伺服器和/或第二伺服器進行處理,並將再次處理後的視頻數據片段和/或音頻數據片段發送至所述第三伺服器。
[0051]優選地,當所述第四伺服器接收到視頻數據片段的缺失信息時,將所有缺失的視頻數據片段重新按順序編號,並將該編號按當前第一伺服器的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段重新分配給相應的第一伺服器進行處理,並將再次處理後的視頻數據片段發送至所述第三伺服器;當所述第四伺服器接收到音頻數據片段的缺失信息時,將所有缺失的音頻數據片段重新按順序編號,並將該編號按當前第二伺服器的數量進行模運算,根據模運算的結果將各缺失的音頻數據片段重新分配給相應的第二伺服器進行處理,並將再次處理後的音頻數據片段發送至所述第三伺服器。
[0052]本發明的分布式處理系統和處理方法解決了單機進行處理時的速度瓶頸,可以大大縮短音視頻文件處理所需的時間。由於建立了可靠的任務分配機制和糾錯機制,可以保證其處理結果的可靠性。同時可以有效避免單機處理負荷過高時頻繁出現死機等故障。其可擴展性很好,系統配置靈活,尤其適用於特別龐大的或大量的音視頻文件的處理。
【專利附圖】

【附圖說明】
[0053]圖1為本發明實施方式涉及的分布式處理系統的結構框圖;
圖2為本發明實施方式涉及的分布式處理系統的輸入處理模塊的結構框圖;
圖3為本發明實施方式涉及的分布式處理系統的輸出處理模塊的結構框圖;
圖4為本發明實施方式涉及的分布式處理系統的處理流程示意圖;
圖5為本發明實施方式涉及的分布式處理系統的Map文件的結構示意圖; 圖6為本發明實施方式涉及的分布式處理系統的處理步驟S5的處理流程圖;
圖7為本發明實施方式涉及的分布式處理系統的信息文件的結構示意圖;
圖8為本發明實施方式涉及的分布式處理系統的分割後的音頻和視頻文件的結構示意圖;
圖9為本發明實施方式涉及的分布式處理系統的處理步驟S8中的視頻文件處理流程
圖;
圖10為本發明實施方式涉及的分布式處理系統的處理步驟S8中的音頻文件處理流程
圖;
圖11為本發明實施方式涉及的分布式處理系統的處理步驟S9中輸出處理單元的處理流程圖;
圖12為本發明實施方式涉及的分布式處理系統的接收映射表結構示意圖。
【具體實施方式】
[0054]下面根據附圖所示實施方式闡述本項發明。此次公開的實施方式可以認為在所有方面均為例示,不具限制性。本發明的範圍不受上述實施方式的說明所限,僅由權利要求書的範圍所示,而且包括與權利要求範圍具有同樣意思及權利要求範圍內的所有變形。
[0055]圖1為分布式處理系統的結構框圖。如圖1所示,本實施方式的分布式系統包括調度模塊(Dispatcher模塊)1、輸入處理單元2、數個視頻處理單元3和4、數個音頻處理單元5和6、輸出處理單元7、監視模塊(Watcher模塊)8以及客戶端模塊(Client模塊)9。其中,調度模塊I用於協調整個系統的各部分的運行。輸入處理單元2包括監控模塊(Monitor模塊)21、輸入處理模塊(Ingress模塊)22和傳輸模塊(Offer模塊)23。優選地,上述監控模塊21、輸入處理模塊22和傳輸模塊23之間可以採用消息隊列通信。上述視頻處理單元3 (4)包括監控模塊(Monitor模塊)31 (41 )、視頻處理模塊(VP模塊)32 (42)和傳輸模塊(Offer模塊)33 (43)。優選地,上述監控模塊31 (41 )、視頻處理模塊32 (42)和傳輸模塊33 (43)之間可以採用消息隊列通信。音頻處理單元5 (6)包括監控模塊(Monitor模塊)51 (61)、音頻處理模塊(AP模塊)52 (62)和傳輸模塊(Offer模塊)53 (63)。優選地,上述監控模塊51 (61)、音頻處理模塊52 (62)和傳輸模塊53 (63)之間可以米用消息隊列通信。輸出處理單元7包括監控模塊(Monitor模塊)71、輸出處理模塊(Egress模塊)72和傳輸模塊(Offer模塊)73。優選地,上述監控模塊71、輸出處理模塊72和傳輸模塊73之間可以採用消息隊列通信。監視模塊8與調度模塊I共享內存並由此獲得調度模塊I中的所有信息。監視模塊8將獲取的信息發送給客戶端模塊9,由客戶端模塊9將其以圖形界面顯示給用戶。上述調度模塊1、上述輸入處理單元2和上述監視模塊(Watcher模塊)8可以共用一臺物理機器(伺服器)。每一個視頻處理單元3或4可以單獨用一臺物理機器(伺服器),即:上述監控模塊31、上述視頻處理模塊32和上述傳輸模塊33可以共用一臺物理機器(伺服器),以及上述監控模塊41、上述視頻處理模塊42和上述傳輸模塊43可以共用一臺物理機(伺服器),其中每一臺物理機器(伺服器)可以每一次僅運行一個視頻處理進程(VP進程);每一個音頻處理單元5或6可以單獨用一臺物理機器(伺服器),即:上述監控模塊51、上述音頻處理模塊52和上述傳輸模塊53可以共用一臺物理機器(伺服器),以及上述監控模塊61、上述音頻處理模塊62和上述傳輸模塊63共用一臺物理機器(伺服器),其中每一臺物理機器(伺服器)可以每一次僅運行一個音頻處理進程(AP進程)。上述輸出處理單元7可以單獨用一臺物理機器(伺服器),即:上述監控模塊71、上述輸出處理模塊72和上述傳輸模塊73可以共用一臺物理機器(伺服器)。
[0056]上述調度模塊I分別與上述輸入處理單元2中的監控模塊21、各個視頻處理單元(視頻處理單元3和4)中的監控模塊(監控模塊31和41)、各個音頻處理單元(音頻處理單兀5和6)中的監控模塊(監控模塊51和61)及上述輸出處理單兀7中的監控模塊71進行通信連接,用於協調整個系統中的輸入處理單元2、視頻處理單元3和4、音頻處理單元5和6和輸出處理單元7等各部分的運行。上述輸入處理單元2中的傳輸模塊23分別與各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單元(音頻處理單元5和6)中的傳輸模塊(監控模塊53和63)進行通信連接,用於向各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單元(音頻處理單兀5和6)中的傳輸模塊(傳輸模塊53和63)分別傳輸相應的信息和數據。上述輸出處理單元7中的傳輸模塊73分別與各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單兀(音頻處理單兀5和6)中的傳輸模塊(傳輸模塊53和63)進行通信連接,用於從各個視頻處理單元(視頻處理單元3和4)中的傳輸模塊(傳輸模塊33和43)和各個音頻處理單兀(音頻處理單兀5和6)中的傳輸模塊(傳輸模塊53和63)分別接受相應的信息和數據。
[0057]圖2為上述輸入處理模塊22的結構框圖。如圖2所示,上述輸入處理模塊22包括解封裝模塊221、輸入數據處理模塊222和數據存儲模塊223,其中上述解封裝模塊221對上述輸入處理單元2所接受的源視頻文件進行解封裝,上述輸入數據處理模塊222對音/視頻文件進行處理,上述數 據存儲模塊223用於存儲音/視頻文件及相關信息。上述解封裝模塊221包括音/視頻文件格式判斷單元2211、解封裝選擇單元2212和數個解封裝單元2213、2214、2215……。其中,上述數個解封裝單元(2213、2214、2215……)具有不同的格式,並且上述解封裝選擇單元2212可以根據上述音/視頻文件格式判斷單元2211的判斷結果從上述數個解封裝單元中選擇相應的解封裝單元對上述源視頻文件進行解封裝,從而使得上述解封裝模塊221可以對應於不同的文件格式進行解封裝。輸入數據處理模塊222具有分割模塊2221和分配模塊2222。分割模塊2221可以將解封裝後的音/視頻文件分割成多個音頻數據片段和視頻數據片段,並分別給多個音頻數據片段和多個視頻數據片段編序號,分配模塊2222通過對分割後的片段的序號分別按照音頻處理單元和視頻處理單元的數量取模,以此確定每個音頻數據片段和視頻數據片段對應的音頻處理單元和視頻處理單元。上述輸入處理模塊22能夠獲取所述源視頻文件的封裝格式信息,並將上述信息通過上述傳輸模塊23、33、43、53、63發送給上述輸出處理單元7。
[0058]圖3為上述輸出處理模塊72的結構框圖。如圖3所示,上述輸出處理模塊72包括封裝模塊721、輸出數據處理模塊722和存儲模塊723。其中,上述存儲模塊723存儲經過上述視頻處理單元3和4及上述音頻處理單元5和6處理後的音頻文件和視頻文件,上述輸出數據處理模塊722對經過上述視頻處理單元3和4及上述音頻處理單元5和6處理後的音頻文件和視頻文件進行處理,並將經上述輸出數據處理模塊722處理後的音頻文件和視頻文件輸送至上述封裝模塊721。
[0059]上述封裝模塊721包括封裝格式選擇單元7211和數個具有不同的封裝格式的封裝單元7212、7213、7214……,其中上述封裝格式選擇單元7211根據上述傳輸模塊73所接收到的封裝格式信息從數個封裝單元(7212、7213、7214……)中選擇相應的封裝單元進行封裝,從而可以使得上述封裝模塊721對應於不同的封裝格式的要求進行封裝。
[0060]圖4為本發明的分布式處理系統的處理流程示意圖。下面結合圖4來說明分布式處理系統的處理流程。操作人員開啟各物理機器(伺服器),啟動上述分布式處理系統(步驟SI)。上述調度模塊I讀取系統文件(步驟S2)。優選地,在步驟S2中,上述調度模塊I在指定目錄讀取系統配置文件(例如tvmccd.cfg),獲取該進程的〈Input〉(輸入)、〈Server〉(月艮務器)和〈Port〉(埠)等配置項,同時在〈Input〉項指定的目錄(例如opt/tvmccd/ingress/Dispatcher/Input)讀取相應的文件(例如tvmccd.par文件和logo文件)。根據相應文件(例如tvmccd.par )中的內容生成源視頻文件名與文件ID對應的映射表文件(Map文件,例如tvmccd.map)ο圖5為本發明的分布式處理系統的Map文件的一例的示意圖,根據Map文件可以查詢源視頻文件名與文件ID的對應關係。上述logo文件可以有多個,也可以沒有logo文件。系統配置文件中記錄有整個分布式系統的配置信息,如:各模塊所在計算機的IP位址、使用的埠號、工作目錄的位置、視頻處理和音頻處理模塊的數量、任務分配的方法等。PAR文件中記錄有待處理文件的文件名及處理後的文件名、處理後的音/視頻文件的編碼格式、碼率、幀率、解析度等各項參數。LOGO文件記錄的是用戶需要在視頻中加入的水印、字幕等的內容及其大小、位置等參數。與調度模塊I同樣的,系統中的其他模塊也都從各自的指定目錄中讀取系統配置文件,從配置文件中獲得系統中各模塊的通信地址等信息,以此與需要通信的其他模塊建立連接。上述調度模塊I分別與上述輸入處理單元2的監控模塊21、各視頻 處理單元(3和4)的監控模塊(31和41)、各音頻處理單元的監控模塊(51和61)和上述輸出處理單元7的監控模塊71之間建立通信連接(步驟S3)。優選地,在步驟S3中,上述調度模塊I建立Socket監聽(監聽埠號Dispatcher_Port在系統配置文件中,比如tvmccd.cfg),等待上述各監控模塊的連接請求。各處理單元按系統配置文件中的地址向調度模塊I發出建立Socket連接的請求,一旦上述調度模塊I監聽到上述監控模塊的Socket連接請求,接受上述各監控模塊的連接請求並建立Socket連結,同時將上述相應的文件發送給對應的監控模塊(監控模塊21、31、41、51、61或71)。例如,將tvmccd.par和tvmccd.map文件發送給每一個監控模塊,將logo文件發送給各視頻處理單元(5和6)的監控模塊(51和61)。
[0061]上述輸入處理單元2的傳輸模塊23與各視頻處理單元(3和4)的傳輸模塊(33和43)和各音頻處理單元(5和6)的傳輸模塊(53和63)建立通信連接,同時上述輸出處理單元7的傳輸模塊73與各視頻處理單元(3和4)的傳輸模塊(33和43)和各音頻處理單元(5和6)的傳輸模塊(53和63)建立通信連接(步驟S4)。上述輸入處理單元2開始對源視頻文件的處理(步驟S5)。
[0062]圖6為上述步驟S5的處理流程圖。如圖6所示,上述輸入處理單元2的輸入處理模塊22將源視頻文件的處理進程的啟動時間和名稱等信息發送給上述監控模塊21 (步驟S51)。上述輸入處理模塊22在指定目錄讀取系統配置文件(比如tvmccd.cfg文件),獲取相應的〈Source〉(源項)「Processed〉(處理項)、〈Failed> (錯誤項)、〈0utput> (輸出項)和〈Send〉(發送項)等配置項(步驟S52)。上述輸入處理模塊22從上述〈Source〉項目錄按順序讀取源視頻文件(步驟S53),並由上述輸入處理模塊22的解封裝模塊221依次對上述源視頻文件進行解封裝(步驟S54)。如果源視頻文件解封裝成功(步驟S55:是),獲取相應的音、視頻巾貞序列,並將解封裝成功的源視頻文件從〈Source〉項目錄移送至〈Processed〉目錄和將解封裝後的音、視頻幀序列存儲至上述存儲模塊223(步驟S56)。上述輸入處理模塊22的輸入數據處理模塊222對上述存儲模塊223中的音、視頻幀序列進行處理,獲取其相關信息(比如編碼信息等),並將所獲取的相關信息(比如編碼信息等)寫入信息文件(info文件)(步驟S57)。圖7為信息文件的格式示意圖。如圖7中所示,信息文件中含有源文件ID、文件長度、編碼類型等。本實施例中,視頻信息文件以V1-文件ID.1nfo的格式命名,其中還包含視頻比特率、視頻高度、視頻寬度等信息;音頻信息文件以Al-文件ID.1nfo的格式命名,其中還包含音頻比特率、採樣率、聲道數等信息。在步驟S57中,當info文件正在寫時,info文件被寫入〈Output〉目錄,當info文件寫完成並確認無誤時,將info文件移送到〈Send〉目錄。上述輸入處理模塊22的輸入數據處理模塊222將視頻幀序列和音頻幀序列分別分割成多個以GOP (畫面組)為單位的視頻數據片斷(視頻文件)和多個以GOA (即與GOP相對應的音頻數據單元)為單位的音頻數據片段(音頻文件)(步驟S58)。比如,對於MPEG文件,每個GOP以I幀開始,I幀後面可以跟隨著P幀和B幀構成一個G0P。由於只有I幀具有完整的畫面的數據,P幀和B幀只具有相對其他幀有變化的數據,每個GOP段的幀分割在一個文件中可以避免P幀和B幀的數據因為與對應的I幀不在一個GOP文件裡而無法恢復完整的畫面數據。圖8為GOP或GOA文件的格式示意圖。如圖8中所示,分割後的每個GOP文件和GOA文件中包含其源文件ID、本GOP或GOA文件在源文件的所有的GOP或GOA文件中的序號、包含的幀數等信息以及幀數據部分。輸入數據處理模塊222以一定規則命名分割後的GOP文件和GOA文件,文件名中包括該文件對應的源文件的文件ID、該文件在源文件的所有GOP或GOA文件中的序號和文件類型(G0P文件或GOA文件)(步驟S59)。例如,文件可以標記為gop,其中「R)l」是源文件的文件ID,「-1」表示該文件在分割後的文件中序號為I,文件後綴「.gop」表示該文件是GOP文件;由此文件名就可以確定該文件是文件ID為FOl的源文件的第I個GOP文件。輸入數據處理模塊222根據一定的分配規則對視頻文件和音頻文件進行分配,例如,輸入數據處理模塊222查詢系統配置文件中的音頻和視頻處理單元的數量,將GOP或GOA文件的序號按照視頻或音頻處理單元的數量取模,由此確定將該GOP或GOA文件分配給哪個視頻或音頻處理單元進行處理(步驟S510 )。例如,有序號為1-9的9個GOP文件,當前如圖1所示有2個視頻處理單元3和4 ;輸入數據處理模塊222依次用每個GOP文件的序號進行模2 (視頻處理單元的數量)的運算,結果為I的文件分配給視頻處理單元3,結果為O的文件分配給視頻處理單元4。如此,文件1、
3、5、7、9被分配給視頻處理單元3,文件2、4、6、8被分配給視頻處理單元4。如果當前有4個視頻處理單元VP1-VP4,則用每個GOP文件的序號進行模4 (視頻處理單元的數量)的運算,結果為I的文件分配給VPl,結果為2的文件分配給VP2,結果為3的文件分配給VP3,結果為O的文件分配給VP4。如此,文件1、5、9被分配給VPl,文件2、6被分配給VP2,文件3、7被分配給VP3,文件4、8被分配給VP4。同樣的,GOA文件也按此規則確定分配給哪個音頻處理單元。每個GOP或GOA文件的分配完成後,輸入處理模塊22將分配結果通過消息發送給輸入處理單兀2的傳輸模塊23。上述輸入處理模塊22的輸入數據處理模塊222將生成的GOP和GOA文件分別寫入〈Output〉項目錄,並當每個GOP或GOA文件寫磁碟完成並確認無誤時被移送至〈Send〉項目錄,源文件在處理完成後由〈Source〉目錄移送至〈Processed〉目錄(步驟S511),同時將GOP和GOA的總數寫入總數文件(total文件)(步驟S512)。在步驟S510中,當total文件正在寫時,其被寫入〈Output〉項目錄,當total文件寫完成並確認無誤時,其被移送至〈Send〉項目錄。輸入處理單元2的傳輸模塊23接收輸入處理模塊22發送的各GOP和GOA文件的分配結果,並按該結果將GOP和GOA文件連同total文件發送給相應的音/視頻處理單元(步驟S513)。在步驟S514中,將文件名(包括源文件和G0P、GOA文件的文件名)、文件ID、視頻幀數、音頻幀數、視頻編碼格式和音頻編碼格式發送給上述監控模塊21。如果源視頻文件解封裝出錯(步驟S55:否),上述輸入處理單元2將上述解封裝出錯的源視頻文件從〈Source〉項目錄移送到〈Failed〉項目錄(步驟S515),同時將出錯的源視頻文件ID發送給上述監控模塊21 (步驟S516)。上述監視模塊8將上述監控模塊21所收到的出錯信息發送到客戶端模塊9。用戶可以通過客戶端模塊9輸入命令,決定是否重新對上述源視頻文件進行新一輪的處理,或者直接放棄對上述源視頻文件進行新一輪的處理。
[0063]返回圖4,在步驟S6中,上述輸入處理單元2的監控模塊21將上述文件名、文件ID、視頻幀數、音頻幀數、視頻編碼格式和音頻編碼格式等相關信息發送給上述調度模塊1,同時上述輸入處理單元2的傳輸模塊23將上述〈Send〉目錄下的info文件、GOP和GOA文件和total文件等數據發送到相應的視頻處理單元3 (4)和音頻處理單元5 (6)(步驟S6)。
[0064]在步驟S7中,上述調度模塊I將視頻幀數、音頻幀數、視頻編碼格式和音頻編碼格式等相關信息發送到相應的視頻處理單元3、4和音頻處理單元5、6以及輸出處理單元7中。
[0065]在步驟S8中,上述視頻處理單元3 (4)的視頻處理模塊32 (42)根據監控模塊31(41)所接收到的視頻幀數和視頻編碼格式等相關信息和輸送模塊33 (43)所接收到的視頻文件和info文件等信息對上述GOP文件(視頻文件)進行相應的處理,同時上述音頻處理單元5 (6)根據監控模塊51 (61)所接收到的音頻幀數和音頻編碼格式等相關信息和輸送模塊53 (63)所接收到的音頻文件和info文件等信息對上述GOA文件(音頻文件)進行相應的處理,並將經過處理後的音/視頻文件發送至上述輸出處理單元7。
[0066]圖9為步驟S8中的視頻文件處理流程圖。在本實施方式中,視頻處理單元3和視頻處理單元4的視頻文件處理流程相同,因此僅就視頻處理單元3介紹視頻文件處理流程。如圖9所示,上述視頻處理單元3的視頻處理模塊32將視頻文件處理進程的啟動時間和收到的視頻文件的ID信息(例如收到了以下文件:F01-1.gop, F01-3.gop, F01-5.gop等和F02-l.gop,F02-3.gop等)發送給上述監控模塊31 (步驟S811)。上述監控模塊31可以將上述啟動時間和視頻文件的ID信息反饋到上述調度模塊I,使得系統能夠監控上述視頻處理單元3的處理進程狀況。上述視頻處理模塊32在指定目錄讀取系統配置文件(tvmccd.cfg),獲取上述視頻處理單元3的處理進程的〈Source〉(源項)、〈Output〉(輸出項)和〈Send〉(發送項)等配置項(步驟S812),並在〈Source〉項目錄讀取相關信息(info文件)和視頻文件(gop文件)(步驟S813)。如果〈Source〉項目錄下有total文件,則上述視頻處理模塊32將上述total文件移送至〈Send〉項目錄。然後,上述視頻處理模塊32根據監控模塊31所接收到的視頻編碼格式信息選擇相應的解碼器對上述視頻文件進行解碼(步驟S814)。如果解碼成功(步驟S815:是),上述視頻處理模塊32對上述經解碼後的視頻數據進行預定處理(步驟S816)。上述預定處理可以是視頻幀率定製調節、向視頻中添加滾屏信息、不同音/視頻文件的合併等。上述視頻處理模塊32根據監控模塊31從調度模塊I收到的處理後的文件的參數要求將經過處理後的視頻數據進行編碼,獲取經處理後的視頻文件(gop文件),並將正在輸出的視頻文件(gop文件)寫到〈Output〉項目錄,在寫磁碟結束並校驗無誤後將該文件移送到〈Send〉項目錄,由上述傳輸模塊33輸送至上述輸出處理單元7 (步驟S817)。
[0067]如果解碼出錯(步驟S815:否),並且該視頻文件的解碼次數η沒有超過預定閾值a(步驟S818:否),則將上述解碼次數η加I (步驟S819)並返回到步驟S814進行重新解碼,如果該視頻文件的解碼次數η超過預定閾值a (步驟S818:是),則將解碼出錯的視頻文件的ID信息發送給監控模塊31 (步驟S8110)。上述監控模塊31將解碼出錯的視頻文件的ID信息反饋給上述調度模塊1,上述調度模塊I可以選擇讓輸入處理單元2向上述視頻處理單元3再次發送該出錯的視頻文件,或讓輸入處理單元2將該出錯的視頻文件重新加入未被上述輸入處理單元2的傳輸模塊23發送的剩餘視頻文件中並進行重新編序號,再根據上述一定的分配規則將該出錯的視頻文件分配給相應的視頻處理單元進行處理。此外,調度模塊I也可以選擇直接忽略該解碼錯誤,並將錯誤信息輸出給用戶。
[0068]圖10為步驟S8中的音頻文件處理流程圖。在本實施方式中,音頻處理單元5和音頻處理單元6的視頻文件處理流程相同,因此僅就音頻處理單元5介紹音頻文件處理流程。如圖10所示,上述音頻處理單元5的音頻處理模塊52將音頻文件處理進程的啟動時間和音頻文件的ID信息(例如收到了以下文件=FOl-L goa,F01-3.goa,F01-5.goa等和F02-1.goa,F02-3.goa等)發送給上述監控模塊51 (步驟S821)。上述監控模塊51可以將上述啟動時間和音頻文件的ID信息反饋到上述調度模塊I,使得系統能夠監控上述音頻處理單元5的處理進程狀況。上述音頻處理模塊52在指定目錄讀取系統配置文件(tvmccd.cfg),獲取上述音頻處理單元5的處理進程的〈Source〉(源項)、〈0utput> (輸出項)和〈Send〉(發送項)等配置項(步驟S822),並在〈Source〉項目錄讀取相關信息(info文件)和音頻文件(goa文件)(步驟S823)。如果〈Source〉項目錄下有total文件,則上述音頻處理模塊52將上述total文件移送至〈Send〉項目錄。然後,上述音頻處理模塊52根據監控模塊51從上述調度模塊I所接收到的音頻編碼格式信息選擇相應的解碼器對上述音頻文件進行解碼(步驟S824)。如果解碼成功(步驟S825:是),上述音頻處理模塊52對上述經解碼後的音頻數據進行預定處理(步驟S826)。上述預定處理可以是音量自動調節、音量定製調節或聲道處理等。上述音頻處理模塊52根據監控模塊51從調度模塊I收到的處理後的文件的參數要求將經過處理後的音頻數據進行編碼,獲取經處理後的音頻文件(goa文件),並將正在輸出的音頻文件(goa文件)寫到〈Output〉項目錄,在寫磁碟結束並校驗無誤後將該文件移送到〈Send〉項目錄,由上述傳輸模塊33輸送至上述輸出處理單元7 (步驟S827)。
[0069]如果解碼出錯(步驟S825:否),並且該音頻文件的解碼次數m沒有超過預定閾值b(步驟S828:否),則將上述解碼次數m加I (步驟S829)並返回到步驟S824進行重新解碼,如果該音頻文件的解碼次數m超過預定閾值b (步驟S828:是),則將解碼出錯的音頻文件的ID信息發送給監控模塊51 (步驟S8210)。上述監控模塊51將解碼出錯的音頻文件的ID信息反饋給上述調度模塊1,上述調度模塊I可以選擇讓輸入處理單元2向上述音頻處理單元5再次發送該出錯的音頻文件,或讓輸入處理單元2將該出錯的音頻文件重新加入未被上述輸入處理單元2的傳輸模塊23發送的剩餘音頻文件中並進行重新編序號,再根據上述一定的分配規則將該出錯的音頻文件分配給相應的音頻處理單元進行處理。此外,調度模塊I也可以選擇直接忽略該解碼錯誤,並將錯誤信息輸出給用戶。
[0070]返回圖4,在步驟S9中,上述輸出處理單元7根據上述監控模塊71從上述調度模塊I所接收到的相關信息對來自上述視頻處理單元3 (4)的視頻文件和來自上述音頻處理單元5 (6)的音頻文件進行處理,獲得經處理後的音視頻文件。
[0071]圖11為步驟S9中上述輸出處理單元7的處理流程圖。如圖11所示,上述輸出處理單元7的輸出處理模塊72將輸出處理單元7的啟動時間及處理進程的名稱發送給上述輸出處理單元7的監控模塊71 (步驟S91)。上述輸出處理模塊72在指定目錄讀取系統配置文件(比如tvmccd.cfg),獲取上述處理進程的配置項,例如(源項)、〈0utput>(輸出項)和〈FinishedX完成項)等配置項(步驟S92),並且監控〈Source〉項目錄的write_close事件(寫入關閉事件),當有write_close事件到來時,獲取write_close的文件的文件名,並記錄最新的write_close事件的時刻(步驟S93)。由此,可以監控〈Source〉項目錄最新收到的文件,如果收到由傳輸模塊23經過傳輸模塊33、43、53和/或63傳輸到傳輸模塊73的total文件,就讀取total文件中關於音頻文件的總數信息和視頻文件的總數信息,比如GOP文件的總數信息和GOA文件的總數信息,同時上述輸出數據處理模塊721獲取音/視頻文件(比如GOP和GOA文件)(步驟S94)。根據total文件中的GOP和GOA文件的總數信息,輸出數據處理模塊722為每個源文件生成GOP和GOA文件的接收映射表(步驟S95)。接收映射表的結構參照圖12,並且上述所接收到的音頻文件的總數信息和視頻文件的總數信息以及所生成的接收映射表均可存儲在上述輸出處理模塊72的存儲模塊723中。圖12為接收映射表的結構示意圖。由圖12可以看出,接收映射表中記錄有源文件的文件ID和該源文件的所有GOP和GOA文件,並為每個GOP和GOA文件預留了一個狀態標識。初始的狀態標識為0,表示未收到該GOP或GOA文件。輸出數據處理模塊722掃描已經收到的GOP和GOA文件,並依次在接收映射表中將該GOP或GOA文件的狀態標識設為1,表示收到了該GOP或GOA文件(步驟S96)。例如,輸出數據處理模塊722收到了文件ID為FOl的total文件,該total文件顯示文件FOl有9個GOP文件R)l-1.gop?R)l_9.gop和9個GOA文件R)l-1.goa?R)l_9.goa。據此,輸出數據處理模塊722為文件ID為FOl的源文件建立如圖12所示的接收映射表。然後,輸出數據處理模塊722掃描已經收到的GOP和GOA文件中屬於該源文件的部分。根據輸入處理單元分割文件時的命名規則,輸出數據處理模塊722掃描到以FOl開頭的.gop或.goa文件就可以判斷出該文件屬於源文件H) I,H) 1-1.gop就是該源文件的第一個GOP文件。如此,可以將已收到的源文件FOl的所有GOP和GOA文件在在接收映射表中標記為已接收。由於〈Source〉項目錄的write_close事件被監控,輸出數據處理模塊722可以監控新收到的GOP和GOA文件,並將其在接收映射表中標記為已接收。接收映射表中還包括接收到的GOP和GOA文件的數量信息,每收到一個GOP或GOA文件,將對應的文件數量加I (步驟S97)。
[0072]上述輸出數據處理模塊722將接收映射表中記錄的GOP和GOA文件的數量與total文件中記錄的數量進行對比(步驟S98)。當數量一致時(步驟S98:是),輸出數據處理模塊722掃描接收映射表,看是否每個GOP和GOA文件的狀態標識均為已接收(步驟S99)。當接收到的文件總數與total文件的信息不同時,說明還有GOP或GOA文件沒有接收到。
[0073]如果上述輸出數據處理模塊722判斷上述源視頻文件的所有GOP和GOA文件均已接收(步驟S99:是),則在上述輸出處理模塊72的封裝模塊721中進行封裝處理(步驟S910)。如果封裝成功(步驟S911:是),上述封裝模塊721將封裝成功的新音視頻文件輸出到上述輸出數據處理單元7的傳輸模塊73(步驟S912)。如果封裝出錯(步驟S911:否),上述輸出數據處理模塊722判斷嘗試重新封裝處理的次數M是否超出預定值B (步驟S917)。如果上述嘗試重新封裝處理的次數M沒有超出預定值B (步驟S917:否),將M加I (步驟S918),並回到上述封裝模塊721再次嘗試封裝處理。如果上述嘗試重新封裝處理的次數M超出預定值B (步驟S917:是),將封裝出錯的音、視頻文件的ID信息發送給上述輸出處理單元7的監控模塊71 (步驟S919),上述監控模塊71將上述封裝錯誤信息和上述封裝出錯的音、視頻文件的ID信息反饋給上述調度模塊I (步驟S920)。上述調度模塊I根據要求決定是否重新對上述源視頻文件進行新一輪的處理,或者直接放棄對上述源視頻文件進行新一輪的處理。
[0074]如果上述輸出數據處理模塊722判斷上述源視頻文件中的所有音、視頻文件(G0P和GOA文件)沒有被完全接收(步驟S96:否),則上述輸出數據處理模塊722判斷等待沒有被接收的音、視頻文件的時間N是否超過預定閾值A(步驟S913)。如果等待沒有被接收音、視頻文件的時間N沒有超過預定閾值A (步驟S913:否),則繼續等待沒有被接收的音、視頻文件。如果等待沒有被接收音、視頻文件的時間N超過預定閾值A (步驟S913:是),則上述輸出數據處理模塊722檢查上述音、視頻文件的接收映射表,獲得未收到的音頻文件的ID信息和/或視頻文件的ID信息等,並將其發送給上述輸出處理單元7的監控模塊71 (步驟S914)。例如,如圖12所示,上述輸出數據處理模塊722通過檢查上述接收映射表發現Tvm.mp4的F01-4.goa和F01-6.gop兩個文件在等待時間超過上述預定閾值A後仍沒收到,上述輸出數據處理模塊722將未收到文件的文件ID發送給上述輸出處理單元7的監控模塊71。其中,上述等待時間可以由輸出處理模塊72讀取到了某源文件的total文件起計算,也可以自該源文件的接收映射表被建立之時起計算。上述監控模塊71將上述音、視頻文件接收錯誤信息和未收到的音頻和/或視頻文件的ID信息反饋到上述調度模塊I (步驟S915)。上述調度模塊I根據上述監控模塊71所反饋的上述音、視頻文件接收錯誤信息和未收到的音頻文件的ID信息和/或視頻文件的ID信息可以命令上述輸入處理單元2根據上述一定的分配規則重新分配給音頻處理單元和/或視頻處理單元(步驟S916),即將該文件的序號按音頻或視頻處理單元的數量取模。因此,如果處理單元數量較初次分配時發生變化,該文件會被分配給與初次分配時不同的處理單元。例如,F01-7.gop初次分配時系統中有4個視頻處理單元VP1-VP4,該文件被分配給VP3。輸出處理單元未收到該文件後要求輸入處理單元2重新處理該文件。此時,VP2已因故障退出系統,系統中還有3個視頻處理單元VP1、VP3、VP4。因此,輸入處理單元2的分配規則就變成用文件序號模3,結果為I的文件分配給VP1,結果為2的文件分配給VP3,結果為O的文件分配給VP4。按此規則,F01-7.gop被重新分配給VPI。
[0075]在步驟S916還可以採用以下處理方式:輸入處理單元2每收到一個需要重新處理的GOP或GOA文件就賦予其一個重新處理的序號,並按該序號進行分配。例如,輸入處理單元2先後收到了 3個需要重新處理的GOP文件的ID:F01-7.gop,F03-2.gop,F02-4.gop。輸入處理單元2的分配模塊2222每收到一個需重新處理的GOP文件,就將其維護的需重新處理的GOP文件的序號加I並賦予新收到的GOP文件。如此,F01-7.gop,F03-2.gop,F02-4.gop依次被賦予序號1、2、3。假設此時系統中有2個視頻處理單元VP1-VP2,分配模塊2222將F01-7.gop的序號I模2,結果為1,分配給VPl ;將R)3_2.gop的序號2模2,結果為0,分配給VP2 ;將R)2-4.gop的序號3模2,結果為1,分配給VPl。然後分配模塊2222將以上分配信息發送給傳輸模塊23,由傳輸模塊23發送給相應的視頻處理單元。如果輸入處理單元2收到需要重新處理的GOA文件,採用同樣的方法進行分配。需要重新處理的GOP文件和GOA文件分別進行排序,具有彼此獨立的序號。
[0076]輸入處理模塊、視頻處理模塊、音頻處理模塊以及輸出處理模塊定時通過消息隊列向各自的監控模塊報告各自模塊的工作狀態、當前任務、已完成任務等,同時還將上述內容記入各自的日誌文件。各監控模塊定時將本處理單元的IP位址、系統負荷、網絡狀況、本進程狀態以及從本單元的處理模塊收到的上述信息發送給調度模塊I。監視模塊8定時與調度模塊I分享上述信息,並通過客戶端模塊9處理後以圖形界面顯示給用戶。
[0077]調度模塊I利用各監控模塊發來的信息維護配置文件,配置文件中為每個物理機器分配了一個狀態屬性,當該機器因掉電或斷網暫時退出系統時,狀態屬性被設為不可用;當有新的物理機器加入系統時,用戶指令調度模塊I在配置文件中添加該機器的信息。配置文件中的信息發生變化後,調度模塊I賦予其一個新的版本號,並立即將其發送至各控制豐吳塊。
[0078]如果系統運行中調度模塊I掉電或者無響應,客戶端模塊9就無法從監視模塊8獲取數據,這種情況持續一定時間後,客戶端模塊9會通過提示框或警報聲等方法提示用戶排除故障。故障排除後,調度模塊I重新讀取配置文件與各監控模塊建立連接,各監控模塊根據各自的日誌將未成功傳送給調度模塊I的信息重新傳送。
[0079]如果某一監控模塊停止工作,調度模塊I在經過一定時間沒有從該模塊收到信息後判斷該模塊出現故障。故障原因可能是由斷電或斷網造成的物理故障也可能是該模塊的進程無響應。調度模塊I偵測與該監控模塊的物理機器的連接是否正常(比如可以使用ping命令),如果不正常說明是物理故障,通過客戶端模塊9向用戶發送提示。如果連接正常說明是該模塊的進程無響應,則等待一定時間後再試,經過一定次數的嘗試仍無法通信再通過客戶端模塊9向用戶發送提示。
[0080]如果某一處理單元所在的物理機器掉電,重新通電後,該監控模塊的處理單元重新初始化與其他模塊建立連接。如果掉電的機器是輸入處理單元、視頻處理單元或音頻處理單元所在的機器,已經完成處理的文件會被從〈Source〉項目錄移送至〈Processed〉或〈failed〉等目錄,因此,恢復後只要從〈Source〉項目錄讀取文件繼續進行處理即可。如果掉電的機器是輸出處理單元所在的機器,初始化後,輸出處理模塊掃描〈Source〉項目錄,讀取目錄下的total文件,建立音、視頻文件的接收映射表,並根據〈Source〉項目錄下的GOP和GOA文件填寫接收映射表。掃描的同時監視最新收到的文件,對〈Source〉項目錄下的所有文件都完成上述操作後繼續S93?S917的處理。如果某一處理單元所在的物理機器斷網,當連接恢復時,調度模塊I向其發送最新的配置文件,該單元的監控模塊查詢日誌,並指令該單元的傳輸模塊將〈Send >目錄下的文件傳輸給指定的處理單元。
[0081]如果監控模塊的進程無響應後被重啟,重啟後首先與其他模塊建立通信,然後在日誌中查詢與各模塊的最後通信時間,要求調度模塊I和對應的處理模塊、傳輸模塊重傳該時間之後的信息。監控模塊向調度模塊I發送信息時都帶有配置文件的版本號,因此,調度模塊I發現信息中的配置文件過期會重新發送新的配置文件。監控模塊對收到的重傳的信息執行正常的操作。
[0082]如上所述,輸入處理模塊、視頻處理模塊、音頻處理模塊以及輸出處理模塊定時通過消息隊列向各自的監控模塊報告各自模塊的工作狀態,因此,當某個模塊的進程無響應超過一定時間,對應的監控模塊就會發現異常,如果等待一定時間不能恢復,監控模塊就提醒用戶重啟該模塊的進程或者自行重啟該模塊的進程。重啟後,這些模塊從各自的工作目錄讀取文件進行處理即可。
[0083]在本實施方式中,各物理機器通過區域網連接,各模塊的地址為所在機器的IP位址和對應埠號,但各物理機器也可以通過廣域網或高速總線等其他方式連接,只要可以賦予各模塊相應的地址表示方式即可。
[0084]另外,在利用本發明的系統處理大量的小體積視頻文件時,也可以省略分割音/視頻文件的步驟,讓每個音頻處理模塊和視頻處理模塊獨自處理一個源文件的音頻或視頻部分。
[0085]在本實施方式中,分布式系統用於處理音視頻文件,但本系統改變相應模塊的功能後也可以用於處理其他類型的數據,只要這種分塊處理後再合併的處理流程不會對該數據的處理結果造成影響即可。
【權利要求】
1.一種分布式音視頻文件處理系統,包括: 輸入處理單元,用於接收源視頻文件,對所述源視頻文件進行處理獲得視頻數據和音頻數據,並將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,並根據一定的分配規則將分割所得的視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元/音頻數據處理單元進行處理; 數個視頻數據處理單元,分別用於對經分割後的視頻數據片段進行處理; 數個音頻數據處理單元,分別用於對經分割後的音頻數據片段進行處理; 輸出處理單元,用於對經處理後的視頻數據片段和音頻數據片段進行處理並輸出; 調度單元,用於協調所述輸入處理單元、所述數個視頻數據處理單元、所述數個音頻數據處理單元及輸出處理單元的工作。
2.根據權利要求1所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,將各視頻數據片段和音頻數據片段的順序號按視頻數據處理單元和音頻數據處理單元的數量分別進行模運算,根據模運算的結分別將各視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理。
3.根據權利要求1所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單兀具有第一監控模塊、第一處理模塊和第一傳輸模塊; 各視頻數據處理單元分別具有第二監控模塊、第二處理模塊和第二傳輸模塊; 各音頻數據處理單元分別具有第三監控模塊、第三處理模塊和第三傳輸模塊; 所述輸出處理單元具有第四監控模塊、第四處理模塊和第四傳輸模塊;其中, 所述第一、第二、第三和第四監控模塊分別與所述調度單元進行通信連接,從所述調度單元接收相關指令,並各自將相關處理單元的運行狀態報告給所述調度單元;所述第一傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,將需要處理的相應的視頻數據片段和音頻數據片段分別發送至各所述第二傳輸模塊和各所述第三傳輸模塊;所述第四傳輸模塊分別與各所述第二傳輸模塊和各所述第三傳輸模塊通信連接,接收經處理後的視頻數據片段和音頻數據片段。
4.根據權利要求3所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元對所接收的源文件進行解封裝,獲得視頻序列和音頻序列,並分別將所述視頻序列和所述音頻序列進行分割處理。
5.根據權利要求1所述的音視頻文件處理系統,其特徵在於:所述輸出處理單元在判斷從各視頻數據處理單元和各音頻數據處理單元接收到經處理後的所有的視頻數據片段和音頻數據片段後,將所接到的視頻數據片段和音頻數據片段進行合併,並按照預定格式進行封裝。
6.根據權利要求3所述的音視頻文件處理系統,其特徵在於: 所述調度單元和所述第一、第二、第三和第四監控模塊通過系統配置文件獲取的地址信息進行通信。
7.根據權利要求6所述的音視頻文件處理系統,其特徵在於: 所述第一、第二、第三和第四監控模塊分別定期地將相應處理單元的運行狀態信息發送給所述調度單元;所述調度單元根據所述運行狀態信息維護系統配置文件,並將更新的系統配置文件分別發送給所述第一、第二、第三和第四監控模塊。
8.根據權利要求6所述的音視頻文件處理系統,其特徵在於: 系統配置文件的內容包括所述視頻數據處理單元的數量、物理地址、運行狀態和工作目錄和所述音頻數據處理單元的數量、物理地址、運行狀態和工作目錄。
9.根據權利要求6所述的音視頻文件處理系統,其特徵在於: 當所述視頻數據處理單元和所述音頻數據處理單元的中一個的處理發生錯誤時,其相應的第二或第三監控模塊向所述調度單元報告該錯誤; 所述調度模塊確定重新執行發生錯誤的處理或忽略該錯誤。
10.根據權利要求9所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元將出錯的視頻數據片段和/或音頻數據片段重新加入未被發送的剩餘視頻數據片段和/或音頻數據片段中並進行重新編序,再將所述重新編序所得的順序號按所述視頻數據處理單元和/或所述音頻數據處理單元的數量進行模運算,根據模運算的結果將所述出錯的視 頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理。
11.根據權利要求1所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元獲取所述源視頻文件的解封裝後的視頻幀數、音頻幀數和音視頻編碼格式,並將所述視頻幀數、音頻幀數和音視頻編碼格式發送給相應的視頻數據處理單元和音頻數據處理單元。
12.根據權利要求1~11所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元將源文件經分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量發送給所述輸出處理單元。
13.根據權利要求12所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息。
14.根據權利要求13所述的音視頻文件處理系統,其特徵在於: 所述輸入處理單元將所述源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息插入到分割後的視頻數據片段和音頻數據片段的文件名中。
15.根據權利要求13所述的音視頻文件處理系統,其特徵在於: 所述輸出處理單元根據分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量建立該源文件的接收映射表,根據輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入的該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息在接收映射表中將收到的已處理的數據片段標記為已收到; 當所述輸出處理單元判斷接收映射表中的所有視頻數據片段和音頻數據片段均標記為已收到時,對所述經處理後的視頻數據片段和所述經處理後的音頻數據片段進行整合處理,獲得經處理後的音視頻文件; 當所述輸出處理單元判斷經過一定時間後接收映射表中有視頻數據片段和音頻數據片段標記為未收到時,將相應的經分割後的視頻數據片段或/和經分割後的音頻數據片段的缺失信息發送至所述調度單元。
16.根據權利要求15所述的音視頻文件處理系統,其特徵在於: 所述接收映射表中還包含已收到的視頻數據片段的數量和音頻數據片段的數量; 所述輸出處理單元判斷接收映射表中的視頻數據片段的數量和音頻數據片段的數量與所述輸入處理單元發送的視頻數據片段的數量和音頻數據片段的數量一致後,才進行接收映射表中的所有視頻數據片段和音頻數據片段是否均標記為已收到的判斷。
17.根據權利要求15所述的音視頻文件處理系統,其特徵在於: 當所述調度單元接收到所述缺失信息時,指示所述輸入處理單元將缺失的視頻數據片段和/或音頻數據片段的順序號按當前視頻數據處理單元和/或音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理,並將再次處理後的視頻數據片段和/或音頻數據片段發送至所述輸出處理單元。
18.根據權利要求15所述的音視頻文件處理系統,其特徵在於: 當所述調度單元接收到視頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的視頻數據片段重新按順序編號,並將該編號按當前視頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段重新分配給相應的視頻數據處理單元進行處理,並將再次處理後的視頻數據片段發送至所述輸出處理單元; 當所述調度單元接收到音頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的音頻數據片段重新按順序編號,並將該編號按當前音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的音頻數據片段重新分配給相應的音頻數據處理單元進行處理,並將再次處理後的音頻數據片段發送至所述輸出處理單元。
19.一種分布式音視 頻文件處理方法,包括: 輸入處理步驟,通過輸入處理單元接收源視頻文件,對所述源視頻文件進行處理獲得視頻數據和音頻數據,並分別將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,並根據一定的分配規則將分割所得的視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理; 視頻數據處理步驟,分別使用數個視頻數據處理單元對經分割後的視頻數據片段進行處理; 音頻數據處理步驟,分別使用數個音頻數據處理單元對經分割後的音頻數據片段進行處理; 輸出處理步驟,通過輸出處理單元對經處理後的視頻數據片段和音頻數據片段進行處理並輸出; 調度步驟,通過調度單元協調所述輸入處理單元、所述數個視頻數據處理單元、所述數個音頻數據處理單元及輸出處理單元的工作。
20.根據權利要求19所述的音視頻文件處理方法,其特徵在於:所述輸入處理步驟包括: 在所述輸入處理步驟中,將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,將各視頻數據片段和音頻數據片段的順序號按視頻數據處理單元和音頻數據處理單元的數量分別進行模運算,根據模運算的結果分別將各視頻數據片段和音頻數據片段分配給相應的視頻數據處理單元和音頻數據處理單元進行處理。
21.根據權利要求19所述的音視頻文件處理方法,其特徵在於: 解封裝步驟,對所接收的源文件進行解封裝,獲得視頻序列和音頻序列; 分割步驟,分別將所述視頻序列和所述音頻序列進行分割處理。
22.根據權利要求19所述的音視頻文件處理方法,其特徵在於:在所述輸出處理步驟中,在判斷從各視頻數據處理單元和各音頻數據處理單元接收到經處理後的所有的視頻數據片段和音頻數據片段後,將所接到的視頻數據片段和音頻數據片段進行合併,並按照預定格式進行封裝。
23.根據權利要求19~21所述的音視頻文件處理方法,其特徵在於: 在所述調度步驟中,通過系統配置文件獲取的地址信息進行通信。
24.根據權利要求22所述的音視頻文件處理方法,其特徵在於: 在所述調度步驟中,相應處理單元的運行狀態信息分別定期地被發送給所述調度單元,所述調度單元根據所述運行狀態信息維護系統配置文件,並發送更新的系統配置文件。
25.根據權利要求22所述的音視頻文件處理方法,其特徵在於: 系統配置文件的內容包括所述視頻數據處理單元的數量、物理地址、運行狀態和工作目錄和所述音頻數據處理單元的數量、物理地址、運行狀態和工作目錄。
26.根據權利要求22所述的音視頻文件處理方法,其特徵在於: 在所述視頻數據處 理步驟中,當所述視頻數據處理單元中的一個的處理發生錯誤時,或在所述音頻數據處理步驟中,當所述音頻數據處理單元中的一個的處理發生錯誤時,向所述調度單元報告該錯誤; 所述調度模塊確定重新執行發生錯誤的處理或忽略該錯誤。
27.根據權利要求25所述的音視頻文件處理方法,其特徵在於: 所述輸入處理單元將出錯的視頻數據片段和/或音頻數據片段重新加入未被發送的剩餘視頻數據片段和/或音頻數據片段中並進行重新編序,再將所述重新編序所得的順序號按所述視頻數據處理單元和/或所述音頻數據處理單元的數量進行模運算,根據模運算的結果將所述出錯的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理。
28.根據權利要求19所述的音視頻文件處理方法,其特徵在於: 在所述輸入處理步驟中,獲取所述源視頻文件的解封裝後的視頻幀數、音頻幀數和音視頻編碼格式,並將所述視頻幀數、音頻幀數和音視頻編碼格式發送給相應的視頻數據處理單元和音頻數據處理單元。
29.根據權利要求19所述的音視頻文件處理方法,其特徵在於: 在所述輸入處理步驟中,將源文件經分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量的分割信息發送給所述輸出處理單元。
30.根據權利要求28所述的音視頻文件處理方法,其特徵在於: 在所述輸入處理步驟中,所述輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息。
31.根據權利要求28所述的音視頻文件處理方法,其特徵在於: 在所述輸出處理步驟中,所述輸出處理單元根據分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量建立該源文件的接收映射表,根據輸入處理單元向分割後的視頻數據片段和音頻數據片段中插入的該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息在接收映射表中將收到的已處理的數據片段標記為已收到; 當所述輸出處理單元判斷接收映射表中的所有視頻數據片段和音頻數據片段均標記為已收到時,對所述經處理後的視頻數據片段和所述經處理後的音頻數據片段進行整合處理,獲得經處理後的音視頻文件; 當所述輸出處理單元判斷經過一定時間後接收映射表中有視頻數據片段和音頻數據片段標記為未收到時,將相應的經分割後的視頻數據片段或/和經分割後的音頻數據片段的缺失信息發送至所述調度單元。
32.根據權利要求30所述的音視頻文件處理方法,其特徵在於: 所述接收映射表中還包含已收到的視頻數據片段的數量和音頻數據片段的數量; 所述輸出處理單元判斷接收映射表中的視頻數據片段的數量和音頻數據片段的數量與所述輸入處理單元發送的視頻數據片段的數量和音頻數據片段的數量一致後,才進行接收映射表中的所有視頻數據片段和音頻數據片段是否均標記為已收到的判斷。
33.根據權利要求30所述的音視頻文件處理方法,其特徵在於: 當所述調度單元接收到所述缺失信息時,指示所述輸入處理單元將缺失的視頻數據片段和/或音頻數據片段 的順序號按當前視頻數據處理單元和/或音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段和/或音頻數據片段重新分配給相應的視頻數據處理單元和/或音頻數據處理單元進行處理,並將再次處理後的視頻數據片段和/或音頻數據片段發送至所述輸出處理單元。
34.根據權利要求30所述的音視頻文件處理方法,其特徵在於: 當所述調度單元接收到視頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的視頻數據片段重新按順序編號,並將該編號按當前視頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段重新分配給相應的視頻數據處理單元進行處理,並將再次處理後的視頻數據片段發送至所述輸出處理單元; 當所述調度單元接收到音頻數據片段的缺失信息時,指示所述輸入處理單元將所有缺失的音頻數據片段重新按順序編號,並將該編號按當前音頻數據處理單元的數量進行模運算,根據模運算的結果將各缺失的音頻數據片段重新分配給相應的音頻數據處理單元進行處理,並將再次處理後的音頻數據片段發送至所述輸出處理單元。
35.一種分布式音視頻文件處理裝置,包括: 數臺第一伺服器,分別用於對視頻數據片段進行處理; 數臺第二伺服器,分別用於對音頻數據片段進行處理; 第三伺服器,用於對經處理後的視頻數據片段和音頻數據片段進行處理並輸出; 第四伺服器,用於接收源視頻文件,對所述源視頻文件進行處理獲得視頻數據和音頻數據,並將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,並根據一定的分配規則將分割所得的視頻數據片段和音頻數據片段分配給相應的所述第一伺服器和所述第二伺服器進行處理,以及協調所述數臺第一伺服器、所述數臺第二伺服器和所述第三伺服器之間的工作。
36.根據權利要求34所述的裝置,其特徵在於: 所述第四伺服器將所述視頻數據和所述音頻數據分別按順序分割成視頻數據片段和音頻數據片段後,將各視頻數據片段和音頻數據片段的順序號按所述第一伺服器和所述第二伺服器的數量分別進行模運算,根據模運算的結果分別將各視頻數據片段和音頻數據片段分配給相應的所述第一伺服器和所述第二伺服器進行處理。
37.根據權利要求34所述的裝置,其特徵在於: 每一臺第一伺服器僅運行一個視頻數據處理進程; 每一臺第二伺服器僅運行一個音頻數據處理進程。
38.根據權利要求34所述的裝置,其特徵在於: 所述第四伺服器對所接收的源文件進行解封裝,獲得視頻序列和音頻序列,並分別將所述視頻序列和所述音頻序列進行分割處理。
39.根據權利要求34所述的裝置,其特徵在於:所述第三伺服器在判斷從各第一伺服器和各第二伺服器接收到經處理後的所有的視頻數據片段和音頻數據片段後,將所接到的視頻數據片段和音頻數據片段進行合併,並按照預定格式進行封裝。
40.根據權利要求34所述的裝置,其特徵在於: 所述第四伺服器獲取所述源視頻文件的解封裝後的視頻幀數、音頻幀數和音視頻編碼格式,並將所述視頻幀數、音頻幀數和音視頻編碼格式發送給相應的第一伺服器和第二伺服器。
41.根據權利 要求34所述的裝置,其特徵在於: 所述第四伺服器將源文件經分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量的分割信息發送給所述第三伺服器。
42.根據權利要求39所述的裝置,其特徵在於: 所述第四伺服器將所述源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息插入到分割後的視頻數據片段和音頻數據片段的文件名中。
43.根據權利要求39所述的裝置,其特徵在於: 所述第三伺服器根據分割後的視頻數據片段的數量和經分割後的音頻數據片段的數量建立該源文件的接收映射表,根據第四伺服器向分割後的視頻數據片段和音頻數據片段中插入的該片段的源文件信息、在該源文件的所有視頻或音頻數據片段中的順序號和文件類型信息在接收映射表中將收到的已處理的數據片段標記為已收到; 當所述第三伺服器判斷接收映射表中的所有視頻數據片段和音頻數據片段均標記為已收到時,對所述經處理後的視頻數據片段和所述經處理後的音頻數據片段進行整合處理,獲得經處理後的音視頻文件; 當所述第三伺服器判斷經過一定時間後接收映射表中有視頻數據片段和音頻數據片段標記為未收到時,將相應的經分割後的視頻數據片段或/和經分割後的音頻數據片段的缺失信息發送至所述第四伺服器。
44.根據權利要求41所述的裝置,其特徵在於: 所述接收映射表中還包含已收到的視頻數據片段的數量和音頻數據片段的數量; 所述第三伺服器判斷接收映射表中的視頻數據片段的數量和音頻數據片段的數量與所述第四伺服器發送的視頻數據片段的數量和音頻數據片段的數量一致後,才進行接收映射表中的所有視頻數據片段和音頻數據片段是否均標記為已收到的判斷。
45.根據權利要求41所述的裝置,其特徵在於: 當所述第四伺服器接收到所述缺失信息時,將缺失的視頻數據片段和/或音頻數據片段的順序號按當前第一伺服器和/或第二伺服器的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段和/或音頻數據片段重新分配給相應的第一伺服器和/或第二伺服器進行處理,並將再次處理後的視頻數據片段和/或音頻數據片段發送至所述第三伺服器。
46.根據權利要求41所述的裝置,其特徵在於: 當所述第四伺服器接收到視頻數據片段的缺失信息時,將所有缺失的視頻數據片段重新按順序編號,並將該編號按當前第一伺服器的數量進行模運算,根據模運算的結果將各缺失的視頻數據片段重新分配給相應的第一伺服器進行處理,並將再次處理後的視頻數據片段發送至所述第三伺服器; 當所述第四伺服器接收到音頻數據片段的缺失信息時,將所有缺失的音頻數據片段重新按順序編號,並將該編號按當前第二伺服器的數量進行模運算,根據模運算的結果將各缺失的音頻數據片段重新分配給相應的第二伺服器進行處理,並將再次處理後的音頻數據片段發送至所述第三服 務器。
【文檔編號】G06F17/30GK103605710SQ201310558626
【公開日】2014年2月26日 申請日期:2013年11月12日 優先權日:2013年11月12日
【發明者】武悅 申請人:天脈聚源(北京)傳媒科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀