zoukankan      html  css  js  c++  java
  • Ubuntu下编译Bilibili/ijkplayer

    在做Android客户端视频播放器的过程中熟悉ijkplayer。他在视频支持协议上要比Android原生的mediaplayer做的要好。因此,自己也基于Bilibili/ijkplayer的重新编译了一下。

    1.准备工作

    在Vmware下安装ubuntu这里就不累赘介绍了。

    一、查看操作系统是32位的还是64位的

    在控制台输入:sudo uname --m

    回车后:

    如果显示i686,则表示安装了32位操作系统

    如果显示 x86_64,则表示安装了64位操作系统


    图一:ubuntu系统位数

    二、NDK下载安装

    从上面看到我的系统是32位的

    1.下载ndk

    https://developer.android.google.cn/ndk/downloads/index.html  目前android-ndk-r14b-linux-x86_64.zip没有32位的。使用64位安装会报错。

    android-ndk-r10e-linux-x86.bin 版本 https://dl.google.com/android/ndk/android-ndk-r10e-linux-x86.bin

    在ubuntu个人目录下使用

    wget -c https://dl.google.com/android/ndk/android-ndk-r10e-linux-x86.bin

    进行下载


    图2:下载和安装的目录

    执行 chmod a+x android-ndk-r10e-linux-x86.bin

    #增加执行权限

    执行

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

    #执行bin文件

    安装成功后的目录结构为

    /home/menggang/Android/ndk/android-ndk-r10e

    2.配置PATH路径:

    执行  sudo gedit /etc/profile,在文件末尾加入如下内容:

    export ANDROID_NDK=/home/menggang/Android/ndk/android-ndk-r10e

    export PATH=$PATH:ANDROID_NDK

    export ANDROID_SDK=/home/menggang/Android/sdk/android-sdk-linux

    export PATH=${PATH}:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools


    图3:环境变量配置

    【保存并退出】

    执行  source/etc/profile 

    #使配置生效

    至此 android NDK 安装配置完毕。

    3.验证是否安装成功

    执行   echo $ANDROID_NDK

    #验证配置目录是否正确

    执行  $ANDROID_NDK/ndk-build -v

    #验证是否安装成功


    图4:验证是否NDK是否配置成功

    在个人的目录的.bashrc最后一行加入source /etc/profile

    原因:每次重新打开命令窗口需要用到NDK时需要先执行source /etc/profile


    图5:配置终端过程

    三、SDK下载安装

    1.下载安装SDK

    我的sdk下载目录/home/menggang/Android/sdk

    在http://tools.android-studio.org/下载最新的sdk到该目录下

    执行 tar -xvzf android-sdk_r24.4.1-linux.tgz

    #进行解压安装


    图6:sdk安装

    2.环境变量配置

    同上,将环境变量写入/etc/profile,通过source /etc/profile使配置生效

    export ANDROID_SDK=/home/menggang/Android/sdk/android-sdk-linux

    export PATH=${PATH}:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools

    3.验证是否安装成功

    执行  adb shell

    执行  adb -version

    #检测是否成功

    4.更新sdk

    sdk 目录下tools/android 文件没有执行权限。

    执行 chmod a+x android添加执行权限。

    ./android

    #即可打开ubuntu android sdk manager

    四、openjak的安装

    http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/

    1. Open terminal from the Dash or by pressing Ctrl+Alt+T. When it opens, run the command below to add PPA:

    sudo add-apt-repository ppa:openjdk-r/ppa

    Type in user password when it asks and hit Enter to continue.

    2. After that, update system package cache and install OpenJDK 8:

    sudo apt-get update

    sudo apt-get install openjdk-8-jdk

    3. If you have more than one Java versions installed on your system. Run below command set the default Java:

    sudo update-alternatives --config java

    Type in a number to select a Java version.

    And set default Java Compiler by running:

    sudo update-alternatives --config javac

    4. Finally check out current Java version by running:

    java -version

    It outputs something like this:

    openjdk version "1.8.0_01-internal"

    OpenJDK Runtime Environment (build 1.8.0_01-internal-b04)

    OpenJDK 64-Bit Server VM (build 25.40-b08, mixed mode)

    五、安装一些软件

    sudo apt-get update

    sudo apt-get install git

    sudo apt-get install yasm

    六、下载ijkplayer-android

    git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android

    七、开始编译

    编译可以参考https://github.com/Bilibili/ijkplayer官网的Build Android 模块。编译时间相对漫长。


    参考文献:

    1.在Ubuntu下编译IjkPlayer-android - 简书

    2.小白鼠初试ijkplayer编译(ubuntu) - 简书

    3.在ubuntu下编译ijkplayer-android - CSDN博客

    4.GitHub - Bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.3, with MediaCodec, VideoToolbox support.

    5.简书链接http://www.jianshu.com/p/a8abe7b1d96b

  • 相关阅读:
    go调查内存泄漏
    c++ 使用模板按类型统计stl多维容器中元素的数量
    phxpaxos遇到反复拉取checkpoint但是反复失败的问题,给其它节点造成压力
    phxpaxos实现状态机CAS操作
    使用phxpaxos开发过程中遇到的坑
    std::condition_variable::wait_until segment
    c++ protected 访问限定
    c++多态
    IO多路复用的水平触发与边缘触发
    Redis 源码分析系列1-main函数相关调用分析
  • 原文地址:https://www.cnblogs.com/CentForever/p/7965920.html
Copyright © 2011-2022 走看看