ijkplayer编译(Ubuntu + Win双系统)

来源:互联网 发布:gta5ol女角色捏脸数据 编辑:程序博客网 时间:2024/05/20 08:00

前言

由于最近需要学习下ijkplayer,根据网上的教程编译了几次ijkplayer,遇到了一些坑,特记录下来。本文分为以下三个部分,

  • Ubuntu下编译前准备
  • 编译ijkpalyer
  • 移植到Win平台

一、 Ubuntu下编译前准备

我在Ubuntu 14.04和Ubuntu 16.04 (X64)按照相同的方法都完成了编译,最终版本用的是16.04下编译的。

1. 确保你的机器上已经安装了git和yasm,如果没有请在终端执行以下命令:

sudo apt-get updatesudo apt-get install gitsudo apt-get install yasm

2. 配置 JDK + SDK + NDK

  • JDK
    参考教程里有些有这一步,有些并没有,不知道JDK配置是不是必须的,要是在Ubuntu下做开发肯定是需要的,如果只是编译ffmpeg库的话,是不需要的。
    JDK下载地址(http://jdk.android-studio.org/)选择合适的linux版本,后缀为tar.gz。

  • SDK
    SDK我是在android studio中文社区下载的,SDK地址(http://sdk.android-studio.org/),后缀为tgz。

  • NDK
    NDK现在只支持android-ndk-r10e这一个版本,之前和之后的版本我都试过,都不合适,linux下该版本可以在下面地址下载,(http://blog.csdn.net/ultrapro/article/details/46008805),三个平台下的版本都有,后缀是.bin文件。

在浏览器中下载之后,三个文件都位于Downloads文件夹下,我选择把所有的外来库和安装程序都放在/opt文件夹下,首先我建立了/opt/mylib文件夹,并把以上三项都copy到该文件夹下,

为了方便的话,可以将opt文件夹赋予很多的权限,便于之后的操作,

 sudo chmod -R +777 /opt

我就是由于NDK权限太低,开始总是编译不成功,修改之后就好了。当然也可以针对单个文件夹修改权限,-R参数就是指递归到文件夹下所有的文件。
控制台进入到Downloads文件夹下,

cd ~/Downloads

运行下边的命令完成从~/Downloads到/opt/mylib的复制,其余两项也是一样,

 cp jdk-8u91-linux-x64.tar.gz /opt/mylib/

对于SDK 和 JDK,可以直接解压到当前文件夹就好了,

tar zxvf jdk-8u91-linux-x64.tar.gztar zxvf android-sdk_r24.4.1-linux.tgz

对于NDK,按照下面方式安装,
首先要赋予文件可执行属性(其实我都是图省事直接用参数 +777,不知道会不会很不安全)。

sudo chmod +777 android-ndk-r10e-linux-x86_64.bin

然后按照下边命令运行,

./android-ndk-r10e-linux-x86_64.bin

安装完成之后,mylib文件下的目录结构如下,压缩文件我都还没有删除。



接下来,就需要配置ANDROID_SDK=xxxANDROID_NDK=xxx路径了,我是直接修改etc/profile文件,貌似还有好几种方式,各有区别,感兴趣的话可以参考引用3 的内容。

首先打开profile文件,

sudo gedit /etc/profile

在文件末尾添加如下内容,

export JAVA_HOME=/opt/mylib/jdk1.8.0_91  export JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  export PATH=${JAVA_HOME}/bin:$PATHexport ANDROID_NDK="/opt/mylib/android-ndk-r10e/"export ANDROID_SDK="/opt/mylib/android-sdk-linux/"export PATH=$PATH:$ANDROID_NDK

保存之后,

source /etc/profile

更新一下,此处完成了重启下电脑,下边就可以进行编译了。如果,前边没有任何错误的话,下边将是非常顺利的!

二、编译ijkpalyer

此处可以完全参考 引用1 中的内容,稍后我会把自己的部分补充进来。

三、移植到Win平台

其实在ubuntu下只是对ffmpeg进行了编译,编译出来的文件直接可以在win下使用,参考 引用4 中的内容,成功在win下运行起来。

  1. 首先,我们要直接在windows下,下载整个项目,https://github.com/Bilibili/ijkplayer。
  2. 然后,找到下图对应的目录,



  3. 我用的是三星 note2,用的是armv7a这个指令集。打开相应的文件夹如下。



    将上图中的两个文件夹复制到相应的位置,我用的虚拟机,装了vm tools之后可以直接复制。

  4. 然后,更新下android.mk文件,貌似由于linux和win下的文件结束符不一样子,不能直接复制,可以打开该文件,直接将里边的内容复制到win下相应的文件中。



  5. 大工告成,直接用android studio打开玩耍吧!

引用

1.最可靠的Ubuntu14.04平台下编译ijkplayer教程
2.Android NDK r10e下载地址
3.Linux中profile、bashrc、bash_profile之间的区别和联系
4. 如何在Win下使用编译好的ffmpeg库

本文只是在前人的基础了,做了一些整合,把一些没有明确说明的地方详细表述了,从昨天下午开始弄,到现在也有1整天了,可以开始看代码了。初学android,多多指教。

last modified 2016-8-4
by. HolaGod (ylli.svip@gmail.com)

0 0