介绍
我们如果不想使用ijkPlayer 提供的默认的sdk版本。
那么我们可以自定义需要支持的播放协议。本篇主要介绍如何扩展自己想要的播放协议
前提
如果要达成自定义播放,那么你需要明白如何编译成SO文件。否则没有意义了。
你可以先尝试本地下载文件,然后进行编译so。
自定义
FFmpeg 实际上支持比较多的播放协议和视频格式。但是我们在实际操作中,很多时候并不需要支持那么全,因为支持的越多。编译文件就越大。
ijkplayer 提供了三个不同的版本让我们选择:
- module-default.sh :生成的文件同时支持ts格式的视频,例如一些电视台的m3u8 格式
- module-lite.sh : 官方默认引用了该文件配置,这个生成的最小库模板,不支持ts格式的视频
- module-lite-hevc.sh : 相对于lite 格式只是多加上了hevc function的引用
然后通过module.sh 引用上面三个配置里面的数据。在这个文件中指定的地址,就是代表编译时采用哪个配置进行编译so库。
我们具体的需要了解的就是module-xxxx文件里面的配置了。
所有配置前面都是:export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS
我们需要关注的就是后面的配置项。
该命令有两种:
--disable
: 代表禁止该功能
--enable
:代表开放该功能
然后每个大模块都有一个注释,注释告诉了我们下面的配置都是哪些功能。
我们之后就可以根据自己的需求,进行定义是否开启某些项了。
例如,我们开启rtp协议支持:
文档默认为:
`export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtp"`
修改为:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"
例如我们不想开启rtmpt协议:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmpt"
改为:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtmpt"
这个文档的所有配置,都是这么进行调整的。
评论区