ijkplayer的源码路径在https://github.com/Bilibili/ijkplayer上面,它是对ffplay二次开发的一个播放器,支持多个平台,下面以Android平台进行介绍。编译流程如下:
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8
./init-android.sh
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh all
编译完成后主要是生成libijkffmpeg.so,libijkplayer.so,libijksdl.so这三个so。这几个so对应用层提供native接口,这样就可以基于这些so开发播放app了。在ijkplayer-android\android\ijkplayer目录下面有示例app源码。native接口在ijkplayer_jni.c文件里面,接口如下:
static JNINativeMethod g_methods[] = {
{
"_setDataSource",
"(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V",
(void *) IjkMediaPlayer_setDataSourceAndHeaders
},
{ "_setDataSourceFd",