申麗紅 李小勇 周恕義
摘要:在音視頻資源共享系統(tǒng)中,為了使音視頻資源有利于網(wǎng)絡(luò)傳播,需要對(duì)不同的音視頻編碼進(jìn)行轉(zhuǎn)換,可通過開源軟件FFmpeg和Mencoder來實(shí)現(xiàn)音視頻的轉(zhuǎn)碼。FFmpeg和Mencoder擁有豐富的音視頻解碼器和編碼器,可以有效的完成多種格式的音視頻的編碼。
關(guān)鍵詞:視頻轉(zhuǎn)碼;音視頻資源共享系統(tǒng);FFmpeg;Mencode
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)08-1928-03
1 概述
2 FFmpeg和Mencoder簡(jiǎn)介
FFmpeg是一個(gè)在Linux下開發(fā)出來的一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序,但它可以在包括Windows在內(nèi)的大多數(shù)操作系統(tǒng)中編譯。這個(gè)項(xiàng)目是由Fabrice Bellard發(fā)起的,現(xiàn)在由Michael Niedermayer主持。它包括了目前領(lǐng)先的音/視頻編碼庫libavcodec,支持 MPEG、DivX、MPEG4、AC3、DV、FLV等40多種編碼,AVI、MPEG、OGG、ASF等90多種解碼,可以輕易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換。
Mencoder是Mplayer自帶的編碼工具(Mplayer是Linux下的播放器,開源,支持幾乎所有視頻格式的播放,現(xiàn)在有windows和Mac版本)。Mencoder支持幾乎所有格式的視頻轉(zhuǎn)換,可以將任意格式轉(zhuǎn)換到任意格式,轉(zhuǎn)換格式可以說非常強(qiáng)大。
3 視頻格式說明
在音視頻資源共享系統(tǒng)中,當(dāng)主程序檢測(cè)到用戶有新上傳的視頻后,等待進(jìn)入到視頻轉(zhuǎn)碼流程,由主程序調(diào)用FFmpeg.exe或者M(jìn)encoder.exe完成對(duì)視頻的轉(zhuǎn)碼并將轉(zhuǎn)碼后的視頻保存在相應(yīng)的目錄下,同時(shí),截取視頻文件的某一幀作為視頻的縮略圖保存到對(duì)應(yīng)的圖像文件,等待進(jìn)程結(jié)束,根據(jù)轉(zhuǎn)碼原理,由于參數(shù)的設(shè)計(jì),轉(zhuǎn)碼后的音視頻會(huì)比原來的視頻小,并且在一定的范圍內(nèi),因此根據(jù)原音視頻資源和轉(zhuǎn)碼后的音視頻資源進(jìn)行比較,來判斷轉(zhuǎn)碼是否成功,如果轉(zhuǎn)碼后的音視頻過小,表示轉(zhuǎn)碼未成功,標(biāo)記并返還主程序;如果轉(zhuǎn)碼成功,將轉(zhuǎn)碼后的視頻路徑和圖像路徑保存到數(shù)據(jù)庫,至此,完成對(duì)視頻的轉(zhuǎn)碼流程。
4.2 具體控制流程
1)對(duì)用戶上傳的音視頻,數(shù)據(jù)庫存儲(chǔ)的主要的視頻信息包括:名稱,轉(zhuǎn)碼前存儲(chǔ)路徑,轉(zhuǎn)碼后的存儲(chǔ)路徑,大小,音視頻截圖路徑,音視頻狀態(tài)標(biāo)志位(報(bào)告轉(zhuǎn)碼中,審核中,轉(zhuǎn)碼成功,轉(zhuǎn)碼未成功,審核通過,審核未通過)。當(dāng)用戶上傳成功后,改變數(shù)據(jù)庫的狀態(tài)標(biāo)志位為轉(zhuǎn)碼中,進(jìn)入視頻轉(zhuǎn)碼子系統(tǒng)。
2)對(duì)于音視頻轉(zhuǎn)碼的處理,有兩種處理方式,一種是多進(jìn)程,一種是多線程。
5 結(jié)論
在音視頻資源共享系統(tǒng)中,視頻轉(zhuǎn)碼是該系統(tǒng)的重要組成部分,對(duì)于提高網(wǎng)絡(luò)視頻的傳播效率,有很大的幫助。使用FFmpeg和Mencoder相結(jié)合的轉(zhuǎn)碼方案,不僅可以實(shí)現(xiàn)對(duì)各種編碼格式的視頻的轉(zhuǎn)換,而且可以生產(chǎn)視頻的截圖和壓縮,方便用戶的瀏覽。系統(tǒng)完成后,轉(zhuǎn)碼效率高,系統(tǒng)運(yùn)行穩(wěn)定。
參考文獻(xiàn):
[1] 楊麗軍.FFmpeg在媒體資產(chǎn)管理系統(tǒng)的應(yīng)用[J].現(xiàn)代電子技術(shù),2011(8):147-148.
[2] 馬洪堂.基于FFmpeg的視頻轉(zhuǎn)換系統(tǒng)[D].杭州:浙江大學(xué)碩士學(xué)位論文,2009.
[3] 任嚴(yán),劉麗.基于FFmpeg的視頻轉(zhuǎn)換與發(fā)布系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007(10):4962-4963.