ijkplayer编译

ijkplayer

安装homebrew、git、yasm

# install homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm

根据自己需要,进行如下设置

If you prefer more codec/format

cd config
rm module.sh
ln -s module-default.sh module.sh
cd android/contrib
# cd ios
sh compile-ffmpeg.sh clean

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
cd android/contrib
# cd ios
sh compile-ffmpeg.sh clean

If you prefer less codec/format for smaller binary size (by default)

cd config
rm module.sh
ln -s module-lite.sh module.sh
cd android/contrib
# cd ios
sh compile-ffmpeg.sh clean

编译

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.4

./init-android.sh

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

执行到:

./compile-ffmpeg.sh all

报错:
ANDROID_NDK=
You must define ANDROID_NDK before starting.
They must point to your NDK directories.

解决办法:

1. open .bash_profile
2. 添加:export ANDROID_NDK=你的NDK路径
3. 保存文件
4. source .bash_profile

然后重新执行:

./compile-ffmpeg.sh all

继续报错:

build on Darwin x86_64
ANDROID_NDK=/Users/xxx/Library/Android/sdk/ndk-bundle
IJK_NDK_REL=16.0.4442984
You need the NDKr10e or later

原因是我们的NDK版本太高,还不支持。

解决办法:
1.下载低版本ndk,NDK下载
2.下载版本号14的android-ndk-r14b-darwin-x86_64.zip
3.重新设置ANDROID_NDK为新下载的NDK路径

然后编译成功,我们就可以使用编译好的android目录下的ijkplayer了。

IjkVideoPlayer的简单实现源码

### 关于 ijkplayer 完整编译教程 #### 下载源码 为了获取 `ijkplayer` 源码,需执行如下命令来克隆仓库至本地环境。对于 Android 平台而言: ```bash git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android ``` 此操作会创建名为 `ijkplayer-android` 的文件夹并从中可以找到项目所需资源[^1]。 #### 准备工作 进入已下载的源代码根目录之后,需要切换到特定分支以确保获得稳定版本。例如,在桌面路径下可输入以下命令完成这一动作: ```bash cd ~/Desktop/ijkplayer/ git checkout -B latest k0.8.8 ``` 这里假设使用的标签为 `k0.8.8`,实际应用时应根据 GitHub 上最新的发布信息调整相应参数[^4]。 #### 配置编码解码器支持 接下来要做的就是设置想要启用的各种音频视频编解码格式的支持选项。这一步骤通常涉及到修改配置脚本中的某些变量定义或是通过命令行传递额外参数给构建工具链。具体细节取决于所选平台以及个人需求偏好[^3]。 #### 编译依赖库 在正式开始编译之前还需要先处理一些外部依赖项,比如 FFmpeg、libyuv 和 soundtouch 等第三方组件。这些库是实现多媒体功能不可或缺的部分,因此务必按照官方文档指导正确安装它们。特别是针对 FFmpeg 的编译环节可能较为复杂,建议仔细阅读相关指南。 #### 执行编译过程 当一切准备就绪后就可以着手进行最终阶段的工作了—启动整个项目的编译流程。依据目标设备架构的不同(如 armeabi-v7a),生成相应的二进制文件将会被放置在一个指定位置,例如 `/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a` 文件夹里[^2]。 #### 结果验证 最后不要忘记检查输出产物是否存在并且能够正常加载运行。如果遇到任何问题,则应回溯上述各个步骤逐一排查潜在错误直至成功解决问题为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值