本發(fā)明涉及一種視頻轉(zhuǎn)碼系統(tǒng)和方法,具體是指一種自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng)和方法,屬于高性能分布式系統(tǒng)架構(gòu)設(shè)計(jì)以及視頻編解碼
技術(shù)領(lǐng)域:
。
背景技術(shù):
:視頻轉(zhuǎn)碼是視頻分享環(huán)節(jié)中的關(guān)鍵一環(huán),也是最為費(fèi)時(shí)的一環(huán),轉(zhuǎn)碼所耗費(fèi)的時(shí)間長(zhǎng)短直接決定了視頻分享的效率和體驗(yàn)?,F(xiàn)有技術(shù)中,常用的轉(zhuǎn)碼方法有以下兩種:一、最傳統(tǒng)的方法是將整個(gè)視頻在集群的某一個(gè)節(jié)點(diǎn)上完成全部轉(zhuǎn)碼任務(wù)。這一方法無(wú)法均勻有效的使用集群的全部計(jì)算資源,轉(zhuǎn)碼速度完全受限于集群中單個(gè)節(jié)點(diǎn)的轉(zhuǎn)碼能力,轉(zhuǎn)碼速度慢,等待時(shí)間長(zhǎng)。二、現(xiàn)在使用最廣泛的方法是將視頻切片以后,發(fā)送到所有集群節(jié)點(diǎn)中進(jìn)行轉(zhuǎn)碼。這一方法由于可以最均衡、最大程度上的利用集群的全部計(jì)算資源,因此轉(zhuǎn)碼速度快。然而,在不同的集群節(jié)點(diǎn)分享視頻切片,會(huì)產(chǎn)生網(wǎng)絡(luò)傳輸成本。此外,流程的調(diào)度本身也是有成本的。最后,這種方法極容易造成一個(gè)較大的轉(zhuǎn)碼任務(wù)占用全部的集群資源,從而阻塞系統(tǒng)。此時(shí),其他任務(wù)都必須在任務(wù)隊(duì)列中排隊(duì),即使是個(gè)很短的視頻,其本身的轉(zhuǎn)碼速度很快,也需要等待很長(zhǎng)的時(shí)間,故而用這種轉(zhuǎn)碼方法,實(shí)際上等待的時(shí)間依然很長(zhǎng)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于提供一種自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng)和方法,能最大限度的使用計(jì)算資源,避免不必要的排隊(duì)等待,達(dá)到最大的轉(zhuǎn)碼速度和最短的平均轉(zhuǎn)碼時(shí)間。為了達(dá)到上述目的,本發(fā)明提供一種自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng),包含:調(diào)度核心模塊,接收視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的轉(zhuǎn)碼任務(wù),進(jìn)行控制數(shù)據(jù)交互,調(diào)度并調(diào)節(jié)視頻轉(zhuǎn)碼系統(tǒng)的負(fù)載情況;轉(zhuǎn)碼執(zhí)行模塊,由分別與調(diào)度核心模塊連接的多個(gè)轉(zhuǎn)碼處理模塊、多個(gè)轉(zhuǎn)碼節(jié)點(diǎn)模塊、多個(gè)轉(zhuǎn)碼合并模塊構(gòu)成,根據(jù)調(diào)度核心模塊的控制,對(duì)需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻進(jìn)行預(yù)處理、轉(zhuǎn)碼類型確定、切片、多節(jié)點(diǎn)并行轉(zhuǎn)碼、合并封裝;集群分布式共享存儲(chǔ)模塊,分別與各個(gè)轉(zhuǎn)碼處理模塊、轉(zhuǎn)碼節(jié)點(diǎn)模塊、轉(zhuǎn)碼合并模塊連接,在視頻轉(zhuǎn)碼任務(wù)的執(zhí)行過(guò)程中對(duì)視頻進(jìn)行分布式存儲(chǔ)。每個(gè)所述的轉(zhuǎn)碼處理模塊、轉(zhuǎn)碼節(jié)點(diǎn)模塊、轉(zhuǎn)碼合并模塊均具有一本地存儲(chǔ)模塊,在視頻轉(zhuǎn)碼任務(wù)的執(zhí)行過(guò)程中對(duì)視頻進(jìn)行本地存儲(chǔ)。本發(fā)明所述的自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng),還包含轉(zhuǎn)碼任務(wù)隊(duì)列模塊,與調(diào)度核心模塊連接,根據(jù)視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的轉(zhuǎn)碼任務(wù),按照時(shí)間順序進(jìn)行隊(duì)列排序,集中進(jìn)行轉(zhuǎn)碼。為本發(fā)明還提供一種自適應(yīng)的高性能視頻轉(zhuǎn)碼方法,采用上述的視頻轉(zhuǎn)碼系統(tǒng)實(shí)現(xiàn),包含以下步驟:S1、視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提供需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻源文件,以及存放轉(zhuǎn)碼結(jié)果的存儲(chǔ)空間;調(diào)度核心模塊接收視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的轉(zhuǎn)碼任務(wù),在所有的轉(zhuǎn)碼處理模塊中選取節(jié)點(diǎn)資源最富裕的一個(gè),開(kāi)始執(zhí)行轉(zhuǎn)碼任務(wù);S2、轉(zhuǎn)碼處理模塊對(duì)需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻的源文件進(jìn)行下載、特性提取的預(yù)處理;S3、轉(zhuǎn)碼處理模塊根據(jù)特性提取的結(jié)果,確定該視頻的轉(zhuǎn)碼類型;S4、根據(jù)視頻的轉(zhuǎn)碼類型,由轉(zhuǎn)碼處理模塊、轉(zhuǎn)碼節(jié)點(diǎn)模塊、轉(zhuǎn)碼合并模塊對(duì)視頻執(zhí)行轉(zhuǎn)碼任務(wù);S5、將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提供的轉(zhuǎn)碼結(jié)果存儲(chǔ)空間,并向調(diào)度核心模塊發(fā)送轉(zhuǎn)碼完成信息。在所述的S1之前,還包含:S0、視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的各個(gè)轉(zhuǎn)碼任務(wù)會(huì)按照被提出請(qǐng)求的時(shí)間先后順序進(jìn)入轉(zhuǎn)碼任務(wù)隊(duì)列模塊排序,集中進(jìn)行轉(zhuǎn)碼。所述的S2中,具體包含以下步驟:S21、轉(zhuǎn)碼處理模塊從視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)中下載需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻的源文件,存放至本地存儲(chǔ)模塊中,并對(duì)該視頻的源文件進(jìn)行校驗(yàn);S22、轉(zhuǎn)碼處理模塊對(duì)下載后的視頻的源文件進(jìn)行特性提取,包括視頻的寬高、碼率、時(shí)長(zhǎng)。所述的S3中,具體包含以下步驟:S31、轉(zhuǎn)碼處理模塊根據(jù)特性提取的結(jié)果,判斷該視頻是否需要進(jìn)行轉(zhuǎn)碼;如是,繼續(xù)執(zhí)行S32;如否,繼續(xù)執(zhí)行S33;S32、轉(zhuǎn)碼處理模塊根據(jù)特性提取的結(jié)果,判斷該視頻是否需要進(jìn)行多節(jié)點(diǎn)并行轉(zhuǎn)碼;當(dāng)視頻內(nèi)容為無(wú)法安全切割的視頻格式,并且視頻的時(shí)長(zhǎng)小于預(yù)設(shè)閾值時(shí),判斷該視頻不進(jìn)行多節(jié)點(diǎn)并行轉(zhuǎn)碼,確定該視頻的轉(zhuǎn)碼類型為單節(jié)點(diǎn)本地轉(zhuǎn)碼及封裝;否則,確定該視頻的轉(zhuǎn)碼類型為多節(jié)點(diǎn)并行轉(zhuǎn)碼;S33、轉(zhuǎn)碼處理模塊根據(jù)特性提取的結(jié)果,判斷該視頻是否需要進(jìn)行封裝;如是,確定該視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼只需封裝;如否,確定該視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼及無(wú)需封裝。所述的S4中,具體包含以下步驟:S41、當(dāng)視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼及無(wú)需封裝時(shí),無(wú)需對(duì)視頻進(jìn)行任何處理,繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼處理模塊將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng);S42、當(dāng)視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼只需封裝時(shí),轉(zhuǎn)碼處理模塊在本地存儲(chǔ)模塊中將視頻封裝成需要的格式,并繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼處理模塊將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng);S43、當(dāng)視頻的轉(zhuǎn)碼類型為單節(jié)點(diǎn)本地轉(zhuǎn)碼及封裝時(shí),轉(zhuǎn)碼處理模塊在本地存儲(chǔ)模塊中對(duì)視頻進(jìn)行轉(zhuǎn)碼,封裝成需要的格式,并繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼處理模塊將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng);S44、當(dāng)視頻的轉(zhuǎn)碼類型為多節(jié)點(diǎn)并行轉(zhuǎn)碼時(shí),轉(zhuǎn)碼處理模塊、轉(zhuǎn)碼節(jié)點(diǎn)模塊、轉(zhuǎn)碼合并模塊對(duì)視頻執(zhí)行多節(jié)點(diǎn)并行轉(zhuǎn)碼任務(wù),并繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼合并模塊將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)。所述的S44中,具體包含以下步驟:S441、轉(zhuǎn)碼處理模塊對(duì)視頻進(jìn)行切片處理,存放至集群分布式共享存儲(chǔ)模塊中,并將各切片的存放位置發(fā)送至調(diào)度核心模塊;S442、調(diào)度核心模塊根據(jù)接收到的各切片的存放位置,選取對(duì)應(yīng)數(shù)量的空閑的轉(zhuǎn)碼節(jié)點(diǎn)模塊對(duì)各切片進(jìn)行轉(zhuǎn)碼任務(wù);S443、各個(gè)轉(zhuǎn)碼節(jié)點(diǎn)模塊在其本地存儲(chǔ)模塊中,對(duì)所分派到的切片進(jìn)行轉(zhuǎn)碼,將切片轉(zhuǎn)碼結(jié)果存放至集群分布式共享存儲(chǔ)模塊中,并將各切片轉(zhuǎn)碼結(jié)果的存放位置發(fā)送至調(diào)度核心模塊;S444、當(dāng)調(diào)度核心模塊接收到所有轉(zhuǎn)碼節(jié)點(diǎn)模塊發(fā)送的切片轉(zhuǎn)碼結(jié)果的存放位置后,選取一個(gè)空閑的轉(zhuǎn)碼合并模塊,在其本地存儲(chǔ)模塊中,對(duì)所有切片轉(zhuǎn)碼結(jié)果進(jìn)行合并,并封裝成需要的格式。所述的S5中,轉(zhuǎn)碼處理模塊或轉(zhuǎn)碼合并模塊對(duì)完成轉(zhuǎn)碼任務(wù)的視頻進(jìn)行打標(biāo)簽、寫入跳轉(zhuǎn)表的后處理。本發(fā)明所提供的自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng)和方法,根據(jù)視頻特性,在無(wú)需轉(zhuǎn)碼無(wú)需封裝、無(wú)需轉(zhuǎn)碼只需封裝、單節(jié)點(diǎn)本地轉(zhuǎn)碼及封裝、多節(jié)點(diǎn)并行轉(zhuǎn)碼這4種視頻轉(zhuǎn)碼處理方式中,選取最優(yōu)的方案;轉(zhuǎn)碼處理模塊和執(zhí)行多節(jié)點(diǎn)并行轉(zhuǎn)碼的轉(zhuǎn)碼節(jié)點(diǎn)模塊在流程上的隔離,保證了短小的轉(zhuǎn)碼任務(wù)不會(huì)被大而長(zhǎng)的轉(zhuǎn)碼任務(wù)阻塞而排隊(duì)等待,可以最快的速度完成;同時(shí)保證了系統(tǒng)中大多數(shù)的計(jì)算資源被用于處理較大、較長(zhǎng)的轉(zhuǎn)碼任務(wù)。因此,本發(fā)明能最大限度的使用計(jì)算資源,避免不必要的排隊(duì)等待,達(dá)到最大的轉(zhuǎn)碼速度和最短的平均轉(zhuǎn)碼時(shí)間。附圖說(shuō)明圖1為本發(fā)明中的自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明中的自適應(yīng)的高性能視頻轉(zhuǎn)碼方法的流程圖。具體實(shí)施方式以下結(jié)合圖1~圖2,通過(guò)詳細(xì)說(shuō)明一個(gè)較佳的具體實(shí)施例,對(duì)本發(fā)明做進(jìn)一步闡述。如圖1所示,為本發(fā)明提供的自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng),包含:調(diào)度核心模塊1,接收視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的轉(zhuǎn)碼任務(wù),進(jìn)行控制數(shù)據(jù)交互,調(diào)度并調(diào)節(jié)視頻轉(zhuǎn)碼系統(tǒng)的負(fù)載情況;轉(zhuǎn)碼執(zhí)行模塊2(Worker),由分別與調(diào)度核心模塊1連接的多個(gè)轉(zhuǎn)碼處理模塊21(GatewayWorker)、多個(gè)轉(zhuǎn)碼節(jié)點(diǎn)模塊22(TranscodeWorker)、多個(gè)轉(zhuǎn)碼合并模塊23(ConcludeWorker)構(gòu)成,根據(jù)調(diào)度核心模塊1發(fā)出的控制信號(hào),對(duì)需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻依次進(jìn)行預(yù)處理、轉(zhuǎn)碼類型確定、切片、多節(jié)點(diǎn)并行轉(zhuǎn)碼、合并封裝;集群分布式共享存儲(chǔ)模塊3,分別與各個(gè)轉(zhuǎn)碼處理模塊21、轉(zhuǎn)碼節(jié)點(diǎn)模塊22、轉(zhuǎn)碼合并模塊23連接,在視頻轉(zhuǎn)碼任務(wù)的執(zhí)行過(guò)程中對(duì)視頻進(jìn)行分布式存儲(chǔ),使得整個(gè)視頻轉(zhuǎn)碼系統(tǒng)中的所有模塊均能訪問(wèn)其所存儲(chǔ)的視頻內(nèi)容,但會(huì)存在網(wǎng)絡(luò)傳輸時(shí)間損耗。其中,所述的轉(zhuǎn)碼處理模塊21、轉(zhuǎn)碼節(jié)點(diǎn)模塊22、轉(zhuǎn)碼合并模塊23的具體設(shè)置數(shù)量以及配比,可根據(jù)視頻轉(zhuǎn)碼系統(tǒng)的實(shí)際應(yīng)用情況進(jìn)行調(diào)整。每個(gè)所述的轉(zhuǎn)碼處理模塊21、轉(zhuǎn)碼節(jié)點(diǎn)模塊22、轉(zhuǎn)碼合并模塊23均具有一本地存儲(chǔ)模塊,在視頻轉(zhuǎn)碼任務(wù)的執(zhí)行過(guò)程中對(duì)視頻進(jìn)行本地存儲(chǔ),且只能訪問(wèn)各自本地存儲(chǔ)的視頻內(nèi)容,不存在任何網(wǎng)絡(luò)傳輸?shù)臅r(shí)間損耗。本發(fā)明所述的自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng),還包含:轉(zhuǎn)碼任務(wù)隊(duì)列模塊4,與調(diào)度核心模塊1連接,根據(jù)視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的轉(zhuǎn)碼任務(wù),按照時(shí)間順序進(jìn)行隊(duì)列排序,集中進(jìn)行轉(zhuǎn)碼。如圖2所示,為本發(fā)明提供的自適應(yīng)的高性能視頻轉(zhuǎn)碼方法,采用上述的視頻轉(zhuǎn)碼系統(tǒng)實(shí)現(xiàn),包含以下步驟:S1、視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提供需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻源文件,以及存放轉(zhuǎn)碼結(jié)果的存儲(chǔ)空間;調(diào)度核心模塊1接收視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出的轉(zhuǎn)碼任務(wù),在所有的轉(zhuǎn)碼處理模塊21中選取節(jié)點(diǎn)資源最富裕的一個(gè),開(kāi)始執(zhí)行轉(zhuǎn)碼任務(wù);S2、轉(zhuǎn)碼處理模塊21對(duì)需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻的源文件進(jìn)行下載、特性提取的預(yù)處理;S3、轉(zhuǎn)碼處理模塊21根據(jù)特性提取的結(jié)果,并結(jié)合視頻轉(zhuǎn)碼系統(tǒng)的應(yīng)用要求,確定該視頻的轉(zhuǎn)碼類型;S4、根據(jù)視頻的轉(zhuǎn)碼類型,由轉(zhuǎn)碼處理模塊21、轉(zhuǎn)碼節(jié)點(diǎn)模塊22、轉(zhuǎn)碼合并模塊23對(duì)視頻執(zhí)行轉(zhuǎn)碼任務(wù);S5、將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提供的轉(zhuǎn)碼結(jié)果存儲(chǔ)空間,并向調(diào)度核心模塊1發(fā)送轉(zhuǎn)碼完成信息。在所述的S1之前,還包含:S0、為平衡視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)提出轉(zhuǎn)碼任務(wù)和視頻轉(zhuǎn)碼系統(tǒng)處理轉(zhuǎn)碼任務(wù)的節(jié)奏,各個(gè)轉(zhuǎn)碼任務(wù)會(huì)按照被提出請(qǐng)求的時(shí)間先后順序進(jìn)入轉(zhuǎn)碼任務(wù)隊(duì)列模塊4排序,集中進(jìn)行轉(zhuǎn)碼。所述的S2中,具體包含以下步驟:S21、由于需要進(jìn)行轉(zhuǎn)碼任務(wù)的視頻的源文件往往不會(huì)存放在轉(zhuǎn)碼處理模塊21的本地存儲(chǔ)模塊中,為了提高轉(zhuǎn)碼性能和穩(wěn)定性,轉(zhuǎn)碼處理模塊21需要從視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)中下載該視頻的源文件,存放至本地存儲(chǔ)模塊中,并對(duì)該視頻的源文件進(jìn)行校驗(yàn)以確保準(zhǔn)確性;S22、轉(zhuǎn)碼處理模塊21對(duì)下載后的視頻源文件進(jìn)行特性提取,包括視頻的寬高、碼率、時(shí)長(zhǎng)等信息;可以根據(jù)視頻轉(zhuǎn)碼系統(tǒng)的具體應(yīng)用要求,定制需要提取的特性種類。所述的S3中,具體包含以下步驟:S31、轉(zhuǎn)碼處理模塊21根據(jù)特性提取的結(jié)果,結(jié)合視頻轉(zhuǎn)碼系統(tǒng)的具體應(yīng)用要求,判斷該視頻是否需要進(jìn)行轉(zhuǎn)碼;如是,則繼續(xù)執(zhí)行S32;如否,則繼續(xù)執(zhí)行S33;S32、轉(zhuǎn)碼處理模塊21根據(jù)特性提取的結(jié)果,結(jié)合視頻轉(zhuǎn)碼系統(tǒng)的具體應(yīng)用要求,判斷該視頻是否需要進(jìn)行多節(jié)點(diǎn)并行轉(zhuǎn)碼;如是,則確定該視頻的轉(zhuǎn)碼類型為多節(jié)點(diǎn)并行轉(zhuǎn)碼;如否,則確定該視頻的轉(zhuǎn)碼類型為單節(jié)點(diǎn)本地轉(zhuǎn)碼及封裝;S33、轉(zhuǎn)碼處理模塊21根據(jù)特性提取的結(jié)果,結(jié)合視頻轉(zhuǎn)碼系統(tǒng)的具體應(yīng)用要求,判斷該視頻是否需要進(jìn)行封裝;如是,則確定該視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼只需封裝;如否,則確定該視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼及無(wú)需封裝。所述的S32中,當(dāng)視頻內(nèi)容為無(wú)法安全切割的視頻格式,并且視頻的時(shí)長(zhǎng)小于預(yù)設(shè)閾值時(shí),判斷該視頻不進(jìn)行多節(jié)點(diǎn)并行轉(zhuǎn)碼,即確定該視頻的轉(zhuǎn)碼類型為本地轉(zhuǎn)碼及封裝;否則,即確定該視頻的轉(zhuǎn)碼類型為多節(jié)點(diǎn)并行轉(zhuǎn)碼。所述的S4中,具體包含以下步驟:S41、當(dāng)視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼及無(wú)需封裝時(shí),無(wú)需對(duì)視頻進(jìn)行任何處理,繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼處理模塊21將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng);S42、當(dāng)視頻的轉(zhuǎn)碼類型為無(wú)需轉(zhuǎn)碼只需封裝時(shí),轉(zhuǎn)碼處理模塊21在本地存儲(chǔ)模塊中將視頻封裝成需要的格式,并繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼處理模塊21將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng);S43、當(dāng)視頻的轉(zhuǎn)碼類型為單節(jié)點(diǎn)本地轉(zhuǎn)碼及封裝時(shí),轉(zhuǎn)碼處理模塊21在本地存儲(chǔ)模塊中對(duì)視頻進(jìn)行轉(zhuǎn)碼,封裝成需要的格式,并繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼處理模塊21將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng);S44、當(dāng)視頻的轉(zhuǎn)碼類型為多節(jié)點(diǎn)并行轉(zhuǎn)碼時(shí),轉(zhuǎn)碼處理模塊21、轉(zhuǎn)碼節(jié)點(diǎn)模塊22、轉(zhuǎn)碼合并模塊23對(duì)視頻執(zhí)行多節(jié)點(diǎn)并行轉(zhuǎn)碼任務(wù),并繼續(xù)執(zhí)行S5,由轉(zhuǎn)碼合并模塊23將完成轉(zhuǎn)碼任務(wù)的視頻文件傳送至視頻轉(zhuǎn)碼請(qǐng)求系統(tǒng)。所述的S44中,具體包含以下步驟:S441、轉(zhuǎn)碼處理模塊21對(duì)視頻進(jìn)行切片處理,存放至集群分布式共享存儲(chǔ)模塊3中,并將各切片的存放位置發(fā)送至調(diào)度核心模塊1;S442、調(diào)度核心模塊1根據(jù)接收到的各切片的存放位置,選取對(duì)應(yīng)數(shù)量的空閑的轉(zhuǎn)碼節(jié)點(diǎn)模塊22對(duì)各切片進(jìn)行轉(zhuǎn)碼任務(wù);S443、各個(gè)轉(zhuǎn)碼節(jié)點(diǎn)模塊22在其本地存儲(chǔ)模塊中,對(duì)所分派到的切片進(jìn)行轉(zhuǎn)碼,將切片轉(zhuǎn)碼結(jié)果存放至集群分布式共享存儲(chǔ)模塊3中,并將各切片轉(zhuǎn)碼結(jié)果的存放位置發(fā)送至調(diào)度核心模塊1;S444、當(dāng)調(diào)度核心模塊1接收到所有轉(zhuǎn)碼節(jié)點(diǎn)模塊22發(fā)送的切片轉(zhuǎn)碼結(jié)果的存放位置后,選取一個(gè)空閑的轉(zhuǎn)碼合并模塊23,在其本地存儲(chǔ)模塊中,對(duì)所有切片轉(zhuǎn)碼結(jié)果進(jìn)行合并,并封裝成需要的格式,隨后繼續(xù)執(zhí)行S5。所述的S5中,視頻轉(zhuǎn)碼系統(tǒng)的具體應(yīng)用要求,轉(zhuǎn)碼處理模塊21或轉(zhuǎn)碼合并模塊23對(duì)完成轉(zhuǎn)碼任務(wù)的視頻進(jìn)行打標(biāo)簽、寫入跳轉(zhuǎn)表的后處理。綜上所述,本發(fā)明所提供的自適應(yīng)的高性能視頻轉(zhuǎn)碼系統(tǒng)和方法,具有以下優(yōu)點(diǎn)和有益效果:根據(jù)視頻的特性,在無(wú)需轉(zhuǎn)碼無(wú)需封裝、無(wú)需轉(zhuǎn)碼只需封裝、單節(jié)點(diǎn)本地轉(zhuǎn)碼及封裝、多節(jié)點(diǎn)并行轉(zhuǎn)碼這4種視頻轉(zhuǎn)碼處理方式中,選取最優(yōu)的方案。讓一些已經(jīng)滿足要求的視頻不轉(zhuǎn)碼直接輸出、或者只是在本地做一個(gè)快速的轉(zhuǎn)封裝(重IO輕計(jì)算),從而可以極大地節(jié)約轉(zhuǎn)碼的計(jì)算資源,增大了系統(tǒng)的并發(fā)能力。而對(duì)于真正需要轉(zhuǎn)碼的視頻,本發(fā)明所采用的方法是根據(jù)用戶對(duì)轉(zhuǎn)碼的心理預(yù)期所制定的。分享短小視頻的用戶往往沒(méi)有很多耐心等待,因此需要快速完成轉(zhuǎn)碼,此時(shí)只采用單節(jié)點(diǎn)處理,避免不必要的分享和調(diào)度成本,獲得最大的性能。而分享長(zhǎng)視頻的用戶由于預(yù)期不同,則相對(duì)較為耐心,相對(duì)而言可以等待較長(zhǎng)的時(shí)間,此時(shí)采用多節(jié)點(diǎn)并行處理。轉(zhuǎn)碼處理模塊和執(zhí)行多節(jié)點(diǎn)并行轉(zhuǎn)碼的轉(zhuǎn)碼節(jié)點(diǎn)模塊在流程上的隔離,保證了短小的轉(zhuǎn)碼任務(wù)不會(huì)被大而長(zhǎng)的轉(zhuǎn)碼任務(wù)阻塞而排隊(duì)等待,可以最快的速度完成,滿足用戶的心理預(yù)期,給用戶較好的體驗(yàn)。同時(shí)這種隔離保證了系統(tǒng)中大多數(shù)的計(jì)算資源被用于處理較大、較長(zhǎng)的轉(zhuǎn)碼任務(wù)。對(duì)于這些任務(wù),由于擁有系統(tǒng)中多數(shù)的計(jì)算資源,且轉(zhuǎn)碼完全并行化,即使會(huì)有排隊(duì)的現(xiàn)象,以及分享和調(diào)度的消耗,其轉(zhuǎn)碼時(shí)間也會(huì)遠(yuǎn)遠(yuǎn)低于用戶的預(yù)期,帶來(lái)超出用戶預(yù)期的體驗(yàn)。以下通過(guò)一個(gè)具體實(shí)驗(yàn),更直觀的來(lái)說(shuō)明和體現(xiàn)本發(fā)明的有益效果。本實(shí)驗(yàn)基于二次元視頻網(wǎng)站www.bilibili.com的實(shí)際線上用戶視頻投稿完成。測(cè)試組系統(tǒng)和對(duì)照組系統(tǒng)為同批次購(gòu)買的轉(zhuǎn)碼服務(wù)器,每個(gè)系統(tǒng)規(guī)模都是32臺(tái),每個(gè)節(jié)點(diǎn)的CPU為雙路IntelE52658A,內(nèi)存為32GB,存儲(chǔ)為256GSSD,網(wǎng)絡(luò)配置為4張千兆網(wǎng)卡。測(cè)試組采用本發(fā)明中所提供的視頻轉(zhuǎn)碼方法;而對(duì)照組采用目前廣泛使用的切片并行轉(zhuǎn)碼方法。在測(cè)試時(shí),兩個(gè)系統(tǒng)均重負(fù)載運(yùn)行,平均CPU占用均略超過(guò)90%。測(cè)試時(shí)間為2小時(shí)。測(cè)試結(jié)果如下:測(cè)試項(xiàng)對(duì)照組測(cè)試組效率提升完成任務(wù)數(shù)913個(gè)1166個(gè)27.7%平均純執(zhí)行時(shí)間/任務(wù)6.25分鐘4.8分鐘23.2%平均轉(zhuǎn)碼時(shí)間/任務(wù)51.6分鐘10.7分鐘79.2%可以看到測(cè)試組在整體的性能上的明顯優(yōu)勢(shì)。測(cè)試組多完成27.7%的轉(zhuǎn)碼任務(wù),單個(gè)任務(wù)性能提升23.2%。這部分主要來(lái)自于不必要的分享和調(diào)度成本的優(yōu)化。在排隊(duì)等待方面,對(duì)照組的平均純運(yùn)行時(shí)間僅占平均總運(yùn)行時(shí)間12.11%,而測(cè)試組達(dá)到44.86%,優(yōu)化效果同樣明顯。盡管本發(fā)明的內(nèi)容已經(jīng)通過(guò)上述優(yōu)選實(shí)施例作了詳細(xì)介紹,但應(yīng)當(dāng)認(rèn)識(shí)到上述的描述不應(yīng)被認(rèn)為是對(duì)本發(fā)明的限制。在本領(lǐng)域技術(shù)人員閱讀了上述內(nèi)容后,對(duì)于本發(fā)明的多種修改和替代都將是顯而易見(jiàn)的。因此,本發(fā)明的保護(hù)范圍應(yīng)由所附的權(quán)利要求來(lái)限定。當(dāng)前第1頁(yè)1 2 3