一種生成視頻文件概覽的裝置和方法
【專利說(shuō)明】
[0001]
技術(shù)領(lǐng)域
本發(fā)明涉及到一種生成視頻文件概覽的裝置和方法,尤其涉及一種從一個(gè)視頻文件中提取幀從而生成一個(gè)可以播放的視頻小文件或者GIF文件的裝置和方法。
[0002]
【背景技術(shù)】
隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,音視頻資料極大豐富。由于音視頻文件的特殊性,用戶在看完音視頻文件前很難對(duì)其內(nèi)容有一個(gè)大概的了解。為解決這一問(wèn)題,出現(xiàn)了從視頻中提取幀做成一個(gè)概覽文件的方法。概覽文件的尺寸遠(yuǎn)小于原文件,播放速度很快,可以讓用戶快速了解音視頻文件的內(nèi)容。生成視頻文件概覽的裝置和方法有兩種類型:一種是手動(dòng)取幀的裝置,另一種是取關(guān)鍵幀的裝置。手動(dòng)取幀的裝置,需要用戶一幀一幀的挑選,工作量繁瑣,消耗時(shí)間多;而取關(guān)鍵幀的裝置,有局限性,不靈活,可調(diào)控性小。
[0003]
【發(fā)明內(nèi)容】
本發(fā)明涉及生成視頻文件概覽裝置的優(yōu)點(diǎn)有是自動(dòng)取幀生成視頻概覽裝置,同樣用戶可以根據(jù)需要的格式,文件大小,播放速度,以及像素可以自動(dòng)設(shè)置的將一個(gè)音視頻文件剪切成一個(gè)可以播放的自動(dòng)處理多種輸入輸出格式GIF文件的裝置。
[0004]為了解決上述技術(shù)問(wèn)題,本發(fā)明的一方面提供一種生成視頻概覽的裝置,包括:解封裝t吳塊,將首視頻文件解封裝為視頻巾貞序列和首頻巾貞序列;巾貞提取t吳塊,從所述視頻中貞序列中提取特定幀的圖像;封裝模塊,將所述圖像依次封裝為視頻概覽文件。
[0005]優(yōu)選地,還包括對(duì)所述圖像的參數(shù)進(jìn)行調(diào)整的調(diào)整模塊。
[0006]優(yōu)選地,所述視頻概覽文件為視頻文件或GIF格式的圖像文件。
[0007]優(yōu)選地,還包括接收用戶輸入的視頻概覽文件的參數(shù),并將所述參數(shù)轉(zhuǎn)發(fā)給裝置中其他模塊的控制模塊。
[0008]優(yōu)選地,所述幀提取模塊每隔固定的間隔提取一幀圖像。
[0009]優(yōu)選地,所述固定的間隔為時(shí)間間隔或一定的幀間距。
[0010]優(yōu)選地,所述幀提取模塊判斷每隔固定間隔的特定幀是否為I幀;如果所述特定幀為I幀則提取該幀的圖像;如果所述特定幀不是I幀且在所述特定幀的一定范圍內(nèi)有I幀,則提取所述I幀的圖像;如果所述特定幀不是I幀且在所述特定幀的一定范圍內(nèi)沒(méi)有I幀,則提取所述特定幀的圖像。
[0011]優(yōu)選地,所述一定范圍是在所述特定幀前后一定距離以內(nèi)的范圍。
[0012]優(yōu)選地,所述幀提取模塊按照從鄰近所述特定幀到逐漸遠(yuǎn)離所述特定幀的順序判斷所述一定范圍內(nèi)是否有I幀,且優(yōu)先提取距離所述特定幀近的I幀。
[0013]優(yōu)選地,所述裝置還包括場(chǎng)景轉(zhuǎn)換模塊;如果所述場(chǎng)景轉(zhuǎn)換模塊判斷發(fā)生了場(chǎng)景轉(zhuǎn)換,所述幀提取模塊用所述場(chǎng)景轉(zhuǎn)換產(chǎn)生的首個(gè)I幀代替距離所述場(chǎng)景轉(zhuǎn)換產(chǎn)生的首個(gè)I幀的位置最近的需要被提取的幀。
[0014]本發(fā)明提供一種生成視頻概覽的方法,包括:解封裝步驟,將音視頻文件解封裝為視頻巾貞序列和首頻巾貞序列;巾貞提取步驟,從所述視頻巾貞序列中提取特定巾貞的圖像;封裝步驟,將所述圖像依次封裝為視頻概覽文件。還包括對(duì)所述圖像的參數(shù)進(jìn)行調(diào)整的調(diào)整步驟。
[0015]優(yōu)選地,所述視頻概覽文件為視頻文件或GIF格式的圖像文件。
[0016]優(yōu)選地,還包括接收用戶輸入的視頻概覽文件的參數(shù)、并將所述參數(shù)轉(zhuǎn)發(fā)給裝置中其他模塊的控制步驟。
[0017]優(yōu)選地,所述幀提取步驟中每隔固定的間隔提取一幀圖像。
[0018]優(yōu)選地,所述固定的間隔為時(shí)間間隔或一定的幀間距。
[0019]優(yōu)選地,在所述幀提取步驟判斷每隔固定間隔的特定幀是否為I幀;如果所述特定幀為I幀則提取該幀的圖像;如果所述特定幀不是I幀且在所述特定幀的一定范圍內(nèi)有I幀,則提取所述I幀的圖像;如果所述特定幀不是I幀且在所述特定幀的一定范圍內(nèi)沒(méi)有I幀,則提取所述特定幀的圖像。
[0020]優(yōu)選地,所述一定范圍是在所述特定幀前后一定距離以內(nèi)的范圍。
[0021]優(yōu)選地,在所述幀提取步驟中按照從鄰近所述特定幀到逐漸遠(yuǎn)離所述特定幀的順序判斷所述一定范圍內(nèi)是否有I幀,且優(yōu)先提取距離所述特定幀近的I幀。
[0022]優(yōu)選地,還包括監(jiān)視場(chǎng)景轉(zhuǎn)換的步驟;如果發(fā)生了場(chǎng)景轉(zhuǎn)換,用所述場(chǎng)景轉(zhuǎn)換產(chǎn)生的首個(gè)I幀代替距離所述場(chǎng)景轉(zhuǎn)換產(chǎn)生的首個(gè)I幀的位置最近的需要被提取的幀。
【附圖說(shuō)明】
[0023]圖1為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)框圖。
[0024]圖2為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的一個(gè)實(shí)施例的處理流程圖。
[0025]圖3為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的另一個(gè)實(shí)施例的處理流程圖。
[0026]圖4為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的另一個(gè)實(shí)施例的結(jié)構(gòu)框圖。
[0027]圖5為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的另一個(gè)實(shí)施例的處理流程圖。
[0028]具體實(shí)施方法
下面根據(jù)附圖所示實(shí)施方式闡述本發(fā)明。本發(fā)明的范圍不受上述實(shí)施方式的說(shuō)明所限,僅由權(quán)利要求書(shū)的范圍所示,而且包括與權(quán)利要求范圍具有同樣意思及權(quán)利要求范圍內(nèi)的所有變形。
[0029]實(shí)施例1
圖1為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)框圖,本實(shí)施方式涉及的裝置包括數(shù)據(jù)接收模塊1、解封裝模塊2、幀提取模塊3、調(diào)整模塊4、封裝模塊5和控制模塊6。
[0030]控制模塊6用于接收用戶設(shè)定的要輸出的視頻文件或者GIF文件的相關(guān)參數(shù)(幀率、像素等)和上述解封裝模塊2得到的需要處理的音視頻文件的相關(guān)參數(shù)(分析文件頭和視頻幀的幀頭得到的相關(guān)參數(shù)),并將各功能模塊需要的參數(shù)轉(zhuǎn)發(fā)給相應(yīng)的模塊。上述數(shù)據(jù)接收模塊1接收音視頻文件并將接收的音視頻文件傳送至上述解封裝模塊2進(jìn)行相應(yīng)的解封裝。上述解封裝模塊2接收到音視頻文件,分析音視頻文件的格式,將音視頻文件解封裝為視頻幀序列和音頻幀序列,將視頻幀序列傳輸給上述幀提取模塊3,通過(guò)分析文件頭和視頻幀的幀頭,可以得到音視頻文件的相關(guān)參數(shù)(幀率、幀數(shù)、視頻幀格式等),并將得到的相關(guān)參數(shù)傳輸給上述控制模塊6。上述幀提取模塊3接收到上述解封裝模塊2傳輸過(guò)來(lái)的視頻幀序列,對(duì)視頻幀序列開(kāi)始取幀解碼之前,控制模塊6將相關(guān)參數(shù)發(fā)送給上述幀提取模塊3,幀提取模塊3根據(jù)控制模塊6發(fā)送的相關(guān)參數(shù)確定取幀的間隔(時(shí)間間隔或者幀間距),根據(jù)確定的取幀間隔,上述幀提取模塊3對(duì)上述被解析的視頻幀序列按照一定的間隔取幀并解碼。提取的幀有三種格式:1幀、B幀和P幀。如果抽取的幀為I幀,則I幀是完整的圖片,可以直接解碼,不需要再提取其他幀來(lái)解碼I幀;如果提取的幀為P幀,P幀是一個(gè)不完整的圖片,需要再提取一個(gè)I幀或者P幀來(lái)對(duì)其進(jìn)行解碼;如果提取的是B幀,B幀也是一個(gè)不完整的圖片,對(duì)于B幀需要再提取相應(yīng)的一個(gè)I幀和P幀或者兩個(gè)P幀來(lái)對(duì)其進(jìn)行解碼。將提取并解碼完的視頻數(shù)據(jù)(即各幀的圖片)按播放時(shí)間順序排列好,傳輸給上述調(diào)整模塊4。上述控制模塊6將相關(guān)參數(shù)發(fā)送給上述調(diào)整模塊4,調(diào)整模塊4根據(jù)控制模塊6發(fā)送的相關(guān)參數(shù)對(duì)接收到的視頻數(shù)據(jù)進(jìn)行修改圖片尺寸、設(shè)置幀之間的時(shí)間間隔等處理,將處理好的視頻數(shù)據(jù)傳輸給上述封裝模塊5。上述控制模塊6將相關(guān)參數(shù)發(fā)送給上述封裝模塊5,封裝模塊5對(duì)接收的視頻數(shù)據(jù)按要求封裝成需要格式的可播放視頻或者GIF文件。
[0031]圖2為本發(fā)明實(shí)施方式涉及的生成視頻文件概覽的裝置的一個(gè)實(shí)施例的處理流程圖。下面參考圖2說(shuō)明本實(shí)施例涉及的生成視頻文件概覽的裝置的處理流程。
[0032]首先,輸入音視頻文件,上述數(shù)據(jù)接收模塊1接收上述音視頻文件并將其傳輸給上述解封裝模塊2 (步驟S11)。上述解封裝模塊2將接收的音視頻文件解封裝成視頻幀序列和音頻幀序列,分析文件頭和視頻幀的幀頭得到視頻數(shù)據(jù)的幀率、幀數(shù)等。解封裝模塊2將解封裝生成的視頻幀序列傳輸給上述幀提取模塊3,將分析得到的視頻數(shù)據(jù)的相關(guān)參數(shù)傳輸給上述控制模塊6 (步驟S12)。上述幀提取模塊3將接收到視頻幀序列按照固定間隔(時(shí)間間隔或者幀間距)取幀解碼(步驟S13),取幀解碼之前,上述控制模塊6將相關(guān)參數(shù)發(fā)送給上述幀提取模塊3,上述幀提取模塊3根據(jù)上述控制模塊6傳輸?shù)南嚓P(guān)參數(shù)將對(duì)視頻幀序列按照一定的間隔取幀解碼,如果抽取的幀為I幀,不需要提取其他幀來(lái)解碼I幀;如果提取的幀為P幀,P幀是一個(gè)不完整的圖片,P幀需要提取相應(yīng)的一個(gè)I幀或者P幀來(lái)對(duì)其進(jìn)行解碼;如果提取的是B幀,B幀也是一個(gè)不完整的圖片,對(duì)于B幀需要提取一個(gè)I幀和P幀或者兩個(gè)P幀來(lái)對(duì)其進(jìn)行解碼。最終把提取出來(lái)并且解碼好的視頻數(shù)據(jù)按播放時(shí)間順序進(jìn)行排列并傳輸給上述調(diào)整模塊4 (步驟S14)。上述調(diào)整模塊4接收到上述幀提取模塊3傳輸?shù)囊曨l數(shù)據(jù),上述控制模塊6將相關(guān)參數(shù)傳輸給上述調(diào)整模塊4,調(diào)整模塊4根據(jù)上述控制模塊6傳輸?shù)膮?shù)對(duì)視頻數(shù)據(jù)進(jìn)行調(diào)整(步驟S15),確定播放速度,降低分辨率等,最后將處理好的視頻數(shù)據(jù)傳輸給上述封裝模塊5進(jìn)行封裝。上述封裝模塊5將最終處理好的視頻數(shù)據(jù)進(jìn)行封裝得到要求格式的可播放的視頻或者GIF文件(步驟S16)。
[0033]實(shí)施例2
本實(shí)施例涉及的生成視頻文件概覽的裝置的結(jié)構(gòu)與實(shí)施例1的裝置相同,在此省略相關(guān)說(shuō)明。
[0034]實(shí)施例1的裝置按用戶設(shè)定的間隔提取幀,提取的幀有三種格式:1幀、B幀和P幀。如果提取的幀為I幀,I幀是完整的圖片,可以不依賴其他幀直接解碼;如果提取的幀為B幀或P幀,不是一個(gè)完整的圖片,需要另外提取其他的幀來(lái)完成對(duì)該幀的解碼。提取其他幀的操作和對(duì)B幀或P幀進(jìn)行解碼的操作會(huì)加重CPU的工作并增加處理所需的時(shí)間。因此,本實(shí)施例的裝置通過(guò)判斷與B、P幀一定距離內(nèi)的幀是否有I幀,如果有I幀,優(yōu)先提取I幀,用優(yōu)先提取的I幀代替該幀,來(lái)減輕CPU的工作量。如果該位置周圍一定范圍內(nèi)沒(méi)有I幀,將提取相應(yīng)的非I幀對(duì)該非I幀進(jìn)行解碼。如此,相比實(shí)施例1可以降低處理的負(fù)荷,同時(shí)對(duì)得到的可播放的視頻或者GIF文件的效果不會(huì)有明顯的影響。
[0035]圖3為本實(shí)施例涉及的裝置的的處理流程圖。下面參考圖3說(shuō)明本實(shí)施例涉及的生成視頻文件概覽裝置的處理流程。
[0036]首先,輸入音視頻文件,上述數(shù)據(jù)