Ubuntu编译ijkplayer支持https和更多视频格式
来源:互联网 发布:实对称矩阵的性质 编辑:程序博客网 时间:2024/05/20 10:12
关于ijkplayer
基于 FFmpeg n3.1 的 Android/iOS 视频播放器,支持 MediaCodec, VideoToolbox,支持 RTMP/HTTP/HTTPS 视频流播放,支持本地视频播放。
项目地址:https://github.com/Bilibili/ijkplayer
如果是使用的 Windows 系统需要先用虚拟机装个 Linux 系统,因为 ijkplayer 相关库需要在 Linux 环境下编译。
开始
1) 所需环境
* 系统:Ubuntu 17.04 (windows下安装Linux虚拟机)
* NDK:android-ndk-r13b (建议使用 r10e 以上版本)
* SDK:android-sdk
2) 打开终端,执行下面命令,安装git、vim、yasm
sudo apt-get install gitsudo apt-get install yasmsudo apt-get install vim
3) 克隆ijkplayer代码
// 把代码clone到本地git clone https://github.com/Bilibili/ijkplayer ijkplayer-android
4) 配置环境变量
在开始编译之前需要先配置ANDROID_SDK
与ANDROID_NDK
环境变量。
下载(步骤1处得到)完成后执行下面命令解压SDK和NDK
$ sudo tar -zxvf android-sdk_r24.4.1-linux.tgz$ sudo mv android-sdk-linux /opt/Android$ sudo unzip android-ndk_r13b-linux-x86_64.zip$ sudo mv android-ndk-r13b /opt/Android/
在命令行终端中运行命令$ sudo vim /etc/profile
在文件末尾添加如下内容
export ANDROID_NDK=/opt/Android/android-ndk-r13bexport PATH=$PATH:$ANDROID_NDKexport ANDROID_SDK=/opt/Android/sdkexport PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
完成后重启Ubuntu。
编译ijkplayer
编译之前的配置
下面三种是ijkplayer给出的配置,我这里执行的是第一种
If you prefer more codec/format
cd configrm module.shln -s module-default.sh module.shcd ..cd android/contrib# cd iossh compile-ffmpeg.sh clean
If you prefer less codec/format for smaller binary size (include hevc function)
cd configrm module.shln -s module-lite-hevc.sh module.shcd android/contrib# cd iossh compile-ffmpeg.sh clean
If you prefer less codec/format for smaller binary size (by default)
cd configrm module.shln -s module-lite.sh module.shcd android/contrib# cd iossh compile-ffmpeg.sh clean
1) 下载ijkplayer所需的FFmpeg代码
// 进入工程根目录cd ijkplayer-android// checkout ffmpeg 源码,默认从 https://github.com/Bilibili/FFmpeg.git checkout./init-android.sh
2) 下载ijkplayer对https协议支持的代码
// checkout openssl android源码,默认从 https://github.com/Bilibili/openssl.git checkout./init-android-openssl.sh
开始编译
1) 编译 openssl
// 首先 cd 到 ijkplayer/android/contrib 目录下,Android下编译脚本就放在该目录下cd android/contrib// 编译 openssl./compile-openssl.sh clean./compile-openssl.sh all
2) 编译 ffmpeg
./compile-ffmpeg.sh clean./compile-ffmpeg.sh all
3) 编译ijkplayer生成CPU架构的so
// 返回到 ijkplayer-android/android 目录cd ..// 编译生成各CPU架构的so,如果不加 all 默认只生成 armv7a 架构的 so// 编译指定架构的so:compile-ijk.sh armv7a,具体参考 .sh 文件中的 Usage./compile-ijk.sh all
编译完成后 so 就放在 ijkplayer/android/ijkplayer/ijkplayer-xxx/src/main/libs 目录下。此时编译好的 so 是支持 https 协议的。
ijkplayer-android/android/ijkplayer 是一个 Android Studio 工程,里面有 ijkplayer 的 example 和各架构的 Library Project。
ijkplayer/android/ijkplayer 是一个 Android Studio 工程,里面有 ijkplayer 的 example 和各架构的 Library Project。
此时,把 ijkplayer-android/android/ijkplayer 导入 Android Studio ,ijkplayer-example 已经可以正常运行了。
4) 在自己的工程中引用 ijkplayer 和自己编译的 so
(1) 在 build.gradle 添加 ijkplayer-java 依赖
compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.4'// compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.4' // 这个是 ijkplayer 对 exoplayer 的封装,支持webm格式视频,看项目需求是否添加
(2) 在工程 src\main 目录下新建一个 jniLibs 目录并把 so 拷贝到对应架构名称的目录下。
如果不想引入所有的so文件,可以在Module:app中加入以下代码
android { defaultConfig { ndk { abiFilter "armeabi-v7a" //, 'x86', 'armeabi', 'x86_64', 'arm64-v8a' } }}
- Ubuntu编译ijkplayer支持https和更多视频格式
- Android开发小记:编译ijkplayer以支持更多视频格式
- Android,ijkplayer增加https协议支持,编译运行ijkplayer
- IJKPlayer如何支持https
- 在Ubuntu和Windows上编译libcurl支持https
- Ubuntu 编译ijkplayer
- Ubuntu编译ijkplayer
- Ubuntu+NDK编译支持HTTPS的libcurl
- IJKPlayer播放器支持https流程
- ijkplayer的支持https的设置
- ubuntu下ijkplayer的编译
- Android ijkplayer 编译的 bilibili 开源编译版本上,去掉失败的依赖,增加对 https 支持
- ijkPlayer支持https和增加沉浸式带有so文件,EXOplayer升级到r.2.5.4
- Ubuntu 14.04 下编译 ijkplayer Android
- 在ubuntu下编译ijkplayer-android
- ijkplayer编译(Ubuntu + Win双系统)
- 在ubuntu下编译ijkplayer-android
- 用ubuntu虚拟机编译ijkplayer代码
- 阿丹学理财之黄金投资
- Codeforces Round #396 (Div. 2) 题解
- I2C总线
- 多任务学习(Multi-task learning)-1
- Cppcheck 用法(上篇)
- Ubuntu编译ijkplayer支持https和更多视频格式
- Context类中openFileOutput ()函数的使用存对象比SharedPreference方便
- 文件存储NAS_有bug
- Spring 定时任务之 @Scheduled cron表达式
- 目标一:一个月完全弄明白MC整个平台的框架及优劣(截至2017.11.13)
- call和apply的区别
- 翻译连载 | 第 10 章:异步的函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
- 选择正确的Xdebug版本
- spring boot(五):spring data jpa的使用