首頁 > 軟體

VS2013編譯FFmpeg

2020-06-16 17:35:39

由於畢設需要開始學習ffmpeg,因為要修改原始碼所以這裡只能是原始碼編譯。如果要直接使用ffmpeg網上有現成的SDK。原始碼編譯,當然搭環境的是第一步。在Windows平台上比較麻煩,需要的東西比較多。

  • Mingw
  • yasm
  • SDL
  • ffmpeg

具體步驟

1.安裝mingw,下載地址:http://www.mingw.org/;下載完成後安裝,安裝完成後點執行,標記上以下幾項:mingw-devloper-toolkit、mingw32-base、mingw32-gcc-g++、msys-base.然後在Installation選單下點選Apply Changes;

2.下載FFMPEG原始碼,下載地址:http://ffmpeg.com

3.下載yasm,下載地址: http://yasm.tortall.net/ ;下載後改名為yasm.exe,複製到MinGW安裝目錄的/msys/1.0/bin(預設裝C槽則路徑為C:/MinGW/msys/1.0/bin)目錄下;

4.設定C:/MinGW/msys/1.0/msys.bat,在此檔案的最前面(@echo off之後)新增一行如下內容:

call “E:Program Files(x86)Microsoft Visual Studio 12.0VCbinvcvars32.bat” (依實際安裝路徑修改路徑);

5.重新命名 C:/MinGW/msys/1.0/bin/link.exe(依實際安裝選擇路徑),這一步是防止這個link.exe與vc的link.exe發生衝突,編譯完成後可修改回來;修改環境變數中的Path,將C:/MinGW/msys/1.0/bin和C:/MinGW/bin加到path中。在cmd中輸入gcc -v出現相關資訊則Mingw安裝成功。

6.安裝SDL

下載SDL的原始碼包,解壓到ffmpeg同目錄下

進入SDL目錄,依次執行

./configure -–prefix=/usr/local/SDL
make
make install

通過以下命令匯入SDL環境變數。

export PATH=”$PATH:/usr/local/SDL/bin”
export C_INCLUDE_PATH=”$C_INCLUDE_PATH:/usr/local/SDL/include/SDL”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/SDL/lib”

7.安裝x264

下載X264原始碼包,解壓到ffmpeg同目錄下

進入到x264目錄,依次執行

./configure –enable-shared –-disable-asm -–prefix=/usr/local/x264
make
make install

通過以下命令匯入x264環境變數。

export PATH=”$PATH:/usr/local/x264/bin”
export C_INCLUDE_PATH=”$C_INCLUDE_PATH:/usr/local/x264/include”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/x264/lib”

8.設定編譯,雙擊msys.bat,轉到FFMPEG原始碼根目錄下,可執行 ./configure –help檢視編譯設定選項,我使用的選項為:

./configure –-enable-shared -–disable-static –-enable-memalign-hack –enable-libx264 –enable-gpl –-prefix=/usr/local/ffmpeg

等待設定完成返回;

9.輸入 make all 編譯;

10.輸入make install安裝。
安裝完成後,可到目錄,檢視安裝結果。
完成,此時生成的標頭檔案及庫已經在ffmpeg原始碼下的local/ffmpeg目錄下,使用這個庫,即可在VS下單步進入FFMPEG函數內部。

可能遇到的問題

在./cofigure時可能出現

line ***:tr:command not found
line ***:uname:command not found
line ***:cat:command not found

解決辦法:安裝coreutils,在安裝目錄的bin目錄下將缺少的命令的exe和libintl3.dll,libiconv2.dll 檔案拷貝到C:MinGW/msys/1.0/bin目錄下

warning:pkg-config not found, library detection may fail

解決辦法:下載pkg-config-0.23-2.zip及glib_2.18.4-1_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

把pkg-config.exe 和 glib_2.18.4-1_win32.zip中的libglib-2.0-0.dll放在mingw的bin目錄下,或者放在$path目錄下.

Linux下編譯FFmpeg之下載原始檔並編譯 http://www.linuxidc.com/Linux/2012-02/54565.htm

Linux 編譯升級 FFmpeg 步驟 http://www.linuxidc.com/Linux/2013-08/88190.htm

CentOS 5.6 上安裝 FFMPEG http://www.linuxidc.com/Linux/2011-09/42793.htm

Ubuntu下安裝FFmpeg http://www.linuxidc.com/Linux/2012-12/75408.htm

Ubuntu 12.04下編譯ffmpeg  http://www.linuxidc.com/Linux/2013-02/78857.htm

Ubuntu 14.04下PPA安裝FFmpeg 2.2.2  http://www.linuxidc.com/Linux/2014-05/101322.htm


IT145.com E-mail:sddin#qq.com