ijkpalyer的官方指导编译

ijkplayer是基于FFmpeg的开源的移动平台视频播放器,跨平台支持Android和IOS,支持本地播放和在线视频播放,有点类似google的开源播放器ExoPlayer,想从底层了解视频播放的过程,ijkplayer是一个非常值得学习的开源项目。
主要先介绍下ijkplayer的编译过程:

ijkplayer-proccess

clone ijkplayer code source

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

clone

checkout latest branch

1
2
cd ijkplayer-android
git checkout -B latest k0.7.7.1

clone

init compile source

下载ffmpeg和libyuv的源码

从远程仓库下载编译所需要的源码,

1
./init-android.sh

init

init

compile ffmepg

1
2
3
cd android/contrib
./compile-ffmepg.sh clean
./compile-ffmpeg.sh all

compile ffmpeg

compile ffmpeg

compile ffmepg

compile ffmpeg

compile-ffmpeg

compile-ffmpeg

compile ijkplayer

1
2
cd ..
./compile-ijk.sh

compile-ijk

compile-ijk

编译完成打开官方工程

官方Android工程的文件夹在android/ijkplayer中,结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
.
├── build
│ ├── generated
│ └── intermediates
├── build.gradle
├── gradle
│ └── wrapper
├── gradle.properties
├── gradlew
├── gradlew.bat
├── ijkplayer-arm64
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-arm64.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer-armv5
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-armv5.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer-armv7a
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-armv7a.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer-example
│ ├── build
│ ├── build.gradle
│ ├── ijkplayer-example.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer-exo
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-exo.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer.iml
├── ijkplayer-java
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-java.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer-x86
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-x86.iml
│ ├── proguard-rules.pro
│ └── src
├── ijkplayer-x86_64
│ ├── build
│ ├── build.gradle
│ ├── gradle.properties
│ ├── ijkplayer-x86_64.iml
│ ├── proguard-rules.pro
│ └── src
├── local.properties
├── settings.gradle
└── tools
├── gradle-bintray-upload.gradle
├── gradle-mvn-push.gradle
└── gradle-on-demand.gradle
30 directories, 41 files

Android的官方Demo在ijkplayer-example中,后面文章会详细一点分析ijkplayer的编译过程和调用过程