当前位置: 首页 > news >正文

ubuntu编译ijkplayer版本k0.8.8(ffmpeg4.0)

编译环境

  • 系统:ubuntu18.04
  • NDK: android-ndk-r10e
  • sdk:android-sdk_r24.4.1-linux

下载

sudo wget http://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip

sudo wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

下载后解压到路径/xxx/xxx

配置环境变量

sudo gedit /etc/profile
#替换成文件的路径
export PATH="/xxx/xxx/android-sdk-linux/platform-tools:$PATH"
export PATH="/xxx/xxx/android-sdk-linux/tools:$PATH"
export ANDROID_NDK="/xxx/xxx/android-ndk-r10e"
export PATH="$ANDROID_NDK:$PATH"
# 加载环境变量
source /etc/profile
//测试ndk是否生效,如果有打印相关版本信息等,即是生效
ndk-build -v//测试sdk是否生效,如果有打印相关版本信息等,即是生效
adb --version

代码拉取和配置修改

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

1、init-android.sh修改 FFmpeg 的版本(改成 4.0 版本):

IJK_FFMPEG_UPSTREAM=https://github.com/Bilibili/FFmpeg.git
IJK_FFMPEG_FORK=https://github.com/Bilibili/FFmpeg.git
#IJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001
IJK_FFMPEG_COMMIT=ff4.0--ijk0.8.8--20210426--001

2、编译类型(完整版)

cd config 
rm module.sh 
ln -s module-default.sh module.sh # 完整版 

编译

1、初始化下载

# 初始化Android环境
./init-android.sh# 下载 openssl 源码
./init-android-openssl.sh

2、编译

# 在项目根目录下执行
cd android/contrib # 编译 openssl
./compile-openssl.sh clean  
./compile-openssl.sh all  # 编译 FFmpeg 
./compile-ffmpeg.sh clean 
./compile-ffmpeg.sh all  # 编译 ijkplayer
cd ..  
./compile-ijk.sh all

遇到的问题

1、Unknown option "--disable-ffserver".

 config/module.sh 文件,注释掉以下两行:

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda"

2、error: undefined reference to 'ff_ac3_parse_header'

config/module.sh 文件,增加如下一行:

# 在 export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-bsfs" 下方添加:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=eac3_core"

3.error:x0000000 这个问题折腾了好久

大多数网上文章建议多是把大B改成小b,很麻烦。后来在issus找到了回复,验证可行。

解决原文 (https://github.com/bilibili/ijkplayer/issues/4093)

在module-default.sh增加:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"

http://www.dtcms.com/a/342179.html

相关文章:

  • Spring Boot整合Amazon SNS实战:邮件订阅通知系统开发
  • 将windows 的路径挂载到Ubuntu上进行直接访问
  • C++---辗转相除法
  • VB.NET发送邮件给OUTLOOK.COM的用户,用OUTLOOK.COM邮箱账号登录给别人发邮件
  • Azure的迁移专业服务是怎么提供的
  • 带有 Angular V14 的 Highcharts
  • Transformer在文本、图像和点云数据中的应用——经典工作梳理
  • 【解决方案系列】大规模三维城市场景Web端展示方案
  • C++STL-stack和queue的使用及底层实现
  • 阿里云搭建flask服务器
  • 2021年ASOC SCI2区TOP,改进遗传算法+自主无人机目标覆盖路径规划,深度解析+性能实测
  • Java 16 新特性及具体应用
  • Redis 奇葩问题
  • Python break/continue
  • 嵌入式C语言和数据结构面试题
  • 2025-08-21 Python进阶3——模块
  • 信创自主可控新标杆:RustFS如何用内存安全架构重构数据主权防线?
  • Binlog Server守护MySQL数据0丢失
  • RabbitMQ:技巧汇总
  • Windows下RabbitMQ完整安装指南
  • 云原生俱乐部-k8s知识点归纳(6)
  • 活到老学到老之vue-vben-admin项目添加简单页面
  • 从YOLOv5到RKNN:零冲突转换YOLOv5模型至RK3588 NPU全指南
  • AI创业公司简介:Pogo
  • 三大图计算框架深度对比
  • 机器学习--聚类算法、集成算法
  • 《前端功能开关SDK全景剖析:从远程配置到数据闭环,重构业务迭代底层逻辑》
  • 【Java集合】List,Map,Set-详细讲解
  • Android基建开发大纲
  • Android - 资源类型 MINE Type