今天也来编译一下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
- ./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
生成的so每种类型有三个,ffmepg的so大于3M就是https成功的标志啦!