前言
本教程不适合新手, 需要有一点Linux基础知识。使用WSL编译(最好是使用xshell连接WSL), 前提条件是要Win10。如果对WSL不了解, 也可以使用Ubuntu编译 教程都是一样的。废话就不多说了
配置环境 ijkplayer vlc 通用
vim /etc/profile // 配置文件
export JAVA_HOME=/home/*/android-jdk/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_BIN=$JAVA_HOME/bin
source /etc/profile // 保存
vim /etc/profile
export ANDROID_NDK=/home/*/android-ndk/android-ndk-r13b
export PATH=$PATH:$ANDROID_NDK
source /etc/profile
- Android SDK (这里要下载这个 我已经帮你们选择好了)
vim /etc/profile
export ANDROID_SDK=/home/*/android-sdk/android-sdk-linux
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
source /etc/profile
- Android ABI (这个编译ijk的话自选 加上之后主要是编译armeabi-v7a的so)
export ANDROID_ABI=armeabi-v7a
- 检测
java -version

ndk-build --version

android list target

以上就完成了ijkplayer 和 vlc的配置了 接下来 就可以编译ijk了, vlc(各位看官可能还需要下载一些东西哦) 等会详细说明。先编译ijk
编译Ijkplayer
- 安装git和yasm,在终端中分别键入:
sudo apt-get install git
sudo apt-get install yasm
- Ijkplayer源码下载
sudo git clone https://github.com/Bilibili/ijkplayer
ijkplayer-android
- 初始化
cd ijkplayer-android
./init-android.sh
ps: 初始化过程似乎主要在下载ffmpeg的代码,代码包比较大,下载速度基本稳定在10kb左右, 有时候很快 看资源 (如果会fq的 就挂个q 这样下载会很快)
WSL:在Win10挂个fq,然后输入
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
<font color=#F63D07> 注意是WSL!! </font> Ubuntu请自行百度
- 配置并编译
cd config
rm module.sh
ln -s module-default.sh module.sh
ps: 选该配置方案,打出来的包将会支持尽量多的音、视频格式,官方提供三种方案,我选用的这种是支持格式最多的一种,当然,支持格式可以自由定制,以后系列会出。
- 完成编译
cd ..
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
cd..
./compile-ijk.sh all
到这一步Ijkplayer的编译过程就已经完成啦~
测试和导入编译好的IJKPlayer
- 测试编译好的IJKPlayer。用Android Studio打开android/ijkplayer,等待Android Studio自动配置好有,运行ijkplayer-example,等程序成功安装到手机上后,就可以测试下了,能够成功播放就说明编译已经完全成功了。
- 将编译好的.so文件导入程序。在项目目录下,创建jniLibs目录,将生成的arm64-v8a、armeabi、armeabi-v7a、x86、x86_64文件复制到jniLibs中,然后,在gradle中添加
compile 'tv.danmaku.ijk.media:ijkplayer-java:0.7.5'
build一下后,编译后的IJKPlayer就已经成功导入到项目中了。 - 使用。IJKPlayer使用方法跟系统自带的MediaPlayer用法基本相同,这里就不多做解释了。
编译VLC
- 安装vlc需要的
sudo apt-get install automake ant autopoint cmake build-essential libtool \
patch pkg-config protobuf-compiler ragel subversion unzip git \
openjdk-8-jre openjdk-8-jdk flex
ps.如果有安装失败的可以尝试一个一个安装
apt-get install gcc
apt-get install g++
apt-get build-dep vlc
apt-get install git
apt-get install wget
apt-get install autoconf
apt-get install libtool
apt-get install subversion
apt-get install cmake
apt-get install ant
- 如果你虚拟机是64位还需要安装32位的库
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install zlib1g:i386 libstdc ++ 6:i386 libc6:i386
- protobuf-3.0.0 编译及安装
- 下载
protobuf-3.0.0 自行下载使用Xftp 6 放到根目录下 - 编译工具准备
sudo apt-get install autoconf automake libtool curl make g++ unzip
- 编译安装
cd ./protobuf-3.0.0/ #解压出的文件夹
./autogen.sh #首先生成configure脚本
./configure #运行configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache. #千万不要漏掉了 .
./configure --prefix=/usr #更改安装到/usr
- 验证是否安装成功
protoc --version
- vlc-andorid源码下载
- 克隆vlc-android源码到本地
git clone https://code.videolan.org/videolan/vlc-android.git
- 进入vlc-android 然后编译 compile.sh
cd vlc-android
./compile.sh
ps. 这里他会自动下载gradle 如果挂了q可以放到这静候佳音 大概一二个小时 编译成功后的APK在
/home/*/vlc-android/vlc-android/build/outputs/apk/VLC-Android-3.0.13-ARMv7.apk
- 获取aar文件
sh compile.sh -l -a armeabi-v7a -r
ps. 这里大概半个小时 比较快了 编译成功后的aar在
/home/*/vlc-android/libvlc/build/outputs/aar/libvlc-3.0.0.aar
好了编译到这里就告一段路了 日后会出相应的优化教程和FFmpeg教程 如果有什么不懂的欢迎到底下留言我会一一解答
参考资料
- Ijkplayer
- VLC
最后献上 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 大图一张

网友评论