由於畢設需要開始學習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.0\VC\bin\vcvars32.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
FFmpeg 的詳細介紹:請點這裏
FFmpeg 的下載地址:請點這裏
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2016-08/134102.htm
Windows上編譯ffmpeg完整過程,包括編譯x264、SDL、faac。在Windows上編譯ffmpeg需要用MinGW+msys,本專題用於記錄編譯過程中遇到的各種問題及解決方法,轉載請註明出處:
一、下載準備
準備編譯過程所需的工具和源碼。
(1). MinGW http://sourceforge.net/projects/mingw/files/ MSYS http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe
(2). Yasm http://yasm.tortall.net/Download.html
(3). SDL http://www.libsdl.org/download-1.2.php
(4). X264 http://www.videolan.org/developers/x264.html
(5). FFmpeg http://www.ffmpeg.org/download.html
二、MinGW+MSYS安裝
最新版本MinGW安裝工具mingw-get-setup.exe內部已經集成了msys工具:
配置MSYS支持GCC編譯:
開始安裝:
安裝MSYS-1.0.11.exe(我們在後面的安裝過程中發現,上述安裝的msys gcc版本比較低,編譯SDL的時候會出錯),在安裝過程中會讓配置已安裝的MinGW路徑,如:C:/MinGW:
三、yasm支持
從步驟一中將下載來的yasm可執行文件,改名爲yasm.exe,放在Windows\System32中。
四、編譯SDL
解壓下載的SDL源碼包,例如放到D:\ffmpeg1.2\SDL-1.12.15目錄,msys進入SDL目錄,依次執行:
./configure -–prefix=/usr/local/SDL make make install
五、編譯x264
解壓下載的x264源碼包,例如放到D:\ffmpeg1.2\x264目錄,msys進入x264目錄,依次執行:
./configure --enable-shared –-disable-asm -–prefix=/usr/local/x264 make make install
六、重新部署環境
七、編譯faac1、下載
地址是:http://sourceforge.net/projects/mingwbundle/files/,在這個頁面上點擊Download下載那個zip文件。下載完成後,直接安裝,我使用的是默認路徑。(這個文件比較大,是MinGW+MSYS的合併安裝包,下載並安裝後,把C:\msys\1.0\bin文件夾複製出來,備份保存);
默認路徑爲:C:\minGW和C:\msys\1.0
2、配置環境變量
注意用“;”與前面的隔開
右擊“我的電腦”-》屬性-》高級-》環境變量
按如圖操作,在PATH的編輯框最後加上C:\MinGW\bin
三、下載MSYS
地址:http://download.csdn.net/detail/harvic880925/4602268
下載後,還是默認安裝,安裝前不用卸載前面第一步中安裝的版本,也就是把第一步的版本給覆蓋掉;
在安裝結束的時候會提出DOS提示窗口:
最後一句爲:
Do you wish to continue with the post install? [yn ]
輸入n,結束安裝。四、將在第一步中提取出來的bin文件夾內容,複製到C:\msys\1.0\bin文件夾下覆蓋現在的文件;
解壓下載的faac源碼包,例如放到D:\ffmpeg1.2\faac目錄,msys進入faac目錄,依次執行:
./bootstrap./configure --enable-shared –-disable-static -–prefix=/usr/local/faac make make install
八、部署MinGW-w64
九、編譯ffmpeg從http://jaist.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe 下載MinGW-w64,安裝在C:/mingw-w64/,然後修改c:\msys\etc\fstab文件中路徑,將MinGW路徑配置成:C:/mingw-w64/mingw32。
解壓下載的ffmpeg0.9.0源碼包,例如放到D:\ffmpeg1.2\ffmpeg0.9.0目錄,msys進入ffmpeg目錄,依次執行:
./configure --enable-shared --disable-static --enable-memalign-hack --enable-libx264 --enable-gpl --enable-nonfree --enable-libfaac --prefix=/usr/local/ffmpeg9.0
make make install
</div>