ijkplayer icon indicating copy to clipboard operation
ijkplayer copied to clipboard

ijkplayer 支持 srt协议

Open linuxliu opened this issue 4 years ago • 6 comments

首先更换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 avatar Mar 25 '20 09:03 linuxliu

@linuxliu 如果链接静态库需要编译加入

--pkg-config-flags=--static

heaoven avatar Jun 12 '20 03:06 heaoven

@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

Luosh avatar Sep 11 '20 06:09 Luosh

可以参考 https://juejin.cn/post/6844904046164181000#heading-1 https://github.com/befovy/ijkplayer/pull/14/files#diff-263e458cbb0929a6fc8f3f122705b29c

quelleG avatar Apr 07 '21 08:04 quelleG

求一份完整编译脚本。。

DesenYang avatar Jun 12 '21 13:06 DesenYang

@linuxliu 大佬,能出一份用最新NDK(31.0.0)编译的指南么

pray166 avatar Sep 09 '21 10:09 pray166

可以查看一下我的博客:https://www.jianshu.com/p/7fad9a1a64f4 对着一步一步编译就好。

wenkency avatar May 27 '22 02:05 wenkency