本系列文章導航
Windows下FFmpeg快速入門
ffmpeg參數解釋
mencoder和ffmpeg參數詳解(Java處理視頻)
Java 產生影片縮圖(ffmpeg)
使用ffmpeg進行視頻檔案轉換成FLV整理
java 視頻處理 mencoder
java 視頻處理 ffmped+mencoder
Windows下FFmpeg快速入門FFmpeg簡介FFmpeg是什嗎?FFmpeg是用於錄製、轉換和流化音頻和視頻的完整解決方案, 包括
libavcodec ,一套領先的音/視頻編解碼類庫。FFmpeg 在Linux上開發,當可以在大多數作業系統下編譯,包括Windows。Note
- FFmpeg對GCC的依賴很強,所以就算是在Windows上, 用VC編譯FFmpeg也不是一件輕鬆的事情。請盡量使用 GCC來編譯FFmpeg,比較事半功倍。
FFmpeg的官方網址是 http://ffmpeg.mplayerhq.hu/。中文Wiki是 http://www.ffmpeg.com.cn/,資料很多。FFmpeg的組成結構FFmpeg主要由一下幾個部分組成:
- libavcodec: 一個包含了所有FFmpeg音視頻轉碼器的庫。 為了保證最優效能和高可複用性,大多數轉碼器從頭開發的。
- libavformat: 一個包含了所有的普通音視格式的解析器和 產生器的庫。
-
-
三個執行個體程式,這三個執行個體較為複雜,基本可以作為API使用手冊:
-
- ffmpeg:命令列的視頻格式轉換程式。
- ffplay:視頻播放程式。(需要SDL支援)
- ffserver:多媒體伺服器
瞭解完組成結構後,你會發現,如果你在尋找一種視頻格式轉換 的方式,那FFmpeg絕對是你的第一選擇,
libavcodec 則又是重 中之重。如果遇上API不會使用的情況,可以參考ffmpeg.c、ffplay.c、 ffserver.c、apiexample.c(解碼)和output_example.c(編碼)。FFmpeg的編譯要使用FFmpeg,第一步就是編譯,對於Linux上的使用者,可以參考 http://www.ffmpeg.com.cn/index.php/Ffmpeg%E7%BC%96%E8%AF%91%E8%AF%A6%E8%A7%A3對於Windows使用者,可以參考 http://bbs.chinavideo.org/viewthread.php?tid=1897&extra=page%3D1
- 編譯FFmpeg是一個複雜的過程,如果你想加快速度,領略FFmpeg 的風采,則可以跳過這一步,直接進入下一章節。
FFmpeg的SDKFFmpeg是一個複雜的工程,第一步編譯,特別是Windows下的編譯 過程,更是複雜。 因此,好心的網友提供了Windows下編譯好的 dll和lib庫檔案,以及相關的標頭檔。新手們則可直接下載,並開始編寫 FFmpeg庫的程式了。
- SDK下載和編譯參數可以參考 http://www.ffmpeg.com.cn/index.php/SDK_Download 。
- SDK入門寶典可以從 http://www.bairuitech.com/html/ruanjianxiazai/20070713/49.html下載。
以上兩者已經足以完成FFmpeg的入門,最新的SDK版本是3.0, 對應於FFmpeg的版本是 r10087。新手們可以從編譯原始碼庫中的 output_example.c開始,同時參考
SDK入門寶典 。編譯output_example.c的時候需要注意以下問題:
- VC的是不支援C語言中的inline,所以可以把相關的inline刪除。
- 對於snprintf的支援,可以考慮從 http://www.ijs.si/software/snprintf/下載 snprintf.h和snprintf.c放入工程中。
準備了一個 output_example.c 的VC (2008 express edtion)工程,有興趣的朋友 可以郵件至
tang.jiyu at gmail dot com 索取,或者訪問 http://tinyurl.com/5h4v8q 下載。
博文來源:http://huqilong.blog.51cto.com/53638/137140