开源播放器ijkplayer的编译

快速入门

ijkplayer是Bilibili发布的轻量级 Android/iOS 开源视频播放器。核心代码主要是用C写的,主要由ffmpeg(解码)+openssl(https)+播放器相关组成。编译可裁剪,支持直播、点播(在线播放)、硬件加速解码、弹幕等,完整版支持格式较多,包括且不限于mp4、avi、asf、dat、f4v、flv、mkv、mov、mpg、rmvb、ts、vob、webm、wmv等视频封装格式。

  • 快速集成
    在Android Studio中加如下依赖即可:
    // 必须:足以适应大多数设备
    implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'

    // 可选:其他架构
    implementation 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'

    // 实验性功能:对ExoPlayer的封装,封装成功IMediaPlayer
    implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'

使用默认的支持的格式相对较少,测试后大概有mp4、flv、f4v和mkv(0.8.8支持),如果要更多格式需要自己下载源码在Ubuntu中编译。

编译ijkplayer

$ sudo apt-get install vim openssh-server git curl wget tar unzip build-essential openjdk-8-jdk yasm python
// 用bash代替dash (不一定需要),弹出窗口选择NO
$ sudo dpkg-reconfigure dash
  • 配置环境变量
    在开始编译之前需要先配置ANDROID_NDK环境变量。
    下载NDK后解压到/opt/Android/目录下
$ sudo unzip android-ndk_r13b-linux-x86_64.zip
$ sudo mv android-ndk-r13b /opt/Android/

添加环境变量到profile

$ sudo vim /etc/profile

在文件末尾添加如下内容

export ANDROID_NDK=/opt/Android/android-ndk-r13b
export PATH=$PATH:$ANDROID_NDK

完成后重启Ubuntu或者在终端中source一下profile

$ source /etc/profile
  • 克隆ijkplayer代码
$ git clone https://github.com/Bilibili/ijkplayer ijkplayer-android
  • 编译配置
    ijkplayer有三种编译配置
    1)支持较多格式(完全编译,几乎所有格式都支持了),文件较大
$ cd config
$ rm module.sh
$ ln -s module-default.sh module.sh

2)支持较少格式,包含hevc

$ cd config
$ rm module.sh
$ ln -s module-lite-hevc.sh module.sh

3)支持较少格式(默认)

$ cd config
$ rm module.sh
$ ln -s module-lite.sh module.sh
  • 下载源码
    开源项目中并没有直接包含ffmpeg和openssl源码,所以编译前需要先下载
// 进入工程根目录
$ cd ijkplayer-android
// checkout ffmpeg 源码,ffmpeg有300多M,下载可能会有点慢
$ ./init-android.sh
// checkout openssl android源码
$ ./init-android-openssl.sh
  • 编译
// 编译openssl(用于支持https)
$ cd android/contrib
$ ./compile-openssl.sh clean
$ ./compile-openssl.sh all
// 编译 ffmpeg
$ ./compile-ffmpeg.sh clean
$ ./compile-ffmpeg.sh all
// 编译ijkplayer
$ cd ..
$ ./compile-ijk.sh all

如果在编译ffmpeg时有报:fatal error: linux/perf_event.h: No such file or directory错误,那么在ijkplayer-android/config/module.sh的末尾添加

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"

再重新编译即可

  • 使用
    ijkplayer-android/android/ijkplayer目录是一个 Android Studio 工程,经过编译后即是一个完整的工程,可以直接拷贝出来用Android Studio打开使用。
    ijkplayer-example:示例
    ijkplayer-java:java层的库(必须的)
    ijkplayer-xxx:各种架构的so库
    ijkplayer-exo:对ExoPlayer的封装
    也可以将lib工程中的so拷贝到新建的工程中,只需要依赖对应版本的java层的库即可,这里是k0.8.8
 implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271