ijkplayer环境搭建

最近直播比较火,作为曾经的多媒体人,按捺不住想看看现在的直播客户端是如何解码的,解压众多直播app后,看到了熟悉的FFmpeg身影(太熟悉了,之前一直搞FFmpeg,解决各种文件sync问题啊),以及一个叫ijkffmpeg的库,这个是什么玩意儿,竟然没听说过啊(之前是做Android media framework的,也是一年多没接触多媒体了,所以out了啊),这怎么对得起我这个多媒体人的身份,遂晚上花了点时间研究了一下。


最终编译成功了apk在Android 5.1上运行起来了,中间遇到了不少错误,以前只是网上看别人分享的内容,这次自己也分享一下吧,要懂的回报啊,也顺便记录一下(后面编译新版本竟然没有遇到什么错误。。。)。


环境(条件):

Ubuntu 15.10

ndk:android-ndk-r11b(对应的toolchain版本是4.9,用来交叉编译的东东了)

能访问github(如果访问不了翻墙试试,可以花钱购买翻墙软件,我用过多态的vpn,不过由于公司默认可以翻墙,用的不多,偶尔在4G状态下用,收收Gmail也是ok的)


接下来开始编译了:

github搜索ijkplayer,选择第一个:

https://github.com/Bilibili/ijkplayer


参考README.md的Build Android部分进行编译(按照这个guide一步步来):

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.5.1

./init-android.sh

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

# Android Studio:
#     Open an existing Android Studio project
#     Select android/ijkplayer/ and import
#
#     define ext block in your root build.gradle
#     ext {
#       compileSdkVersion = 23       // depending on your sdk version
#       buildToolsVersion = "23.0.0" // depending on your build tools version
#
#       targetSdkVersion = 23        // depending on your sdk version
#     }
#
# Eclipse: (obselete)
#     File -> New -> Project -> Android Project from Existing Code
#     Select android/ and import all project
#     Import appcompat-v7
#     Import preference-v7
#
# Gradle
#     cd ijkplayer
#     gradle
步骤分解:
此步是获取代码,并checkout到tag k0.5.1
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.5.1

字面理解吧,初始化
./init-android.sh

编译FFmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
注:此步弹出错误:you must define ANDROID_NDK,ANDROID_SDK
那就指定吧:
export ANDROID_SDK=...
export ANDROID_NDK=...
(如果都不知道SDK和NDK从哪里下载,那就google一下吧。。。)
继续执行./compile-ffmpeg.sh all命令,等待几分钟后,编译成功


编译ijkplayer
cd ..
./compile-ijk.sh all
最终编译出了各个处理器版本下的ijkffmpeg.so和ijkplayer.so


新建Android工程,import  android/ijkplayer

编译成功安装到手机上,点击Sample随便点击一个播放,播放成功。。。。竟然播放成功了。。。

那我写这篇文章的目的也没有了。。。本来我下载的是https://github.com/bbcallen/ijkplayer的代码,

里面一堆错误,写这篇文章的时候看到里面的README.md指向bilibili的git,就按照bilibili的git来测试了,

没想到就配置SDK和NDK就成功了,汗啊,看来找对方法是很有必要的,能节省不少时间。

Anyway,能成功就ok。


打开ijkplayer发现功能很丰富:

显示audio cache、video cache信息

显示所有track信息

可以切换音轨、

动态开关视频、音频

选择player等

这个功能比我当时做机顶盒的player要丰富多了,赞啊

后面再花时间深入研究研究这个player


多媒体就跟我的初恋一样,虽然现在不在一起了,但是还是会经常想起那美好的时光O(∩_∩)O~

猜你喜欢

转载自blog.csdn.net/csds319/article/details/51778799