小記:以前干過很多臟活兒傲霸、累活兒(尤其是配置并安裝環(huán)境之類的)都沒有寫成文檔形式吼野,以至于重裝了系統(tǒng)碰到類似問題又尼瑪重新百度墨榄、谷歌再來一遍膨报。所以静浴,真心勸各位網(wǎng)友養(yǎng)成一個(gè)好習(xí)慣堰氓,該記錄的時(shí)候要寫下來,為了自己也方便大家苹享。
需要安裝的工具
1双絮、MinGW
? ? ?下載地址:http://www.mingw.org/
? ? ?進(jìn)入下載頁面浴麻,點(diǎn)擊右上角的【Download Installer】
? ? ?點(diǎn)擊下圖中的鏈接<direct link>即可
? ? ?經(jīng)過傻瓜式的安裝,會(huì)進(jìn)入如下界面
? ? 左側(cè)選擇MinGW囤攀,選擇右邊的待安裝的項(xiàng)软免,反鍵 - Mark for Installation;之后焚挠,點(diǎn)擊Installation進(jìn)行安裝膏萧。需要注意的是,在安裝目錄下(我用的 是默認(rèn)路徑即C:\MinGW\bin)有g(shù)++.exe | gcc.exe | gdb.exe就行蝌衔,如果沒有的話榛泛,就在上圖中的packages列將帶有g(shù)++、gcc噩斟、ada名字的bin項(xiàng)都選上進(jìn)行安裝曹锨。
【 備注】建議也選擇MSYS進(jìn)行安裝(隨便挑一個(gè)即可),為了將msys文件夾在C:\MinGW中生成剃允。
? ? 最后沛简,將C:\MinGW\bin添加到環(huán)境變量PATH中,打開cmd命令行硅急,運(yùn)行g(shù)cc -v覆享,如果把版本信息都打出來說明安裝成功。
2营袜、Msys
? ? ?下載地址:https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/
? ? ?選擇第一個(gè)(我選的是它)撒顿,下載并解壓,將msys里面的所有東東拷貝到C:\MinGW\msys\1.0下進(jìn)行替換荚板;同時(shí)凤壁,將C:\MinGW\msys\1.0\bin也添加在環(huán)境變量PATH中。
? ? ?運(yùn)行msys.bat跪另,并進(jìn)入到ffmpeg解壓目錄下拧抖,執(zhí)行./build_android.sh即可編譯ffmpeg庫文件。
? ? ?運(yùn)行那個(gè)腳本就會(huì)進(jìn)行一個(gè)編譯的了免绿,編譯過程中唧席,有時(shí)可以什么反應(yīng)都沒有,千萬不要以為沒有運(yùn)行嘲驾,停止它淌哟,因?yàn)榫幾g是比較耗時(shí)的,編譯個(gè)20分鐘是很正常的辽故,電腦性能好的徒仓,會(huì)快點(diǎn),差的可能半小時(shí)都正常誊垢,要確定有沒有在編譯掉弛,可以查看一下cpu的使用率就可以了症见。經(jīng)過一段時(shí)間的編譯,我們就可以在腳本里面定義的那個(gè)目錄里面看到編譯成功的庫了殃饿。
3谋作、FFMPEG編譯腳本
在FFMPEG解壓目錄下新建build_android.sh(名字可以隨便取)
#!/bin/sh
#這里的這些變量根據(jù)自己本地的環(huán)境切換
export NDK=D:/03_AndroidSDK/Sdk/ndk-bundle
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt
export PLATFORM=$NDK/platforms/android-19/arch-arm
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
export PREFIX=../ffmpeglib
build_one(){
./configure --target-os=linux --prefix=$PREFIX --enable-cross-compile \
--enable-runtime-cpudetect \
--disable-asm \
--arch=arm \
--cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--enable-gpl --enable-shared --disable-static --enable-small \
--disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug \
--extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a"
}
build_one
make
make install
cd ..