一種視頻封裝前的檢測(cè)方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種視頻封裝前的檢測(cè)方法,包括:創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表;接收所述GOP,提取所述GOP的序號(hào),并將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表;接收所述音頻包,提取所述音頻包的序號(hào),并將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表;判斷所述GOP,以及所述音頻包是否全部接收成功。本發(fā)明實(shí)施例還提供了一種視頻封裝前的檢測(cè)裝置。使用本發(fā)明實(shí)施例公開(kāi)的視頻封裝前的檢測(cè)方法和裝置,可在對(duì)視頻進(jìn)行封裝之前通過(guò)內(nèi)存映射表的記錄情況來(lái)判斷GOP和音頻包是否遺失,從而能夠最大程度的避免由于GOP或者音頻包的遺失造成的視頻封裝不成功的情況。
【專利說(shuō)明】一種視頻封裝前的檢測(cè)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種視頻封裝前的檢測(cè)方法及裝置。
【背景技術(shù)】
[0002]當(dāng)有大量視頻需要進(jìn)行轉(zhuǎn)換格式時(shí),可以采用多臺(tái)單機(jī)版的轉(zhuǎn)碼軟件進(jìn)行轉(zhuǎn)碼;而更為高效的辦法是設(shè)計(jì)一個(gè)分布式的轉(zhuǎn)碼系統(tǒng)進(jìn)行轉(zhuǎn)碼。視頻轉(zhuǎn)碼一般可分為四個(gè)步驟進(jìn)行:a、解封裝,b、視頻解碼編碼,C、音頻解碼編碼,d、封裝。這四個(gè)步驟中視頻解碼編碼這一步要耗費(fèi)整個(gè)轉(zhuǎn)碼過(guò)程80%_90%的時(shí)間。為了提高轉(zhuǎn)碼速度,減少轉(zhuǎn)碼的整體時(shí)間最核心的是要減少視頻解碼編碼的處理時(shí)間。
[0003]分布式轉(zhuǎn)碼的思想是利用多臺(tái)服務(wù)器同時(shí)并行對(duì)進(jìn)GOP (Group of Pictures,畫(huà)面組)解碼編碼處理,并行處理GOP的服務(wù)器越多,整個(gè)轉(zhuǎn)碼過(guò)程耗時(shí)就越少。為此分布式轉(zhuǎn)碼系統(tǒng)一般被設(shè)計(jì)為:一臺(tái)服務(wù)器負(fù)責(zé)解封裝,多臺(tái)服務(wù)器負(fù)責(zé)處理G0P,一臺(tái)服務(wù)器負(fù)責(zé)處理音頻包,一臺(tái)服務(wù)器負(fù)責(zé)封裝并輸出目標(biāo)視頻文件。圖1所示即為分布式轉(zhuǎn)碼的系統(tǒng)示意圖。
[0004]依據(jù)現(xiàn)有的分布式轉(zhuǎn)碼系統(tǒng),同時(shí)對(duì)GOP和音頻包進(jìn)行轉(zhuǎn)碼的服務(wù)器數(shù)量越多,轉(zhuǎn)碼的效率也就越高,但是服務(wù)器數(shù)量越多越容易造成GOP或者音頻包的丟失,從而造成視頻封裝的失敗。如何在保證轉(zhuǎn)碼效率的同時(shí)確保GOP和音頻包的完整傳輸,是現(xiàn)有技術(shù)中面臨的一個(gè)問(wèn)題。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)視頻轉(zhuǎn)碼GOP和音頻包傳輸易丟失的問(wèn)題,本發(fā)明實(shí)施例提出一種視頻封裝前的檢測(cè)方法和裝置。
[0006]本發(fā)明的一個(gè)方面,提供一種視頻封裝前的檢測(cè)方法,包括:創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表;
[0007]接收所述G0P,提取所述GOP的序號(hào),并提取所述GOP的總數(shù)并保存,將所述GOP的序號(hào)與入所述GOP的內(nèi)存映射表;
[0008]接收所述音頻包,提取所述音頻包的序號(hào),并提取所述所述音頻包的總數(shù)并保存,將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表;
[0009]判斷所述G0P,以及所述音頻包是否全部接收成功。
[0010]本發(fā)明的另一個(gè)方面,提供一種視頻封裝前的檢測(cè)裝置,包括:
[0011]創(chuàng)建單元,用于創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表;
[0012]GOP內(nèi)存與入單兀,用于接收所述G0P,提取所述GOP的序號(hào),并將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表;
[0013]所述GOP內(nèi)存寫(xiě)入單元在接收所述GOP之后,還用于提取所述GOP的總數(shù)并保存;
[0014]音頻包內(nèi)存寫(xiě)入單元,用于接收所述音頻包,提取所述音頻包的序號(hào),并將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表;[0015]所述音頻包內(nèi)存寫(xiě)入單元在接收所述音頻包之后,還用于提取所述音頻包的總數(shù)并保存;
[0016]判斷單元,用于判斷所述G0P,以及所述音頻包是否全部接收成功。
[0017]使用本發(fā)明實(shí)施例公開(kāi)的視頻封裝前的檢測(cè)方法和裝置,服務(wù)器首先為GOP和音頻包創(chuàng)建內(nèi)存映射表,隨著GOP和音頻包的接收,在內(nèi)存映射表中記錄它們的接收情況,這樣即可在對(duì)視頻進(jìn)行封裝之前通過(guò)內(nèi)存映射表的記錄情況來(lái)判斷GOP和音頻包是否遺失,從而能夠最大程度的避免由于GOP或者音頻包的遺失造成的視頻封裝不成功的情況。
【專利附圖】
【附圖說(shuō)明】
[0018]圖1所示是一種分布式轉(zhuǎn)碼的系統(tǒng)示意圖;
[0019]圖2所示是本發(fā)明實(shí)施例提供的一種視頻封裝前的檢測(cè)方法的示意圖;
[0020]圖3所示是本發(fā)明實(shí)施例提供的一種視頻封裝前的檢測(cè)裝置的結(jié)構(gòu)示意圖;
[0021]圖4所示是本發(fā)明實(shí)施例提供的另一種視頻封裝前的檢測(cè)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]在本發(fā)明實(shí)施例中,服務(wù)器首先為GOP和音頻包創(chuàng)建內(nèi)存映射表,隨著GOP和音頻包的接收,在內(nèi)存映射表中記錄它們的接收情況,這樣即可在對(duì)視頻進(jìn)行封裝之前通過(guò)內(nèi)存映射表的記錄情況來(lái)判斷GOP和音頻包是否遺失,從而能夠最大程度的避免由于GOP或者音頻包的遺失造成的視頻封裝不成功的情況。
[0023]以下詳細(xì)說(shuō)明本發(fā)明實(shí)施例提供的視頻封裝前的檢測(cè)方法。
[0024]圖2所示為本發(fā)明一個(gè)實(shí)施例提供的視頻封裝前的檢測(cè)方法示意圖,根據(jù)該圖,詳述各步驟如下:
[0025]步驟201、創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表;
[0026]步驟202、接收所述G0P,提取所述GOP的序號(hào),并提取所述GOP的總數(shù)并保存,將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表;
[0027]步驟203、接收所述音頻包,提取所述音頻包的序號(hào),并提取所述所述音頻包的總數(shù)并保存,將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表;
[0028]具體地,本發(fā)明實(shí)施例提供一種算法來(lái)將GOP和音頻包的序號(hào)寫(xiě)入內(nèi)存映射表。
[0029]使用下述算法將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表,以及將所述音頻包的序號(hào)與入所述首頻包的內(nèi)存映射表:
[0030]Int N
[0031]Char Table [Μ]
[0032]If (Ν%8==0)
[0033]Table[Ν/8]=0x011 Table[Ν/8];
[0034]If (Ν%8==1)
[0035]Table[Ν/8]=0x02|Table[Ν/8];
[0036]If (N%8==2)
[0037]Table[N/8]=0x04 I Table[N/8];
[0038]If (N%8==3)[0039]Table[N/8]=0x08|Table[N/8];
[0040]If (N%8==4)
[0041]Table[N/8]=0x10 I Table[N/8];
[0042]If (N%8==5)
[0043]Table[N/8]=0x20|Table[N/8];
[0044]If(N%8==6)
[0045]Table[N/8]=0x40 I Table[N/8];
[0046]If (N%8==7)
[0047]Table[N/8]=0x80 I Table[N/8];
[0048]其中,N表示所述GOP或音頻包的序號(hào);
[0049]Table M表示所述GOP或音頻包的內(nèi)存映射表。
[0050]步驟204、判斷所述G0P,以及所述音頻包是否全部接收成功。
[0051]其中,若所述GOP或者所述音頻包沒(méi)有全部接收成功,則獲取所述缺失的GOP或者所述缺失的音頻包。
[0052]以下實(shí)施例介紹如何判斷GOP是否全部接收成功。
[0053]前述步驟204判斷所述GOP是否全部接收成功,包括:
[0054]根據(jù)所述GOP的總數(shù)以及所述GOP的內(nèi)存映射表,使用特定的算法判斷所述GOP是否全部接收成功;
[0055]若所述GOP沒(méi)有全部接收成功,并獲取缺失的GOP的序號(hào)。
[0056]具體地,所述使用特定的算法判斷所述GOP是否全部接收成功,包括:
[0057]使用下述算法判斷所述GOP是否全部接收成功,若所述GOP沒(méi)有全部接收成功,則獲取所述缺失的GOP的序號(hào);
[0058]Int N)
[0059]Char Table [Μ]
[0060]For (int i=0;i<N;i++)
[0061]{
[0062]If (i%8==0)
[0063]result=0x01&Table[i/8];
[0064]If (i%8==l)
[0065]result=(0x02&Table[i/8])>>1;
[0066]If (i%8==2)
[0067]result=(0x04&Table[i/8])>>2;
[0068]If (i%8==3)
[0069]result=(0x08&Table[i/8])>>3;
[0070]If (i%8==4)
[0071]result=(OxlO&Table[i/8])>>4;
[0072]If (i%8==5)
[0073]result=(0x20&Table[i/8])>>5;
[0074]If (i%8==6)[0075]result=(0x40&Table[i/8])>>6;
[0076]If (i%8==7)
[0077]result= (0x80&Table [i/8]) ?7;
[0078]if (result==。)
[0079]return i ; //
[0080]}
[0081]if (i==N) //
[0082]其中,N表示所述GOP的總數(shù);
[0083]Table M表不所述GOP的內(nèi)存映射表;
[0084]i表示所述GOP的序號(hào)。
[0085]前述步驟204中判斷所述音頻包是否全部接收成功,包括:
[0086]根據(jù)所述音頻包的總數(shù)以及所述音頻包的內(nèi)存映射表,使用特定的算法判斷所述音頻包是否全部接收成功;
[0087]若所述音頻包沒(méi)有全部接收成功,獲取缺失的音頻包的序號(hào)。
[0088]所述使用特定的算法判斷所述音頻包是否全部接收成功,包括:
[0089]使用下述算法判斷所述音頻包是否全部接收成功,若所述音頻包沒(méi)有全部接收成功,則獲取缺失的音頻包的序號(hào);
[0090]Int N)
[0091]Char Table [Μ]
[0092]For (int i=0;i<N;i++)
[0093]{
[0094]If (i%8==0)
[0095]result=0x01&Table[i/8];
[0096]If (i%8==l)
[0097]result=(0x02&Table[i/8])>>1;
[0098]If (i%8==2)
[0099]result=(0x04&Table[i/8])>>2;
[0100]If (i%8==3)
[0101]result=(0x08&Table[i/8])>>3;
[0102]If (i%8==4)
[0103]result=(OxlO&Table[i/8])>>4;
[0104]If (i%8==5)
[0105]result=(0x20&Table[i/8])>>5;
[0106]If (i%8==6)
[0107]result=(0x40&Table[i/8])>>6;
[0108]If (i%8==7)[0109]result=(0x80&Table[i/8])>>7;
[0110]if (result==0)
[0111]return i ; //[0112]}
[0113]if Q==N)//
[0114]其中,N表示所述音頻包的總數(shù);
[0115]Table M表示所述音頻包的內(nèi)存映射表;
[0116]i表示所述音頻包的序號(hào)。
[0117]使用本發(fā)明實(shí)施例公開(kāi)的視頻封裝前的檢測(cè)方法,服務(wù)器首先為GOP和音頻包創(chuàng)建內(nèi)存映射表,隨著GOP和音頻包的接收,在內(nèi)存映射表中記錄它們的接收情況,這樣即可在對(duì)視頻進(jìn)行封裝之前通過(guò)內(nèi)存映射表的記錄情況來(lái)判斷GOP和音頻包是否遺失,從而能夠最大程度的避免由于GOP或者音頻包的遺失造成的視頻封裝不成功的情況。
[0118]以下公開(kāi)一種視頻封裝前的檢測(cè)裝置,用以執(zhí)行前述實(shí)施例中公開(kāi)的方法。
[0119]圖3所示為本發(fā)明一個(gè)實(shí)施例提供的一種視頻封裝前的檢測(cè)裝置的結(jié)構(gòu)示意圖。依據(jù)該圖,詳述其中各組成部分如下:
[0120]創(chuàng)建單元301,用于創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表;
[0121]GOP內(nèi)存寫(xiě)入單元302,用于接收所述G0P,提取所述GOP的序號(hào),并將所述GOP的序號(hào)與入所述GOP的內(nèi)存映射表;
[0122]其中,所述GOP內(nèi)存寫(xiě)入單元302在接收所述GOP之后,還用于提取所述GOP的總
數(shù)并保存。
[0123]音頻包內(nèi)存寫(xiě)入單元303,用于接收所述音頻包,提取所述音頻包的序號(hào),并將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表;
[0124]其中,所述音頻包內(nèi)存寫(xiě)入單元303在接收所述音頻包之后,還用于提取所述音頻包的總數(shù)并保存。
[0125]判斷單元304,用于判斷所述G0P,以及所述音頻包是否全部接收成功。
[0126]其中,圖4所示為本發(fā)明一個(gè)實(shí)施例提供的另外一種視頻封裝前的檢測(cè)裝置的結(jié)構(gòu)示意圖。由該圖可以看出,該裝置還可以包括:
[0127]獲取單元305,用于在所述判斷單元判斷所述GOP或者所述音頻包沒(méi)有全部接收成功時(shí),則獲取所述缺失的GOP或者所述缺失的音頻包。
[0128]使用本發(fā)明實(shí)施例公開(kāi)的視頻封裝前的檢測(cè)方法和裝置,服務(wù)器首先為GOP和音頻包創(chuàng)建內(nèi)存映射表,隨著GOP和音頻包的接收,在內(nèi)存映射表中記錄它們的接收情況,這樣即可在對(duì)視頻進(jìn)行封裝之前通過(guò)內(nèi)存映射表的記錄情況來(lái)判斷GOP和音頻包是否遺失,從而能夠最大程度的避免由于GOP或者音頻包的遺失造成的視頻封裝不成功的情況。
[0129]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟、光盤(pán)、網(wǎng)絡(luò)節(jié)點(diǎn)、調(diào)度器等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0130]最后應(yīng)說(shuō)明的是:以上僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種視頻封裝前的檢測(cè)方法,其特征在于,包括: 創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表; 接收所述G0P,提取所述GOP的序號(hào),并提取所述GOP的總數(shù)并保存,將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表; 接收所述音頻包,提取所述音頻包的序號(hào),并提取所述所述音頻包的總數(shù)并保存,將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表; 判斷所述G0P,以及所述音頻包是否全部接收成功。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表,以及將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表,包括: 使用下述算法將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表,以及將所述音頻包的序號(hào)寫(xiě)入所述音頻包的內(nèi)存映射表:
Int N
Char Table[Μ]
If(Ν%8==0)
Table[Ν/8]=0x011 Table[Ν/8];
If(Ν%8==1)
Table[Ν/8]=0x02|Table[Ν/8];
If(N%8==2)
Table[N/8]=0x04|Table[N/8];
If(N%8==3)
Table[N/8]=0x08|Table[N/8];
If(N%8==4)
Table[N/8]=0x10|Table[N/8];
If(N%8==5)
Table[N/8]=0x20|Table[N/8];
If(N%8==6)
Table[N/8]=0x40|Table[N/8];
If(N%8==7)
Table[N/8]=0x80|Table[N/8]; 其中,N表示所述GOP或音頻包的序號(hào); Table M表示所述GOP或音頻包的內(nèi)存映射表。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,若所述GOP或者所述音頻包沒(méi)有全部接收成功,則獲取所述缺失的GOP或者所述缺失的音頻包。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷所述GOP是否全部接收成功,包括: 根據(jù)所述GOP的總數(shù)以及所述GOP的內(nèi)存映射表,使用特定的算法判斷所述GOP是否全部接收成功; 若所述GOP沒(méi)有全部接收成功,并獲取缺失的GOP的序號(hào)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述使用特定的算法判斷所述GOP是否全部接收成功,包括: 使用下述算法判斷所述GOP是否全部接收成功,若所述GOP沒(méi)有全部接收成功,則獲取所述缺失的GOP的序號(hào);
Int N)
Char Table[Μ]
For (int i=0;i<N;i++)
{
If(i%8==0)
result=0x01&Table[i/8];
If (i%8==l)
result= (0x02&Table[i/8])>>1;
If(i%8==2)
result= (0x04&Table[i/8])>>2;
If(i%8==3)
result= (0x08&Table[i/8])>>3;
If (i%8==4)
result= (OxlO&Table[i/8])>>4;
If (i%8==5)
result= (0x20&Table[i/8])>>5;
If (i%8==6)
result= (0x40&Table[i/8])>>6;
If(i%8==7)
result= (0x80&Table[i/8])>>7;
if (result==0)
return i;//
}
if(i==N)// 其中,N表示所述GOP的總數(shù); Table M表示所述GOP的內(nèi)存映射表; i表不所述GOP的序號(hào)。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷所述音頻包是否全部接收成功,包括: 根據(jù)所述音頻包的總數(shù)以及所述音頻包的內(nèi)存映射表,使用特定的算法判斷所述音頻包是否全部接收成功; 若所述音頻包沒(méi)有全部接收成功,獲取缺失的音頻包的序號(hào)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述使用特定的算法判斷所述音頻包是否全部接收成功,包括: 使用下述算法判斷所述音頻包是否全部接收成功,若所述音頻包沒(méi)有全部接收成功,則獲取缺失的音頻包的序號(hào);
8.一種視頻封裝前的檢測(cè)裝置,其特征在于,包括: 創(chuàng)建單元,用于創(chuàng)建視頻畫(huà)面組GOP的內(nèi)存映射表和音頻包的內(nèi)存映射表; GOP內(nèi)存寫(xiě)入單元,用于接收所述G0P,提取所述GOP的序號(hào),并將所述GOP的序號(hào)寫(xiě)入所述GOP的內(nèi)存映射表; 所述GOP內(nèi)存寫(xiě)入單元在接收所述GOP之后,還用于提取所述GOP的總數(shù)并保存;音頻包內(nèi)存寫(xiě)入單元,用于接收所述音頻包,提取所述音頻包的序號(hào),并將所述音頻包的序號(hào)與入所述首頻包的內(nèi)存映射表; 所述音頻包內(nèi)存寫(xiě)入單元在接收所述音頻包之后,還用于提取所述音頻包的總數(shù)并保存; 判斷單元,用于判斷所述G0P,以及所述音頻包是否全部接收成功。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括: 獲取單元,用于在所述判斷單元判斷所述GOP或者所述音頻包沒(méi)有全部接收成功時(shí),則獲取所述缺失的GOP或者所述缺失的音頻包。
【文檔編號(hào)】H04N21/234GK103647977SQ201310573822
【公開(kāi)日】2014年3月19日 申請(qǐng)日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
【發(fā)明者】張金良 申請(qǐng)人:天脈聚源(北京)傳媒科技有限公司