侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 274 篇文章
  • 累计创建 55 个标签
  • 累计收到 74 条评论

Ubuntu 使用git 拉取ijkPlayer sdk源码 并进行编译

Z同学
2022-02-22 / 0 评论 / 1 点赞 / 203 阅读 / 2,003 字
温馨提示:
本文最后更新于 2022-02-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

本篇主要介绍,如何从零开始配置git,并拉取ijkPlayer SDK 源码。如果出现了问题,可以参考下我最后的问题汇总里面汇总了我碰见的问题以及解决方法。

1.git 拉取ijkplayer 源码

前期的Git的安装过程本篇就不进行介绍了。安装方法很简单 : sudo apt-get install git 就可以进行安装操作了。

我们不用专门配置,就可以直接通过git拉取。

root@LAPTOP-141OG4MA:/home/zinyan# git clone https://github.com/Bilibili/ijkplayer.git

capture_20220222210425020

拉取成功后我们就有一个ijkplayer 的文件夹了。里面就是相关的代码和脚本。效果图如下。

image-20220222210538381

我们拉取到的代码,需要切换到稳定的分支中。在当前ijkplayer目录下,执行 git checkout -B latest k0.8.8

image-20220222211144738

我们可以通过git 查询是否切换成功

image-20220222211411510

可以看到,我们当前gitbranch 分支为我们刚才定义的latest 分支名。我们如果不确定自己的代码是否下载正确,可以查询源码中的version.sh文件中的开头。也标明了当前代码的版本。

2.执行ijkPlayer 相关脚本

我们切换git分支之后,需要安装ijkplayer 所需要的依赖库了。也就是FFmpeg 等。

第一个,执行:./init-android.sh 进行下载ijkplayer需要的FFmpeg库,效果图如下:

image-20220222212705508

然后切换目录:cd android/contrib 在该目录下执行 :

root@LAPTOP-141OG4MA:/home/zinyan/ijkplayer/android/contrib# ./conplie-ffmpeg.sh clean 

image-20220223094248488

然后我们再执行全部ffmpeg库的编译:

root@LAPTOP-141OG4MA:/home/zinyan/ijkplayer/android/contrib# ./compile-ffmpeg.sh all

在这一步的时候,如果我们ndk没有配置好。可能会出现找不到NDK的错误。(可以参考下面的问题汇总中的我的解决方法)

全部更新完毕后,我们最后就可以执行so库编译了。

关于compile-ffmpeg.sh 编译过程中,出现的问题有点多。我专门有一篇进行介绍我碰见的问题以及解决方法:

ijkPlayer 编译compile-ffmpeg.sh 文件时的问题汇总 (zinyan.com)

如果正确编译结束会是这样的输出:

image-20220223113716690

3. 编译so库

我们初始化完毕后,就是依靠compile-ijk.sh 脚本执行编译了。

该脚本在android 目录下。

image-20220222214602180

然后执行:./compile-ijk.sh all

image-20220223113853526

就会开始编译ijkPlayer 的各种库了。编译完成后的效果如下:

image-20220223114301633

我们编译后的so文件。全部在每个项目的libs文件目录下。

image-20220223114749765

这里面就是我们编译的成果了。

后记-问题汇总

记录相关过程中可能出现的问题,进行汇总解释。

问题1:

fatal: unable to access 'https://github.com/Bilibili/ijkplayer.git/': GnuTLS recv error (-110): The TLS connection was non-properly terminated.

解决方法:

apt-get install gnutls-bin
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000

问题2:

fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git/': GnuTLS recv error (-54): Error in the pull function.

解决方法:

就单纯的pull失败。网络不稳定造成我们访问github链接超时了。重试几下就可以了,如果还不行,就修改文件中的地址,改为将https改为git试试。

问题3:

如果出现Permission denied 权限不足的错误。

解决方法:

通过 sudo su 将当前用户切换到root超级管理员权限。

image-20220223093517971

问题4:

从root模式退回到用户模式,在ubuntu中如何切换?

方法很简单:

sudo su  //进入root模式
exit  //从root模式退出

参考资料:

Git Clone错误解决:GnuTLS recv error (-110): The TLS connection was non-properly terminated._蛙仔的博客-CSDN博客

ijkPlayer SDK 源码下载说明与编译 (zinyan.com)

bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support. (github.com)

1

评论区