Android(安卓)编译 ijkplayer
16lz
2021-01-24
Bilibili
引言:主要是因为刚开始接触的时候整个人都是懵逼呵呵的。
时间:2018年03月27日
作者:JustDo23
官方:https://github.com/Bilibili/ijkplayer
基于:Mac OS
01. 简介
-
Android/iOS
video player based onFFmpeg
, withMediaCodec
,VideoToolbox
support. -
Video player
based on ffplay -
remove rarely used
ffmpeg components toreduce binary size
config/module-lite.sh - 顶层封装使用与平台原生方法基本相同。
02. 准备
-
在编译之前需要安装必要的
工具软件
# install homebrew$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"# install git$ brew install git# install yasm$ brew install yasm
-
需要配置相关的
环境变量
# add these lines to your ~/.bash_profile or ~/.profile# export ANDROID_SDK=
# export ANDROID_NDK= # 或者直接执行$ export ANDROID_NDK=/Users/JustDo23/app/android/android-ndk-r10e$ export ANDROID_SDK=/Users/JustDo23/app/android/android-sdk-macosx
03. 编译
-
逐行执行命令
# 克隆项目到指定文件夹$ git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android# 进入文件夹$ cd ijkplayer-android# 创建并切换分支$ git checkout -B latest k0.8.8# 执行初始化脚本$ ./init-android.sh# 进入目录$ cd android/contrib$ ./compile-ffmpeg.sh clean$ ./compile-ffmpeg.sh all$ cd ..$ ./compile-ijk.sh all
编译完成。编译是一个漫长的过程。
04. 导入
- 编译成功之后会生成完整的 Android 项目
- 目录:
ijkplayer-android/android/ijkplayer/
- 使用 Android Studio 在指定目录打开项目
- 在各个依赖下可以找到相应平台的
.so
文件
05. 配置
在 config
目录下有三个不同
等级的配置和一个配置指向
文件。
-
If you prefer
more
codec/format$ cd config$ rm module.sh$ ln -s module-default.sh module.sh
-
If you prefer
less
codec/format forsmaller binary size
(include hevc function)$ cd config$ rm module.sh$ ln -s module-lite-hevc.sh module.sh
-
If you prefer
less
codec/format forsmaller binary size
(by default)$ cd config$ rm module.sh$ ln -s module-lite.sh module.sh
因此可以根据需求选择不同的配置。
06. 支持 amr 格式
默认配置并不支持播放 amr
格式音频文件。在 module-lite.sh
文件中添加如下配置
# ./configure --list-decodersexport COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=amrnb"export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=amrwb"# ./configure --list-muxersexport COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=amr"# ./configure --list-demuxersexport COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=amr"
07. 支持 Https
默认配置并不支持 https
网络地址。需要在编译时 openSSL
$ ./init-android-openssl.sh$ ./init-android.sh$ cd android/contrib$ ./compile-openssl.sh clean$ ./compile-ffmpeg.sh clean$ ./compile-openssl.sh all$ ./compile-ffmpeg.sh all$ cd ..$ ./compile-ijk.sh all
更多相关文章
- Android(安卓)Studio 混淆打包及常见第三方依赖的混淆配置
- Android解压及打包system.img
- 关于getSharedPreferences 使用注意条件
- 获取android配置文件的版本信息
- 手动安装配置Android(安卓)Studio
- 使用Jenkins做Java、Android项目开发持续集成
- 2018.10月Android优质开源项目
- 针对Android(安卓)Studio安装完之后activity_main.xml前几行报错
- 第一章:初入Android大门(教程篇)(下)