Ubuntu 系统上构建FFmpeg for android(主要用fanplayer代码进行构建)

一. 前言

  1. 首先感谢 fanplayer作者ck大神提供的优质项目
  2. 由于在fanplayer不够详细,在构建的途中各种踩坑,至此终于完美的构建后了项目,所以将此过程记录下来,供大家学习参考,也给自己留下笔记,以免后续踩坑
  3. 为了避免不必要的麻烦,所以我使用的是Ubuntu 20.04系统上进行编译(作为开发者不懂点Linux也说不过去吧~~)

二. 环境准备

  1. NDK: android-ndk-r13-linux-x86_64.zip

说明:

  1. 之前搜使用的是android-ndk-r21b-linux-x86_64.zip后来编译各种的报错,之后通过ck大神了解到他用的是r13b
  2. 我是Ubuntu系统所以采用的是Linux版本哦
  1. JDK,SDK,git 等其他的一些工具我就不一一说明了, 有需要请参考我另一篇博文
    编译ijkplayer最详尽的编译过程教程以及编译过程中的各种坑
  2. 下载代码: https://github.com/rockcarry/fanplayer.git

说明:

  1. 由于政策问题, 克隆 github的代码超级的慢,如果直接克隆的话, 估计5个小时都处理不了,还有可能直接克隆失败!
    对此有2个办法:
    a. 参考我另一篇博文,解决git clone慢的原因
    超级牛逼的骚操作搞定GitHub龟速下载,让你从此告别抓狂.github提速骚操作
    b. 使用我的gitee仓库进行下载代码,: https://gitee.com/dreamhai-github/rockcarry-ffmpeg

    如果你使用了我的这2中方法进行克隆代码的话,需要修改对应的脚本文件…不过也非常简单,

三. 准备编译

1. 配置环境变量

我的软件都放在/usr/local/java

# 编辑配置文件/etc/profile
vim /etc/profile

将下面的代码添加到文件末尾


# java
export JAVA_HOME=/usr/local/java/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# set SDK enviroment
export ANDROID_SDK=/usr/local/java/android-sdk-linux
# set ndk environment
# 编译fanplayer 的时候需要用r13b
export ANDROID_NDK=/usr/local/java/android-ndk-r13b
export PATH=$ANDROID_NDK:$PATH
# 这个NDK_HOME不加入PATH也行,因为脚本文件中直接读取了NDK_HOME
export NDK_HOME=/usr/local/java/android-ndk-r13b

下面是全部的配置文件
在这里插入图片描述
由于vim /etc/profile必须是在root用户才能修改,所以如果在执行的时候修改了用户(比如我,执行的时候使用dreamhia进行执行的)需要重新执行source /etc/profile生效配置文件 .

# 立即生效配置文件
source /etc/profile

2. 准备好工作目录(如仓库fanplayer)

在这里插入图片描述

2.1. 由于本次主要是编译Android,所以我们进入到/fanplayer/player-android/ffmpeg目录

请新核对以下一些情况后在执行脚本.

  1. 进入此文件夹后,看到两个执行脚本. 可能有些朋友的这两个.sh脚本没有可执行文件.所以我们通过以下命令申请可执行文件
# 通过此命令,将此目录下的2个.sh文件,申请可执行权限
chmod -R 777 build*.sh
  1. build_ffmpeg_for_android_arm.sh可执行脚本文件中,需要git clone ffmpeg,而且是github上的路径, 如果直接git clone 下载速度超级慢 . 所以建议修改此脚本(如何处理下载github慢的问题,请查看 第二点,环境准备里面的. 或者直接使用我的仓库:https://gitee.com/dreamhai-github/rockcarry-ffmpeg.git)
    使用了此仓库后需要对脚本进行修改 .
    请查看修改后的脚本
    在这里插入图片描述
  2. 针对不同的 NDK 索要执行的toolchains路径是不同的(在此处踩坑,踩了很久.不管的排雷)
    所以,需要查看一下自己的toolchains,请直接查看我的配置文件
    在这里插入图片描述

真正核对后以上几个步骤之后就可以执行脚本了./build_ffmpeg_for_android_arm.sh,之后就耐心的等着大功告成.
在这里插入图片描述

四. 总结:

  1. 看似很简单,一个脚本的问题,但是这个问题,针对是折腾了好几天. 很多的小坑,在做着的wiki中没有明确说明,也没有温馨提示.所以踩坑了好几天
  2. 做技术,每一个细节都值得认真对待. 每一个小细节都不能忽视.
  3. 遇到问题更多的还是要自己来摸索,查看源码,然后在问问大神(大神一般都很忙,而且每个环境都不一样,也没有那么多时间来指点.主要还得看自己的拍错能力!!)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值