標籤:style class blog code java http
本系列文章導航
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是一個複雜的project,第一步編譯,特別是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放入project中。
準備了一個 output_example.c 的VC (2008 express edtion)project,有興趣的朋友 能夠郵件至
tang.jiyu at gmail dot com 索取,或者訪問 http://tinyurl.com/5h4v8q 下載。
博文來源:http://huqilong.blog.51cto.com/53638/137140