2013年7月24日 星期三

windows下 安裝ffmpeg+mingw

安裝環境windows 7 32bit
需下載文件
ffmpeg-2.0.tar.bz2
mingw-get-inst-20120426.exe
SDL-devel-1.2.15-mingw32.tar.gz
yasm-1.2.0-win32.exe
pkg-config_0.26-1_win32
glib_2.18.4-1_win32


1. 下載MinGW((Minimalist GNU on Windows),新版已包含msys1.0,所以不需額外下載msys

2. 下載ffmpeg

3. 下載\yasm,官網下載http://yasm.tortall.net/Download.html,在Latest Release版本直接下載Win32 .exe (for general use on 32-bit Windows)

4. 下載SDL

5. 下載pkg-config


安裝步驟:
1. 安裝MinGW
安裝過程把所有選項勾選,預設是安裝在C:\MinGW,新版同時安裝了msys,裝好會有C:\MinGW\msys\1.0的資料夾

2. 整合MinGW和msys
將位於C:\MinGW\msys\1.0\etc下的fstab用UltraEdit或是NotePad++開啟
修改為C:/MinGW   /mingw,即MinGW安裝路徑

3. 安裝yasm
將下載的yasm-1.2.0-win32.exe重新命名為yasm.exe,並放到C:/MinGW/bin/下
有另一作法為放到C:\Windows\System32下
這點還沒證實差別在哪

4. 安裝pkg-config
解壓縮下載的pkg-config_0.26-1_win32.zip,將bin資料夾下的pkg-config.exe複製到
C:\MinGW\bin下

5. 安裝glib
解壓縮glib_2.18.4-1_win32,將bin資料夾下的libglib-2.0-0.dll複製到C:\MinGW\bin下

6. 安裝SDL
解壓縮SDL-devel-1.2.15-mingw32.tar.gz,將資料夾下的bin、include、lib複製到C:\MinGW下相對應的bin、include、lib資料夾
然後使用UltraEdit或NotePad++打開bin資料夾內的sdl-config檔案
把prefix=/usr/*******改成prefix=c:/mingw


7. 編譯ffmpeg
解壓縮ffmpeg-2.0.tar.bz2,放到自己知道的路徑,我是直接放到C:\路徑下,打開MinGW切換到C:\ffmpeg-2.0輸入指令

$ cd c:
$ cd ffmpeg-2.0
$ ./configure --enable-yasm --disable-static --enable-shared  --enable-gpl --enable-libx264 --enable-ffplay --enable-pthreads --prefix=/ffmpeg
$ make
如果編譯失敗先執行make distclean或是make clean,之後修正錯誤後再重新編譯
$ make install

編譯完會在C:\MinGW\msys\1.0下產生ffmpeg的資料夾



錯誤處理:
1.
libavutil/atomic.c:101:2: Fehler: #error "Threading is enabled, but there is no implementation of atomic operations available"
common.mak:48: recipe for target 'libavutil/atomic.o' failed
make: *** [libavutil/atomic.o] Error 1


會有此錯誤是因為必須指定可使用的cpu下限
$ ./configure --cpu=corei686-avx
...
$ grep W32THREADS config.h
#define HAVE_W32THREADS 1
$ make libavutil/atomic.o
CC      libavutil/atomic.o
$

2. 使用.exe檔發生錯誤,缺少.dll,在此部分上網google下載,然後放到C:\Windows\System32

沒有留言:

張貼留言