天天看點

ffmpeg windows下編譯ffmpeg

windows下編譯ffmpeg

今天由于工作需求需重新編譯ffmpeg,百度,goole了一大堆,看眼花缭亂的,但幾乎都是三種方案,大部分都是直接轉發,一字不漏,錯誤的缺檔案的還是照轉,可是問題都大把的,于是乎,我整理如下資料,供初學者能少走彎路!

英文好的可以參考官網:

ffmpeg官網重新編譯方案:https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW

一.環境:

1.系統:

win7  64位

2.編譯工具:

mingw:mingw-get-inst-20101030.exe

yasm:yasm-1.3.0-win64.exe

pkg-config_0.23-3_win32

SDL-devel-1.2.14-mingw32.tar.gz(編譯好的)  編譯生成ffplay才需要

3.安裝:

(1)mingw:如下圖勾選

ffmpeg windows下編譯ffmpeg
ffmpeg windows下編譯ffmpeg

2.yasm:

yasm-1.3.0-win64.exe改名yasm.exe放到C:\MinGW\msys\1.0\bin檔案夾下(根據自己mingw的安裝路徑)

3.pkg-config

pkg-config_0.23-3_win32檔案夾下的bin下的libglib-2.0-0.dll和pkg-config.exe拷貝到C:\MinGW\msys\1.0\bin檔案夾下(根據自己mingw的安裝路徑)

4.sdl-config

發現隻有ffprobe.exe ffmpeg.exe

沒有ffplay.exe, ffserver.exe

 從sdl的官網下載下傳已經編譯好的dll:SDL-devel-1.2.14-mingw32.tar.gz

然後解壓, 将其中的bin, lib, include 3個檔案夾拷貝到mingw的目錄下, 當詢問是否覆寫, 選擇是.

到bin目錄找到sdl-config.用ultraedit打開. 将PREFIX=後面的值改為c:/mingw,接下來, 編譯, 成功獲得ffplay.exe.

 二.ffmpeg編譯有哪些方法:

1.cygwin  推薦:linux使用

2.MinGW+MSys 推薦:windows使用

三.如何使用編譯後的ffmpeg:

1.配置:

打開C:\MinGW\msys\1.0\msys.bat檔案,在檔案頭部加上

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"

這句話的作用就是: 設定 2008 x86 的開發環境。我們主要是使用它的 lib.exe 生成 *.lib 檔案。

運作msys.bat, 程式會根據你目前的使用者名,在目錄(C:\MinGW\msys\1.0\home)下建一個工作目錄。

目錄的名稱和你的使用者名一樣。如果目前你的系統使用者名是 administer, 那麼你的工作目錄就是(C:\MinGW\msys\1.0\home\administer)

2.編譯:

解壓縮 ffmpeg代碼 到 MinGW 的工作目錄。例如(C:\MinGW\msys\1.0\home\administer)

運作  C:\MinGW\msys\1.0\msys.bat,即可進入 MinGW 的工作目錄了。

在指令行下輸入如下指令:

靜态編譯:./configure --enable-shared --enable-static --enable-memalign-hack --prefix=c:/msys/1.0 --extra-cflags="-fno-common"

靜态編譯:./configure --enable-shared --disable-static --enable-memalign-hack --prefix=c:/msys/1.0 --extra-cflags="-fno-common"

此參數可省:--prefix=c:/msys/1.0 --extra-cflags="-fno-common"

成功後,編譯生成的檔案儲存在 (C:\MinGW\msys\1.0\local\bin),頭檔案儲存在 (C:\MinGW\msys\1.0\local\include)。

注:

靜态編譯的會生成local檔案夾;

動态編譯的則不會,生成的和源碼在一起,通過搜尋查找需要的;

第三方庫檔案的安裝

參考:http://blog.chinaunix.net/uid-29184939-id-4881778.html 

轉載于:https://www.cnblogs.com/zlp520/p/4516552.html

繼續閱讀