在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤
多年前在https://blog.csdn.net/fengbingchun/article/details/40951403 中對FFmpeg在windows下的編譯過程做過說明,那時FFmpeg版本用的2.4.3, VS是2010,現(xiàn)在FFmpeg最新穩(wěn)定版為4.1.3,通過VS2013進(jìn)行編譯,較之前有了些不同,這里再次介紹下:
一、編譯x86庫:
1. 從https://osdn.net/projects/mingw/releases/ 下載mingw-get-setup.exe,更新日期為2017年9月6日;點(diǎn)擊右鍵以管理員身份安裝到C:/MinGW,安裝的Package有mingw-developer-toolkit-bin, mingw32-base-bin, mingw32-gcc-g++-bin, msys-base-bin;
2. 從http://yasm.tortall.net/Download.html 下載yasm-1.3.0-win64.exe,注意一定不要下載vsyasm-1.3.0-win64.zip,否則后面make的時候會有error,并拷貝到C:\MinGW\msys\1.0\bin并重命名為yasm.exe;
3. 下載pkg-config,處理” WARNING: pkg-config not found, library detection may fail.”,從http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/ 下載pkg-config_0.26-1_win32.zip,解壓縮并將pkg-config.exe拷貝到C:\MinGW\bin目錄下;從http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/ 下載pkg-config的依賴庫glib_2.28.8-1_win32.zip,解壓縮并將libglib-2.0-0.dll拷貝到C:\MinGW\bin目錄下;從http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/ 下載gettext-runtime_0.18.1.1-2_win32.zip,解壓縮并將intl.dll拷貝到C:\MinGW\bin目錄下;注意:此步可省略;
4. 將目錄C:\MinGW\bin和C:\MinGW\msys\1.0\bin添加到系統(tǒng)環(huán)境變量PATH中;
5. 將C:\MinGW\msys\1.0下的msys.bat復(fù)制一份并改名為msys_vs2013.bat,并在msys_vs2013.bat的開頭加上一句” call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"”;
6. 重命名C:\MinGW\msys\1.0\bin下的link.exe為link_msys.exe,這是為了防止此link.exe與vs2013中的link.exe發(fā)生沖突,編譯完FFmpeg后可再次修改回來;
7. 從https://github.com/FFmpeg/FFmpeg/releases ?下載FFmpeg-n4.1.3.zip并解壓縮到E:\FFmpeg-n4.1.3;
8. Fix error C2440: libavcodec/dxva2.c<524>, “初始化”:無法從”GUID”轉(zhuǎn)換為”unsigned long”:將libavcodec/dxva2.c的第519行由.DecodeProfile = decoder_guid,調(diào)整為.DecodeProfile = decoder_guid.Data1,;
9. 雙擊運(yùn)行msys_vs2013.bat,使用cd命令將其定位到E:\FFmpeg-n4.1.3\build_x86_release目錄下,此build_x86_release目錄需要自己手動創(chuàng)建,執(zhí)行如下命令:
.././configure --prefix=./install --toolchain=msvc
make -j4
make install
二、編譯x86_64位庫:
1.?如果還沒有配置好環(huán)境,則需先按照上面編譯x86庫中的步驟1,2,3,4,6,7,8操作一遍;
2. 將以上第5步中的” call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"”調(diào)整為” call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"”
3. 雙擊運(yùn)行msys_vs2013.bat,使用cd命令將其定位到E:\FFmpeg-n4.1.3\build_x86_64_release目錄下,此build_x86_64_release目錄需要自己手動創(chuàng)建,執(zhí)行如下命令:
.././configure --prefix=./install --target-os=win64 --arch=x86_64 --toolchain=msvc
make -j4
make install
執(zhí)行完make install后install目錄下會產(chǎn)生4個目錄,分別為:bin、include、lib、share:
1. bin目錄下有ffmpeg.exe和ffprobe.exe兩個文件,通過命令提示符執(zhí)行:ffmpeg.exe --help結(jié)果如下:
2. lib目錄下有l(wèi)ibavcodec.a, libavdevice.a, libavfilter.a, libavformat.a, libavutil.a, libswresample.a, libswscale.a七個靜態(tài)庫;
3. include目錄下包含了對應(yīng)上面七個靜態(tài)庫的頭文件;
4. share目錄下有一些samples。
三、說明:
1. configure文件中的編譯選項(xiàng)較多,可通過執(zhí)行:$ .././configure --help > help.txt 來查看編譯選項(xiàng)說明;
2. 默認(rèn)編譯的是靜態(tài)庫,若編譯動態(tài)庫,可增加編譯選項(xiàng)參數(shù)--enable-shared --disable-static;
3. 默認(rèn)編譯的是release庫,若編譯debug庫,可增加編譯選項(xiàng)參數(shù)--enable-debug;
4. 如果不想自己通過源碼編譯,也可以直接從https://ffmpeg.zeranoe.com/builds/# 下載現(xiàn)成的庫和執(zhí)行文件。
GitHub:?https://github.com/fengbingchun/OpenCV_Test?
總結(jié)
以上是生活随笔為你收集整理的在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YAML开源库yaml-cpp简介及使用
- 下一篇: FFmpeg中libavutil库简介及