记一次ijkplayer的编译过程

简介:

从视频直播到播放器,现在很多的产品都集成了视频播放的功能,而目前市面上有比较主流的有第三方框架有:

不过本文并不是对这三个播放器进行介绍,而是简单的介绍如何在ubuntu和mac环境下编译ijkplayer。 ijkplayer框架的源码地址:
https://github.com/Bilibili/ijkplayer

Mac上编译ijkplayer

安装软件

在Mac上编译ijkplayer之前,需要先安装一些基本的软件,这些软件在其他的开发中也会用到,需要安装的软件有homebrew、git、yasm。

1,安装homebrew

打开Terminal,输入如下的命令:

  ruby -e "$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"

2,安装git和 yasm

安装好homebrew后,再安装git和 yasm,安装的命令如下:

brew install git
brew install yasm

下载NDK并进行环境配置

NDK下载的官方地址为:
https://developer.android.google.cn/ndk/downloads/index.html
当然也可以到下面的地址下载(可以直接使用迅雷等P2P软件下载,建议下载r15版本):
https://blog.csdn.net/gyh198/article/details/75036686

然后,打开Terminal输入并输入如下的命令来打开环境变量,然后添加NDK的相关环境。

open -e .bash_profile

当然,也可以直接使用文本编辑器打开.bash_profile文件。
这里写图片描述
然后添加如下内容:

export PATH=$PATH:你的ndk路径
export ANDROID_NDK=你的ndk路径

这里写图片描述
然后 command+s 保存 ,最后检测是否配置ndk路径成功,在Terminal输入如下命令进行检测。

ndk-build

这里写图片描述

注意:当然,也可以使用Android-sdk里面的NDK,不过Android-sdk是最新版本,该文件所在结构如下:
这里写图片描述
配置完后,我们可以使用如下命令来检测NDK环境是否配置正确。

ndk-build -v

这里写图片描述

下载ijkplayer和编译ijkplayer

将ijkplayer框架源码clone到本地并编译,依次在终端输入如下命令。

git clonehttps://github.com/Bilibili/ijkplayer.git ijkplayer-android

cd ijkplayer-android

然后执行初始化,此时会从网上自动拉代码,主要是ijkplayer的一些基层类库,时间比较长。命令如下:

./init-android.sh

如果视频播放需要支持Https协议,还需要执行如下命令。

./init-android-openssl.sh

注意:若出现如下错误,说明是NDk的环境配置有问题。

Youmust define ANDROID_NDK, ANDROID_SDK before starting.They must point to yourNDK and SDK directories.

然后,编译各个平台的openssl。

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

编译各个平台的ffmpeg,如果需要更多的编解码格式,需要先执行下面的命令。

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

说明:如果使用最新版本上如果执行的是(ln -s module-lite.sh module.sh),会出现如下错误:
这里写图片描述

然后,编译各个cpu架构的ffmpeg。命令如下:

 ./compile-ffmpeg.sh all

然后使用如下的命令编译ijkplayer即可。

cd ..
./compile-ijk.sh all

如果出现如下图所示的错误,请更换ndk的版本。
这里写图片描述

如果正确编译的话,会分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件。

在ubuntu等Linux环境上编译ijkplayer,可以访问下面的地址:
https://blog.csdn.net/g241893312/article/details/79464162

目录
相关文章
|
NoSQL Linux Redis
linux安装redis5.0.5
linux安装redis5.0.5
417 1
|
Ubuntu 编译器
Ubuntu18.4下交叉编译X264和FFMPEG到ARM平台(aarch64-linux-gcc)
Ubuntu18.4下交叉编译X264和FFMPEG到ARM平台(aarch64-linux-gcc)
2533 0
|
机器学习/深度学习
大模型训练loss突刺原因和解决办法
【1月更文挑战第19天】大模型训练loss突刺原因和解决办法
2867 1
大模型训练loss突刺原因和解决办法
|
jenkins 测试技术 应用服务中间件
【专业测试技能】全流程掌握:部署测试环境的策略与实践
本文分享了关于部署测试环境的策略与实践。文章讨论了部署测试环境的全过程,包括服务如MySQL、Redis、Zookeeper等的部署,以及解决服务间的依赖和兼容问题。文中还介绍了使用Jenkins、Docker等工具进行部署的方法,并通过实战案例讲解了如何创建和管理Jenkins Job、配置代理服务器Nginx、进行前后端服务的访问和优化。最后,作者强调了提问的重要性,并鼓励大家通过互联网解决遇到的问题。
862 2
【专业测试技能】全流程掌握:部署测试环境的策略与实践
|
传感器 机器学习/深度学习 监控
【图像融合】差异的高斯:一种简单有效的通用图像融合方法[用于融合红外和可见光图像、多焦点图像、多模态医学图像和多曝光图像](Matlab代码实现)
【图像融合】差异的高斯:一种简单有效的通用图像融合方法[用于融合红外和可见光图像、多焦点图像、多模态医学图像和多曝光图像](Matlab代码实现)
607 0
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
1114 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
人工智能 架构师 项目管理
软件工程师,超过35岁怎么办
软件工程师,超过35岁怎么办
822 71
|
人工智能 自然语言处理 PyTorch
InspireMusic:阿里通义实验室开源的音乐生成模型,支持文本或音频生成多种风格的音乐
阿里通义实验室开源的音乐生成技术,支持通过简单描述快速生成多种风格的高质量音乐作品。
3169 4
|
前端开发 Unix Linux
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
1131 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
VS代码对齐工具使用教程
本文是关于VS代码对齐工具的使用教程,包括工具下载、使用文档、使用实例和对齐结果展示。文章介绍了如何使用该工具进行字符串对齐,提供了快捷键操作和正则表达式对齐方法,并展示了对齐前后的代码对比。
1223 0
VS代码对齐工具使用教程

热门文章

最新文章