我在我使用的Android应用程序中使用ijkplayer
compile 'tv.danmaku.ijk.media:ijkplayer-java:0.4.5'
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.4.5'
它可以完美地加载http网址,但是如果我尝试加载https网址,则会出现此错误
https protocol not found, recompile FFmpeg with openssl, gnutls, or securetransport enabled.
并且无法加载我的视频。我不知道它是否有任何区别,但我尝试加载的URL是.m3u8,但如果它是http则可以正常工作。
如何在此lib中重新编译ffmpeg?
嗨,Petro,我不是专业人士,但希望本教程对您有所帮助。
您必须编译具有openssl支持的ijkplayer才能打开https链接,请按照以下步骤操作:
从github上获取IjkPlayer的最新版本:
$ git clone https://github.com/Bilibili/ijkplayer.git
打开刚刚下载的文件夹ijkplayer删除到module.sh的符号链接并创建到module-lite.sh的符号链接
$ cd config
$ rm module.sh
$ ln -s module-lite.sh module.sh
进行OpenSSL的初始化(首先准备下载并编译openssl)
$ cd ..
$ ./init-android-openssl.sh
确保已为您的SDK和NDK路径指定了路径。
(建议使用NDK r10e-我不确定是否需要SDK,但以防万一我确实将其导出)
注意:确保已正确更改了路径,这只是我使用的路径的示例。
export ANDROID_SDK="/home/ZiomusGorliczanin/SDK"
export ANDROID_NDK="/home/ZiomusGorliczanin/NDK"
打开IjkPlayer / android / contrib文件夹并启动compile-openssl.sh clean和all命令(将编译所有处理器的openssl)。
$ cd android/contrib
$ ./compile-openssl.sh clean
$ ./compile-openssl.sh all
编译可能需要10分钟。
使用OPENSSL为所有处理器编译FFMpeg:
$ cd android/contrib
$ ./compile-ffmpeg.sh clean
$ ./compile-ffmpeg.sh all
最后,将以上所有内容编译为IjkPlayer。
$ cd ..
$ ./compile-ijk.sh all
完成所有这些步骤之后,您应该在这些文件夹中包含库(三个* .so文件):
ijkplayer/ijkplayer-armv5/src/main/libs
ijkplayer/ijkplayer-armv7a/src/main/libs
ijkplayer/ijkplayer-arm64/src/main/libs
ijkplayer/ijkplayer-x86/src/main/libs
尝试将gradle项目导入Android Studio并运行Ijk-Example进行测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句