Ped*_*ira 3 android ffmpeg android-ffmpeg ijkplayer
我在我使用的Android应用程序中使用ijkplayer
compile 'tv.danmaku.ijk.media:ijkplayer-java:0.4.5'
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.4.5'
Run Code Online (Sandbox Code Playgroud)
它完美地加载http网址,但如果我尝试加载https网址,我会收到此错误
https protocol not found, recompile FFmpeg with openssl, gnutls, or securetransport enabled.
Run Code Online (Sandbox Code Playgroud)
并且无法加载我的视频.我不知道它是否有任何区别,但我试图加载的网址是.m3u8,但如果它是http工作正常.
如何在这个lib中重新编译ffmpeg?
嗨Petro我不是专业,但希望这个教程会有所帮助.
您必须使用openssl支持编译ijkplayer才能打开https链接,按照以下步骤操作:
从github获取最新版本的IjkPlayer:
$ git clone https://github.com/Bilibili/ijkplayer.git
Run Code Online (Sandbox Code Playgroud)
打开刚刚下载的文件夹ijkplayer删除符号链接到module.sh并创建符号链接到module-lite.sh
$ cd config
$ rm module.sh
$ ln -s module-lite.sh module.sh
Run Code Online (Sandbox Code Playgroud)
初始化OpenSSL(准备首先下载并编译openssl)
$ cd ..
$ ./init-android-openssl.sh
Run Code Online (Sandbox Code Playgroud)
确保您已指向SDK和NDK路径.
(NDK r10e优先 - 我不确定是否需要SDK,但以防我导出它)
注意:确保您已正确更改路径,这只是我使用过的路径的示例.
export ANDROID_SDK="/home/ZiomusGorliczanin/SDK"
export ANDROID_NDK="/home/ZiomusGorliczanin/NDK"
Run Code Online (Sandbox Code Playgroud)
打开IjkPlayer/android/contrib文件夹并启动compile-openssl.sh clean和all命令(将为所有处理器编译openssl).
$ cd android/contrib
$ ./compile-openssl.sh clean
$ ./compile-openssl.sh all
Run Code Online (Sandbox Code Playgroud)
编译可能需要10分钟.
为所有处理器编译带有OPENSSL的FFMpeg:
$ cd android/contrib
$ ./compile-ffmpeg.sh clean
$ ./compile-ffmpeg.sh all
Run Code Online (Sandbox Code Playgroud)
最后使用以上所有内容编译IjkPlayer作为liblary.
$ cd ..
$ ./compile-ijk.sh all
Run Code Online (Sandbox Code Playgroud)
完成所有这些步骤后,您应该在这些文件夹中有三个文件(三个*.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
Run Code Online (Sandbox Code Playgroud)
尝试将gradle项目导入Android Studio并运行Ijk-Example进行测试.
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |