ijkplayer Ubuntu编译,支持HTTPS,升级ffmpeg4.0
前言
ijkplayer 是 bilibili 开源的一款优秀的播放器, 基于 FFmpeg, 支持 iOS/Android, 点播/直播, 以及多种编码. 官方并不直接提供 framework 框架包, 这样大家可以根据需要选择配置, 自己编译并打包。 本文为Android版本的编译打包过程,环境为Ubuntu16+Android Studio。
一、准备工作
1.安装make,git, yasm
sudo apt-get install make
sudo apt-get install git
sudo apt-get install yasm
配置ANDROID_NDK环境变量
ndk版本:android-ndk-r13b-linux-x86_64.zip 编辑 .bashrc 文件:
export ANDROID_NDK=/home/vsl/android/ndk/android-ndk-r13b
二、获取ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8
三、配置ffmpeg相关文件
1、配置解码器
- module-default.sh 更多的编解码器/格式
- module-lite-hevc.sh 较少的编解码器/格式(包括hevc)
- module-lite.sh 较少的编解码器/格式(默认情况)
cd config
rm module.sh
ln -s module-lite-hevc.sh module.sh
cd ..
cd android
sh compile-ffmpeg.sh clean
2、配置ffmpeg内核版本
编辑init-android.sh文件
cd ..
vi init-android.sh
修改参数“IJK_FFMPEG_COMMIT”,默认是使用 ff3.4–ijk0.8.7–20180103–001 版本。可以到bilibili fork的ffmpeg的库查看支持的版本 https://github.com/bilibili/FFmpeg/releases。 修改最新版本为:IJK_FFMPEG_COMMIT=ff4.0–ijk0.8.8–20210426–001,如下:
IJK_FFMPEG_COMMIT=ff4.0--ijk0.8.8--20210426--001
3、执行脚本
./init-android.sh
四、配置支持HTTPS
如果不需要HTTPS可以跳过这一步。
1、编辑init-android-openssl.sh文件
vi init-android-openssl.sh
2、版本配置
IJK_OPENSSL_COMMIT=OpenSSL_1_0_2n
同样到 https://github.com/bilibili/openssl/releases 选择需要替换到版本,这里选择最新的 OpenSSL_1_0_2u 版本。配置后如下:
IJK_OPENSSL_COMMIT=OpenSSL_1_0_2u
3、执行脚本
./init-android-openssl.sh
4、增加openssl支持
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh
五、编译
如报错,增加配置:
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"' >> ../config/module.sh
进入编译脚本目录:
cd android/contrib
1、编译openssl
./compile-openssl.sh clean
./compile-openssl.sh all
2、编译ffmepg
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
3、编译ijkplayer
./compile-ijk.sh all
目录结构

|