IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 13_android编译ijkplayer -> 正文阅读

[移动开发]13_android编译ijkplayer

13_android编译ijkplayer

一.编译环境

  • macOS Big Sur 11.4
  • NDK r10e
  • HomeBrew
  • git

二.编译前准备

  • 配置ANDROID_SDK和ANDROID_NDK环境变量

在这里插入图片描述

  • 安装git,make, yasm
brew install git
brew install make
brew install yasm

三.使用git获取ijkplayer最新源码

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

四.项目结构

|ijkplayer-android
|----android //Ijkplayer Android 项?源码
|----config //ffmpeg的配置脚本
|----|----module.sh //ffmpeg 当前配置脚本,可?以下三个模板替换当前脚本
|----|----module-default.sh //默认配置
|----|----module-lite.sh //最?化配置
|----|----module-lite-hevc.sh //基于最?化配置添加hevc功能配置
|----doc //介绍说明
|----extra //三?依赖库保存的?件夹
|----|----init-extra.sh // 引?本地存在的库
|----ijkmedia //IjkPlayer Native部分源码
|----ijkprof
|----ios //IjkPlayer IOS 部分源码
|----tools //git操作项?的?具脚本
|----|----pull-repo-base.sh
|----|----pull-repo-ref.sh
|----|----setup-as-commiter.sh
|----|----sync-mirrors.sh
|----init-android.sh //Android初始化脚本
|----init-android-exo.sh //被compile-ijk.sh调?
|----init-android-j4a.sh //被compile-ijk.sh调?
|----init-android-libsoxr.sh //被compile-ijk.sh调?
|----init-android-libyuv.sh //被init脚本调?
|----init-android-openssl.sh //添加openssl需要在编译ffmpeg之前执?openssl的init和compile
|----init-android-prof.sh //被compile-ijk.sh调?
|----init-android-soundtouch.sh //被compile-ijk.sh调?
|----init-config.sh //被init脚本调?
|----init-ios.sh //ios初始化脚本
|----init-ios-openssl.sh //添加openssl需要在编译ffmpeg之前执?openssl的init和compile
|----version.sh //查看版本的脚本

五.编译模式配置

  • module-default.sh:全量编译,支持的较多的编解码格式,生成的.so动态库文件较大
  • module-lite.sh:支持的较少的编解码格式,生成的.so动态库文件较小
  • module-lite-hevc.sh:支持的较少的编解码格式,添加hevc功能配置,生成的.so动态库文件较小

我们选择module-default.sh进行编译

cd config
rm module.sh
ln -s module-default.sh module.sh

注意:选用module-default.sh进行编译时,需要在module-default.sh文件中添加如下配置,否则编译过程中报错

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"

六.编译openssl

为什么要编译openssl?因为要让我们的播放器能够播放https的视频啊😄,所以我们需要手动编译openssl,以支持https,并且需要在编译ffmpeg之前执?,回到ijkplayer-android根目录,执行初始化init-android-openssl脚本文件,初始化openssl,此处顺利与否会和你的网络有直接关系,建议使用翻墙工具😄

./init-android-openssl.sh

开始编译

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

在这里插入图片描述

可以看到当我们编译openssl成功后,系统已经给出明确的提示,可以开始编译ffmpeg了,ffmpeg编译完成后,就可以编译ijkplayer相关源码了

七.编译ffmpeg

回到ijkplayer-android根目录,执行初始化init-android.sh脚本文件,初始化ffmpeg,此处顺利与否会和你的网络有直接关系,建议使用翻墙工具😄

./init-android.sh

开始编译ffmpeg

./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

八.编译Ijkplayer

cd ../
./compile-ijk.sh clean
./compile-ijk.sh all

编译成功后会可以看到ijkplayer-android/android/ijkplayer的android项目,可以直接通过android-studio打开该项目,修改配置文件运行,也可以从中把生成的.so文件导入到自己的项目去使用

在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:29:58  更:2022-05-05 11:31:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 23:34:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码