小记:以前干过很多脏活儿、累活儿(尤其是配置并安装环境之类的)都没有写成文档形式,以至于重装了系统碰到类似问题又尼玛重新百度、谷歌再来一遍。所以,真心劝各位网友养成一个好习惯,该记录的时候要写下来,为了自己也方便大家。
需要安装的工具
1、MinGW
下载地址:http://www.mingw.org/
进入下载页面,点击右上角的【Download Installer】
点击下图中的链接<direct link>即可
经过傻瓜式的安装,会进入如下界面
左侧选择MinGW,选择右边的待安装的项,反键 - Mark for Installation;之后,点击Installation进行安装。需要注意的是,在安装目录下(我用的 是默认路径即C:\MinGW\bin)有g++.exe | gcc.exe | gdb.exe就行,如果没有的话,就在上图中的packages列将带有g++、gcc、ada名字的bin项都选上进行安装。
【 备注】建议也选择MSYS进行安装(随便挑一个即可),为了将msys文件夹在C:\MinGW中生成。
最后,将C:\MinGW\bin添加到环境变量PATH中,打开cmd命令行,运行gcc -v,如果把版本信息都打出来说明安装成功。
2、Msys
下载地址:https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/
选择第一个(我选的是它),下载并解压,将msys里面的所有东东拷贝到C:\MinGW\msys\1.0下进行替换;同时,将C:\MinGW\msys\1.0\bin也添加在环境变量PATH中。
运行msys.bat,并进入到ffmpeg解压目录下,执行./build_android.sh即可编译ffmpeg库文件。
运行那个脚本就会进行一个编译的了,编译过程中,有时可以什么反应都没有,千万不要以为没有运行,停止它,因为编译是比较耗时的,编译个20分钟是很正常的,电脑性能好的,会快点,差的可能半小时都正常,要确定有没有在编译,可以查看一下cpu的使用率就可以了。经过一段时间的编译,我们就可以在脚本里面定义的那个目录里面看到编译成功的库了。
3、FFMPEG编译脚本
在FFMPEG解压目录下新建build_android.sh(名字可以随便取)
#!/bin/sh
#这里的这些变量根据自己本地的环境切换
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 ..
网友评论