ijkplayer
ijkplayer copied to clipboard
ijkplayer 支持 srt协议
首先更换ffmpeg的版本为ff4.0--ixxxxxx
例如: ff4.0--ijk0.8.25--20200221--001
1.修改 init-android.sh 中的
IJK_FFMPEG_COMMIT=ff4.0--ijk0.8.25--20200221--001
2.然后编译openssl, libsrt需要libssl 的支持 3. 根据libsrt的文档编译libsrt 这里有一份可以集成在ijkplayer中的编译脚本 android/contrib/tools/do-compile-srt.sh android/contrib/compile-srt.sh 将下面链接中demo的文件放入上面两个目录 demo.zip
4.修改android/contrib/tools/do-compile-srt.sh 参考对openssl的支持增加对srt的支持 `#with srt if [ -f "${FF_DEP_SRT_LIB}/libsrt.a" ]; then echo "srt detected" FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-libsrt"
FF_CFLAGS="$FF_CFLAGS -I${FF_DEP_SRT_INC}"
FF_DEP_LIBS="$FF_DEP_LIBS -L${FF_DEP_SRT_LIB} -lsrt -lstdc++"
fi 注意要将srt的配置放在openssl之前,因为srt也依赖openssl 正常编译就行了,如果ffmpeg报未找到libsrt的错误,是因为是根据pkg_config去找的,简单更改就是去掉对应ffmpeg中configure 对libsrt的检测 如果编译完成发现不能和str-live-server 通信,是因为ff4.0--ijk0.8.25--20200221--001 libavformat/libsrt.c版本较老,对应很多字段不支持,将ffmpeg4.2.2中对应的文件拷贝过去即可 `
@linuxliu 如果链接静态库需要编译加入
--pkg-config-flags=--static
@linuxliu 请问你使用的ndk和srt是什么版本, 我用r10e的编译srt v1.4.1会报错,ijkplayer-android-svn/android/contrib/srt-armv7a/srtcore/utilities.h:278:32: error: 'le32toh' was not declared in this scope
可以参考 https://juejin.cn/post/6844904046164181000#heading-1 https://github.com/befovy/ijkplayer/pull/14/files#diff-263e458cbb0929a6fc8f3f122705b29c
求一份完整编译脚本。。
@linuxliu 大佬,能出一份用最新NDK(31.0.0)编译的指南么
可以查看一下我的博客:https://www.jianshu.com/p/7fad9a1a64f4 对着一步一步编译就好。