编译ijkplayer
ijkplayer默认编译好的so比较局限,比如不支持https、不支持rmvb等。要想兼容只能自己进行编译。
编译步骤:
一、准备Linux环境
需要在Linux中编译,例如我的Linux版本为Ubuntu 16.04。
二、安装Git和yasm
sudo apt-get install git
sudo apt-get install yasm
注意,需要连接网络,如果服务器没法访问网络,可以通过手机网络共享给服务器,进行安装。
三、下载和配置SDK与NDK
1、下载SDK和NDK压缩包,并放到服务器某个目录下。
官网就可以下载,例如我下载的是android-sdk_r24.4.1-linux.tgz和android-ndk-r13b-linux-x86_64.zip。
2、解压压缩包。要先cd到压缩包存放的目录下,再执行下面目录解压。
sudo tar -zxvf android-sdk_r24.4.1-linux.tgz
sudo unzip android-ndk_r13b-linux-x86_64.zip
3、配置SDK和NDK环境变量。
a、打开 /etc/profile 文件,用vim即可:
sudo vim /etc/profile
b、vim进入insert模式在文件末尾添加以下环境变量:
export ANDROID_NDK=/home/xxx/work/ldw/tools/android-ndk-r13b
export PATH=$PATH:$ANDROID_NDK
export ANDROID_SDK=/home/xxx/work/ldw/tools/android-sdk-linux
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
添加完保存退出vim(:wq)
c、重启服务器或者source /etc/profile 使文件修改生效。
四、拉取ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8
五、配置编译脚本
cd到ijkplayer-android\config目录下,然后
rm module.sh
ln -s module-default.sh module.sh
source module.sh
里面默认提供了三种编译脚本,需要支持更多格式则直接拷贝使用module-default.sh。
六、初始化openssl,支持https用
cd到ijkplayer-android目录,然后
./init-android-openssl.sh
七、清除
cd到android/contrib目录,然后
./compile-openssl.sh clean
./compile-ffmpeg.sh clean
八、编译openssl
./compile-openssl.sh all
九、编译ffmpeg
./compile-ffmpeg.sh all
十、编译ijkplayer
./compile-ijk.sh all
十一、生成Android和iOS工程
编译后生成一个demo工程,Android工程位置在ijkplayer-android\android\ijkplayer,里面包含各个架构的so,其中ijkplayer-java是java文件。
建议可以建立一个ijkplayer的module,把ijkplayer-java代码和各个平台so拷进去,需要使用ijkplayer则直接依赖ijkplayer该module即可。
推荐阅读
-
JSP编译指令page、include详解
-
CMake根据平台移植检查设置文件编译选项
-
解决Python源码编译时提示:ModuleNotFoundError: No module named ‘distutils.command‘
-
centos编译安装mysql 5.6及安装多个mysql实例详解
-
sublime text 3 快捷键大全以及配置编译环境
-
详解webpack编译速度提升之DllPlugin
-
c语言编译系统是什么软件(c语言手机编程软件推荐)
-
实例讲解JavaScript预编译流程
-
采用Psyco实现python执行速度提高到与编译语言一样的水平
-
vue: WebStorm设置快速编译运行的方法