視頻文件的并行轉(zhuǎn)碼方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種視頻文件的并行轉(zhuǎn)碼方法及系統(tǒng),所述方法包括以下步驟:獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù);根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片;根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理;將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件。本發(fā)明的方法及系統(tǒng)在不降低輸出目標(biāo)的編碼質(zhì)量的情況下降低了轉(zhuǎn)碼處理的數(shù)據(jù)量,從而有效降低了轉(zhuǎn)碼時的性能損耗,提高了轉(zhuǎn)碼效率,并且有效縮短了視頻轉(zhuǎn)碼任務(wù)的響應(yīng)時間。
【專利說明】視頻文件的并行轉(zhuǎn)碼方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體【技術(shù)領(lǐng)域】,特別是涉及一種視頻文件的并行轉(zhuǎn)碼方法以及一種視頻文件的并行轉(zhuǎn)碼系統(tǒng)。
【背景技術(shù)】
[0002]視頻文件有多種不同編碼格式和不同的質(zhì)量級別,在現(xiàn)有的移動互聯(lián)網(wǎng)/互聯(lián)網(wǎng)、OTT (Over The Top,即互聯(lián)網(wǎng)公司越過運(yùn)營商,發(fā)展基于開放互聯(lián)網(wǎng)的各種視頻及數(shù)據(jù)服務(wù)業(yè)務(wù))等不同應(yīng)用領(lǐng)域,復(fù)雜的網(wǎng)絡(luò)環(huán)境和參差不齊的終端處理能力,使得對視頻文件除了編碼格式之外,還有碼率、像素等參數(shù)的不同質(zhì)量級別的需求。
[0003]視頻提供商為了滿足不同應(yīng)用領(lǐng)域的播放需求,經(jīng)常需要將視頻文件進(jìn)行多次轉(zhuǎn)換,以產(chǎn)生不同格式、不同質(zhì)量級別的目標(biāo)視頻文件。具體實(shí)現(xiàn)上,將同一個視頻源轉(zhuǎn)換成多個不同碼率的視頻文件,一般有如下兩種方法:
[0004]方法一、并發(fā)啟動多個轉(zhuǎn)換程序,對相同視頻源進(jìn)行轉(zhuǎn)換;
[0005]方法二、根據(jù)目標(biāo)視頻碼率從高到低的順序,先后啟動多個轉(zhuǎn)換程序,以上一個輸出作為新的輸入源。
[0006]比較來看,方法一的響應(yīng)時間快,但是性能損耗大;方法二則相反。并且以上兩個傳統(tǒng)的視頻轉(zhuǎn)碼方法,對同一個視頻源,如果要生成多份不同質(zhì)量的視頻文件,需要多次轉(zhuǎn)碼,導(dǎo)致轉(zhuǎn)碼效率較低。
【發(fā)明內(nèi)容】
[0007]基于此,有必要針對上述轉(zhuǎn)碼效率低的問題,提供一種視頻文件的并行轉(zhuǎn)碼方法及系統(tǒng)。
[0008]為實(shí)現(xiàn)上述目的,本發(fā)明采用如下的技術(shù)方案:
[0009]一種視頻文件的并行轉(zhuǎn)碼方法,包括以下步驟:
[0010]獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù);
[0011]根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片;
[0012]根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理;
[0013]將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件。
[0014]一種視頻文件的并行轉(zhuǎn)碼系統(tǒng),包括:
[0015]數(shù)量獲取模塊,用于獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù);
[0016]文件切分模塊,用于根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片;[0017]轉(zhuǎn)碼模塊,用于根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理;
[0018]合成模塊,用于將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件。
[0019]由以上方案可以看出,本發(fā)明的視頻文件的并行轉(zhuǎn)碼方法及系統(tǒng),對源視頻文件進(jìn)行切分后,根據(jù)目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理,再將轉(zhuǎn)碼處理后各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成。本發(fā)明采用多級流水的處理方式來提高并發(fā)率,在不降低輸出目標(biāo)的編碼質(zhì)量的情況下,降低了轉(zhuǎn)碼處理的數(shù)據(jù)量,從而有效降低了轉(zhuǎn)碼時的性能損耗,提高了轉(zhuǎn)碼效率;并且本發(fā)明采用流水線處理的方式,使得多個轉(zhuǎn)碼都能快速啟動,有效縮短了視頻轉(zhuǎn)碼任務(wù)的響應(yīng)時間。
【專利附圖】
【附圖說明】
[0020]圖1為本發(fā)明一種視頻文件的并行轉(zhuǎn)碼方法的流程示意圖;
[0021]圖2為本發(fā)明依次啟動多級流水進(jìn)行處理的示意圖;
[0022]圖3為本發(fā)明一種視頻文件的并行轉(zhuǎn)碼系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]參見圖1所示,一種視頻文件的并行轉(zhuǎn)碼方法,包括以下步驟:
[0025]步驟S101,獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù),然后進(jìn)入步驟S102。
[0026]作為一個較好的實(shí)施例,所述獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)的過程具體可以包括如下:
[0027]檢測各轉(zhuǎn)碼機(jī)器的負(fù)載情況,將空閑率大于預(yù)定閾值(如15%)的轉(zhuǎn)碼機(jī)器作為當(dāng)前可用的轉(zhuǎn)碼機(jī)器,并統(tǒng)計所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器的數(shù)量作為所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)。
[0028]步驟S102,根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片,然后進(jìn)入步驟S103。
[0029]如圖2所示,本發(fā)明實(shí)施例中,上述若干級流水的層數(shù)與所述目標(biāo)視頻文件個數(shù)相同,按照策略碼率從高到低進(jìn)行,一種碼率一層;另外,每層的數(shù)據(jù)分片的數(shù)目等于所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)除以所述層數(shù)(即每層的數(shù)據(jù)分片的數(shù)目=可用的轉(zhuǎn)碼機(jī)器數(shù)/層數(shù))。
[0030]步驟S103,根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理,然后進(jìn)入步驟S104。
[0031]作為一個較好的實(shí)施例,上述啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理的過程具體可以包括如下步驟:
[0032]步驟S1031,啟動輸出目標(biāo)視頻文件的碼率最高的一級流水,對所述源視頻文件的數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理;
[0033]步驟S1032,當(dāng)N級流水輸出預(yù)定長度的音視頻流數(shù)據(jù)時,啟動輸出目標(biāo)視頻文件的碼率排列第N+1的N+1級流水,對N級流水的所有輸出分片依次進(jìn)行轉(zhuǎn)碼處理;式中,N > I。
[0034]本發(fā)明實(shí)施例中,將輸出目標(biāo)的碼率從高到低進(jìn)行排序,依次啟動多級流水進(jìn)行轉(zhuǎn)碼處理,即每級轉(zhuǎn)碼程序僅以稍高碼率的視頻而不是原始視頻作為輸入。下面詳細(xì)描述各級流水的處理過程:
[0035]I) 一級流水,輸出目標(biāo)的碼率最高,對源視頻文件的分片進(jìn)行轉(zhuǎn)碼處理,生成一組音視頻流的數(shù)據(jù)分片;
[0036]2) 二級流水,輸出目標(biāo)的碼率排列第二,在一級流水輸出預(yù)定長度的音視頻流數(shù)據(jù)時啟動,對一級流水的所有輸出分片,依次進(jìn)行轉(zhuǎn)碼處理;
[0037]3)三級流水,輸出目標(biāo)的碼率排列第三,在二級流水輸出預(yù)定長度的音視頻流數(shù)據(jù)時啟動,對二級流水的所有輸出分片,依次進(jìn)行轉(zhuǎn)碼處理;
[0038]4)以此類推,依次啟動η級流水,并行生成η組不同碼率的輸出分片,如圖2所示。
[0039]步驟S104,將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件并進(jìn)行輸出。
[0040]本發(fā)明實(shí)施例中,可以由任務(wù)分配機(jī)根據(jù)分片數(shù),將源視頻文件切成相應(yīng)數(shù)量的分片,放入公共存儲區(qū),供第一層轉(zhuǎn)碼機(jī)器處理。 每臺轉(zhuǎn)碼機(jī)器處理分片時,將轉(zhuǎn)碼完成后的數(shù)據(jù)分片結(jié)果都保存到一個公共存儲區(qū)。每個數(shù)據(jù)分片完成后,由任務(wù)分配機(jī)將各個數(shù)據(jù)分片按目標(biāo)格式組合起來,輸出完整的視頻文件。
[0041]與上述一種視頻文件的并行轉(zhuǎn)碼方法相對應(yīng),本發(fā)明還提供一種視頻文件的并行轉(zhuǎn)碼系統(tǒng),如圖3所示,包括:
[0042]數(shù)量獲取模塊101,用于獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù);
[0043]文件切分模塊102,用于根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片;
[0044]轉(zhuǎn)碼模塊103,用于根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理;
[0045]合成模塊104,用于將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件。
[0046]作為一個較好的實(shí)施例,所述轉(zhuǎn)碼模塊可以包括:
[0047]第一處理子模塊,用于啟動輸出目標(biāo)視頻文件的碼率最高的一級流水,對所述源視頻文件的數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理;
[0048]第二處理子模塊,用于當(dāng)N級流水輸出預(yù)定長度的音視頻流數(shù)據(jù)時,啟動輸出目標(biāo)視頻文件的碼率排列第Ν+1的Ν+1級流水,對N級流水的所有輸出分片依次進(jìn)行轉(zhuǎn)碼處理;式中,N≥I。
[0049]可以理解,本發(fā)明所使用的術(shù)語“第一”、“第二”等可在本文中用于描述各種元件,但這些元件不受這些術(shù)語限制。這些術(shù)語僅用于將第一個元件與另一個元件區(qū)分。舉例來說,在不脫離本發(fā)明的范圍的情況下,可以將第一處理子模塊稱為第二處理子模塊,且類似地,可將第二處理子模塊稱為第一處理子模塊。第一處理子模塊和第二處理子模塊兩者都是處理子模塊,但其不是同一處理子模塊。
[0050]作為一個較好的實(shí)施例,所述數(shù)量獲取模塊可以包括:
[0051]檢測子模塊,用于檢測各轉(zhuǎn)碼機(jī)器的負(fù)載情況,將空閑率大于預(yù)定閾值的轉(zhuǎn)碼機(jī)器作為當(dāng)前可用的轉(zhuǎn)碼機(jī)器,并統(tǒng)計所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器的數(shù)量作為所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)。
[0052]作為一個較好的實(shí)施例,所述若干級流水的層數(shù)與所述目標(biāo)視頻文件個數(shù)相同,另外每層的數(shù)據(jù)分片的數(shù)目等于所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)除以所述層數(shù)。
[0053]上述一種視頻文件的并行轉(zhuǎn)碼系統(tǒng)的其它技術(shù)特征與本發(fā)明的一種視頻文件的并行轉(zhuǎn)碼方法相同,此處不予贅述。
[0054]通過以上方案可以看出,本發(fā)明的視頻文件的并行轉(zhuǎn)碼方法及系統(tǒng),對源視頻文件進(jìn)行切分后,根據(jù)目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理,再將轉(zhuǎn)碼處理后各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成。本發(fā)明采用多級流水的處理方式來提高并發(fā)率,在不降低輸出目標(biāo)的編碼質(zhì)量的情況下,降低了轉(zhuǎn)碼處理的數(shù)據(jù)量,從而有效降低了轉(zhuǎn)碼時的性能損耗,提高了轉(zhuǎn)碼效率;并且本發(fā)明采用流水線處理的方式,使得多個轉(zhuǎn)碼都能快速啟動,有效縮短了視頻轉(zhuǎn)碼任務(wù)的響應(yīng)時間。
[0055]除非上下文另有特定清楚的描述,本發(fā)明中的元件和組件,數(shù)量既可以單個的形式存在,也可以多個的形式存在,本發(fā)明并不對此進(jìn)行限定。本發(fā)明中的步驟雖然用標(biāo)號進(jìn)行了排列,但并不用于限定步驟的先后次序,除非明確說明了步驟的次序或者某步驟的執(zhí)行需要其他步驟作為基礎(chǔ),否則步驟的相對次序是可以調(diào)整的。
[0056]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種視頻文件的并行轉(zhuǎn)碼方法,其特征在于,包括以下步驟: 獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù); 根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片; 根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理; 將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件。
2.根據(jù)權(quán)利要求1所述的視頻文件的并行轉(zhuǎn)碼方法,其特征在于,所述啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理的過程包括: 啟動輸出目標(biāo)視頻文件的碼率最高的一級流水,對所述源視頻文件的數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理; 當(dāng)N級流水輸出預(yù)定長度的音視頻流數(shù)據(jù)時,啟動輸出目標(biāo)視頻文件的碼率排列第N+1的N+1級流水,對N級流水的所有輸出分片依次進(jìn)行轉(zhuǎn)碼處理;式中,N ^ I。
3.根據(jù)權(quán)利要求1或2所述的視頻文件的并行轉(zhuǎn)碼方法,其特征在于,所述獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)的過程包括: 檢測各轉(zhuǎn)碼機(jī)器的負(fù)載情況,將空閑率大于預(yù)定閾值的轉(zhuǎn)碼機(jī)器作為當(dāng)前可用的轉(zhuǎn)碼機(jī)器,并統(tǒng)計所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器的數(shù)量作為所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)。
4.根據(jù)權(quán)利要求3所述的視頻文件的并行轉(zhuǎn)碼方法,其特征在于,所述若干級流水的層數(shù)與所述目標(biāo)視頻文件個數(shù)相同,每層的數(shù)據(jù)分片的數(shù)目等于所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)除以所述層數(shù)。
5.一種視頻文件的并行轉(zhuǎn)碼系統(tǒng),其特征在于,包括: 數(shù)量獲取模塊,用于獲取當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)以及欲輸出的不同碼率的目標(biāo)視頻文件個數(shù); 文件切分模塊,用于根據(jù)所述轉(zhuǎn)碼機(jī)器數(shù)以及目標(biāo)視頻文件個數(shù)對源視頻文件進(jìn)行切分,得到若干級流水、每級流水包括若干個音視頻流的數(shù)據(jù)分片; 轉(zhuǎn)碼模塊,用于根據(jù)所述目標(biāo)視頻文件的碼率從高到低依次啟動多級流水對各數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理; 合成模塊,用于將轉(zhuǎn)碼處理完成的各級流水的數(shù)據(jù)分片分別按目標(biāo)格式進(jìn)行合成,得到所述不同碼率的目標(biāo)視頻文件。
6.根據(jù)權(quán)利要求5所述的視頻文件的并行轉(zhuǎn)碼系統(tǒng),其特征在于,所述轉(zhuǎn)碼模塊包括: 第一處理子模塊,用于啟動輸出目標(biāo)視頻文件的碼率最高的一級流水,對所述源視頻文件的數(shù)據(jù)分片進(jìn)行轉(zhuǎn)碼處理; 第二處理子模塊,用于當(dāng)N級流水輸出預(yù)定長度的音視頻流數(shù)據(jù)時,啟動輸出目標(biāo)視頻文件的碼率排列第N+1的N+1級流水,對N級流水的所有輸出分片依次進(jìn)行轉(zhuǎn)碼處理;式中,N≥1。
7.根據(jù)權(quán)利要求5或6所述的視頻文件的并行轉(zhuǎn)碼系統(tǒng),其特征在于,所述數(shù)量獲取模塊包括: 檢測子模塊,用于檢測各轉(zhuǎn)碼機(jī)器的負(fù)載情況,將空閑率大于預(yù)定閾值的轉(zhuǎn)碼機(jī)器作為當(dāng)前可用的轉(zhuǎn)碼機(jī)器,并統(tǒng)計所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器的數(shù)量作為所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)。
8.根據(jù)權(quán)利要求7所述的視頻文件的并行轉(zhuǎn)碼系統(tǒng),其特征在于,所述若干級流水的層數(shù)與所述目標(biāo)視頻文件個數(shù)相同,每層的數(shù)據(jù)分片的數(shù)目等于所述當(dāng)前可用的轉(zhuǎn)碼機(jī)器數(shù)除以所述層數(shù)。
【文檔編號】H04N21/234GK103731678SQ201310746505
【公開日】2014年4月16日 申請日期:2013年12月30日 優(yōu)先權(quán)日:2013年12月30日
【發(fā)明者】張穎, 黃柑波, 馬幸暉, 周國盛, 曹航瑞, 林立宇, 劉曉玲, 鐵兵, 張萍, 陳云海 申請人:世紀(jì)龍信息網(wǎng)絡(luò)有限責(zé)任公司, 中國電信股份有限公司廣東研究院