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