Android库 ijkplayer 加载 HTTPS URL。

4

我在我的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的方式可以正常工作。

我该如何在该库中重新编译ffmpeg?

2个回答

8

你好Petro,虽然我不是专业人士,但希望这篇教程对你有所帮助。

要打开https链接,你需要使用支持openssl的ijkplayer进行编译。按照以下步骤操作:

从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分钟。

将FFMpeg与OPENSSL编译为适用于所有处理器:

$ 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进行测试。


非常感谢!我现在可以重新编译库并使HTTPS正常工作! - Pedro Ferreira
1
请帮忙,我遇到了这个错误 ./compile-ijk.sh profiler build: NO Android NDK: ERROR:/Users/thehe/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk:ijkffmpeg: LOCAL_SRC_FILES 指向一个缺失的文件
Android NDK: 请检查 /libijkffmpeg.so 是否存在或路径是否正确
/Users/thehe/Library/Android/sdk/ndk-bundle/build/core/prebuilt-library.mk:45: *** Android NDK: 中止。 . 停止。
- famfamfam

0

如果你收到了这个错误

./compile-ijk.sh profiler build: NO

这是因为苹果MacBook的安全策略,有一个可行的替代方案是前往 苹果菜单-->系统偏好设置-->安全性与隐私,然后允许即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接