今天也来编译一下ijkplayer ,并做记录。
先普及一下cygwin和mingw知识
cygwin和mingw都是为用户提供在windows操作系统使用GNU工具的方法,使得在windows上可以编译为linux写的c源代码并运行(让你可以用signal等linux才有的api)。
真正的不同在于
1,cygwin大,mingw小
2,cygwin编译后的exe需要cygwin1.dll作为支持,而mingw不需要就可以直接运行,因为有中间层所以cygwin慢,mingw快。
3,cygwin包含的内容更全面,能编译通过的linux源文件更多,mingw的min是minimalist所以能编译通过的更少。但,不是全部,就是说别指望你可以把任何为linux写的源代码在cygwin或mingw编译通过并运行。
编译之前请确保已经配置好环境。关于配置细节请自行百度,不过一般在此之前都配置过了。
1.安装cygwin,并安装git,make,ysam
2.设置环境变量
在cygwin的home目录下,修改 ~/.bash_profile 或 ~/.profile文件,添加
export ANDROID_SDK=
export ANDROID_NDK=
其中的路径根据实际情况填写。
//clone 源码到本地
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
//切换最新分支
git checkout -B latest k0.8.0
//流程化脚本编译
//1、编译前选择你的配置
//If you prefer more codec/format
cd config
rm module.sh
ln -s module-default.sh module.sh
//If you prefer less codec/format for smaller binary size (include hevc function)
cd config
rm module.sh
ln -s module-lite-hevc.sh module.sh
//If you prefer less codec/format for smaller binary size (by default)
cd config
rm module.sh
ln -s module-lite.sh module.sh
//执行脚本 会自动下载ffmpeg
./init-android.sh
//最后开始编译
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh all
- 1
导入Android Studio运行
如果编译带HTTPS的so
./init-android-openssl.sh
./init-android.sh
./compile-openssl.sh clean//清除
./compile-ffmpeg.sh clean//清除
./compile-openssl.sh all//编译
./compile-ffmpeg.sh all//编译
./compile-ijk.sh all
- 1
生成的so每种类型有三个,ffmepg的so大于3M就是https成功的标志啦!