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