Ubuntu下编译Bilibili/ijkplayer
在做Android客户端视频播放器的过程中熟悉ijkplayer。他在视频支持协议上要比Android原生的mediaplayer做的要好。因此,自己也基于Bilibili/ijkplayer的重新编译了一下。
1.准备工作
在Vmware下安装ubuntu这里就不累赘介绍了。
一、查看操作系统是32位的还是64位的
在控制台输入:sudo uname --m
回车后:
如果显示i686,则表示安装了32位操作系统
如果显示 x86_64,则表示安装了64位操作系统
二、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
进行下载
执行 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
【保存并退出】
执行 source/etc/profile
#使配置生效
至此 android NDK 安装配置完毕。
3.验证是否安装成功
执行 echo $ANDROID_NDK
#验证配置目录是否正确
执行 $ANDROID_NDK/ndk-build -v
#验证是否安装成功
在个人的目录的.bashrc最后一行加入source /etc/profile
原因:每次重新打开命令窗口需要用到NDK时需要先执行source /etc/profile
三、SDK下载安装
1.下载安装SDK
我的sdk下载目录/home/menggang/Android/sdk
在http://tools.android-studio.org/下载最新的sdk到该目录下
执行 tar -xvzf android-sdk_r24.4.1-linux.tgz
#进行解压安装
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博客
Ubuntu下编译Bilibili/ijkplayer的更多相关文章
- 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer
一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...
- ubuntu下编译caffe
Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包,以及自动解决依赖项的) ca ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- 在Ubuntu下编译wpa_supplicant
最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是 ...
- 在Ubuntu下编译Assimp库
在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...
- ubuntu下编译java程序
ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class Hel ...
- Ubuntu下编译SHTOOLS
SHTOOLS是使用Fortran语言写的一个专门用于处理球谐函数的一个开源库,更多的介绍请猛戳这里,关于这个库的安装和使用,都在官网上有详细的说明,虽然很详细,但是编译的时候还是比较费劲,下面将我在 ...
- 在Ubuntu下编译hadoop2.5.x
在Ubuntu下编译hadoop2.5.x 参考博客:http://www.aboutyun.com/thread-8130-1-1.html 1 下载hadoop源码: (1) http://www ...
- Ubuntu下编译Poco库
本文主要记录下Ubuntu下编译Poco C++库的配置项以备后用.系统版本:Ubuntu 16.04,1 Poco 版本:1.9.0基本的步骤如下: 1.从官网下载最新的Poco源码,地址是:htt ...
随机推荐
- 解析 .Net Core 注入 (2) 创建容器
在上一节的学习中,我们已经知道了通过 IServiceCollection 拓展方法创建 IServiceProvider 默认的是一个类型为 ServiceProvider 对象,并且实际提供创建对 ...
- 【NOIP2016提高组】 Day2 T1 组合数问题
题目传送门:https://www.luogu.org/problemnew/show/P2822 ↓题目大意↓ 数据的极限范围:n,m≤2000,k≤21,数据组数≤ ...
- JS难点--面向对象(继承)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #a5b2b9 } 继承 让一个对象拥有另一个对象的属性或者 ...
- LeetCode 624. Maximum Distance in Arrays (在数组中的最大距离)$
Given m arrays, and each array is sorted in ascending order. Now you can pick up two integers from t ...
- 在centos6编译安装http-2.4
在centos6 编译安装httpd-2.4 安装httpd-2.4 Ü 依赖于apr-1.4+, apr-util-1.4+, [apr-iconv] Ü apr: : apache portabl ...
- js 获取多少天前
getBeforeDate: function(day, str) { var now = new Date().getTime(); //获取毫秒数 var before = new Date(no ...
- jQuery源码的一个坑
纯吐槽 大半夜也真是够了,想学着jQ造个小轮子巩固下js,结果一开始就卡住了. 虽然之前也看过源码,但是主要是研究方法实现什么的,对于框架主函数和入口结构不怎么熟悉,于是想着一步一步调试看看. $(' ...
- Lua的函数调用和协程中,栈的变化情况
Lua的函数调用和协程中,栈的变化情况 1. lua_call / lua_pcall 对于这两个函数,对栈底是没有影响的--调用的时候,参数会被从栈中移除,当函数返 回的时候,其返回值会从函数处 ...
- CentOs6.8 hadoop集群搭建过程中的问题
1.Error: Java heap space 网上有很多说是java虚拟机内存不够的,我也试着修改内存大小,但是没起作用,后来发现是文件在传输过程中失真.文件在上传到HDFS后变成乱码,重新上传文 ...
- position:sticky 定位 position:fixed
它的表现类似position:relative和position:fixed的合体,当目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像 ...