[IJKPLAYER]编译与DEMO运行
前言
系统:UBUNTU 16.04桌面版
编译步骤,主要还是参考README.md中Build Android的描述
Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
优势:
基于 FFmpeg,表明几乎支持任何的协议
基于MediaCodec, VideoToolbox,表明支持硬件解码
IJKPLAYER 项目地址
1.下载软件
android NDK
2.软件安装
2.1.安装OPENJDK
sudo apt-get install openjdk-8-jre-headless
2.2.SDK安装
SDK
解压下载好的SDK压缩包,执行tools/android脚本启动android sdk manager下载最新的Android SDK Tools和Android SDK Platform-tools和Android SDK Build-tools
2.3.配置环境
打开文件/etc/profile,在文件末尾加入以下内容:
export ANDROID_SDK=/home/sugao/Android/Sdk
export ANDROID_NDK=/home/sugao/Android/Ndk-r14b
export PATH=${ANDROID_SDK}/platform-tools:$PATH
export PATH=${ANDROID_SDK}/tools:$PATH
export PATH=${ANDROID_NDK}:$PATH
2.5.环境生效
source /etc/profile
2.6.环境检测
adb -version
2.7.安装其他软件
sudo apt-get update
sudo apt-get install git
sudo apt-get install yasm
3.下载ijkplayer
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer
4.编译
./init-android.sh
4.1.编译openssl
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh all
4.2.编译ffmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
注意:FFMPEG的配置文件在config/module.sh
4.3.编译ijkplayer native代码
cd ..
./compile-ijk.sh all
4.4.库文件
在android/ijkplayer/ijkplayer-xxxx/src/main/libs/armeabi-v7a目录中有对应的库文件(libijkffmpeg.so,libijkplayer.so,libijksdl.so)。
全平台库文件下载链接
5.运行DEMO
1.导入DEMO
点击ANDROID-STUDIO中的File->New->Improt Project导入android/ijkplayer
根据ANDROID-STUDIO的版本,修改build.gradle中ext配置
ext {compileSdkVersion = 23 // depending on your sdk versionbuildToolsVersion = "23.0.0" // depending on your build tools versiontargetSdkVersion = 23 // depending on your sdk version
}
2.运行DEMO
DEMO程序APK下载链接
6.整体评测
6.1.DEMO评测
- DEMO首页界面:已包含本地文件浏览和播放,sample列表和播放以及设置界面,功能已相当丰富;
- DEMO播放界面:包括Player(使用的播放器:AndroidMediaPlayer,IjkMediaPlayer),Render(图像渲染:none,SurfaceView,TextureView),Scale(比例:16:9,4:3,aspect),Info(流信息)和Tracks(音视频轨道,且可选择播放那些轨道) ,并且具有
- DEMO普通设置:是否使能后台播放,设置播放引擎(AndroidMediaPlayer,IjkMediaPlayer,IjkExoMediaPlayer)
- DEMO视频设置:是否使用MediaCodec编解码,是否使用MediaCodec的自动旋转,是否使用MediaCodec处理分辨率变化,像素格式
- DEMO音频设置:是否使用OpenSL ES接口
- DEMO渲染设置:略
- DEMO麦克风设置:是否使用MediaDataSource接口;
6.2.性能评测
标清播放问题不大,但高清可能出现音视频不同步;
TS流播放加载时间太长,切台效果不佳;
7.错误整理
7.1.ADV启动错误
错误信息:
下午3:08 Executing tasks: [:ijkplayer-example:assembleAll32Debug]
下午3:08 Emulator: libGL error: unable to load driver: nouveau_dri.so
下午3:08 Emulator: libGL error: driver pointer missing
下午3:08 Emulator: libGL error: failed to load driver: nouveau
下午3:08 Emulator: libGL error: unable to load driver: swrast_dri.so
下午3:08 Emulator: libGL error: failed to load driver: swrast
下午3:08 Emulator: X Error of failed request: BadValue (integer parameter out of range for operation)
下午3:08 Emulator: Major opcode of failed request: 155 (GLX)
下午3:08 Emulator: Minor opcode of failed request: 24 (X_GLXCreateNewContext)
下午3:08 Emulator: Value in failed request: 0x0
下午3:08 Emulator: Serial number of failed request: 33
下午3:08 Emulator: Current serial number in output stream: 34
下午3:08 Emulator: Process finished with exit code 1
解决办法:
使用sudo apt list "*nvidia-[0-9][0-9][0-9]"获取NVIDIA显卡驱动版本,然后安装相应驱动(sudo apt install nvidia-375),重启电脑即可
[IJKPLAYER]编译与DEMO运行相关推荐
- WPS C++ 二次开发 Demo运行
1.官网二次开发地址:https://open.wps.cn/docs/client/wpsLoad 2.Demo源码下载: 经过测试上述链接找不到demo源码,可通过git命令下载: git clo ...
- pion demo运行
pion demo运行 pion介绍 运行 demo 拉 pion 代码 编译 运行 examples.exe 运行 data-channels.go pion介绍 pion 是 go 语言写的 we ...
- webRTC服务器搭建(基于Janus)与Demo运行
原文网址:https://blog.csdn.net/newchenxf/article/details/110451532 转载请注明出处^^ 前言 2020年,直播带货不要太火,直播的方案基于啥? ...
- android studio 引入vitamio,Android Studio对 vitamio 的导入及demo运行
vitamio 的 导入和demo运行很简单,这里整理一下: 1.vitamio 导入 ** a.首先从 github 下载 vitamio 的压缩包,如下: 解压之后如下: 接着,我们使用 as 建 ...
- Qt开发笔记之Qwt(一):Qwt介绍、编译与Demo
若该文为原创文章,未经允许不得转载 原博主博客地址:长沙红胖子_长沙红胖子网络科技有限公司_CSDN博客 原博主博客导航:红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术.树莓派.三维.Op ...
- 在 ROS 系统下使用海康 SDK 并编译官方 demo
文章目录 目录 文章目录 前言 一.配置ROS系统(以Ubuntu18.04 ROS Melodic版本为例)(以Ubuntu18.04 ROS Melodic版本为例) 1.配置 ROS 镜像源 ...
- 编译+构建+链接+运行之间的关系分析
编译+构建+链接+运行之间的关系分析 源文件+编译+部署+测试+打包 Maven+default: 验证(validate)+编译(compile)+测试(test)+打包(package)+验证(v ...
- [转]移动应用统一化的谎言:一次编译,到处运行不可能
Wholesale Applications Community (大规模应用程序联盟) (WAC) 上星期说明年二月会发布一个平台,能够允许开发者去写一个程序并且运行在多个操作系统上以及在多个销售平 ...
- 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )
文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...
最新文章
- 使用class-dump破解ipa获取.h文件
- 搭建前端vue环境,安装vue-cli遇到Please try running this command again as root/Administrator的解决方案...
- 特使招募-航天三院-智能车竞赛
- python web框架autoreload原理(以bottle为例)
- 根据应用程序池名称获得第一个站点的物理路径
- 16万辆汽车已经用上中国“车规AI第一芯”,量产还在加速
- 数据科学中的6个基本算法,掌握它们要学习哪些知识
- 排序算法java源代码_排序算法汇总(java实现,附源代码)
- GetResponse() 基础连接已经关闭:服务器关闭了本应保持活动状态的连接
- 北交专升本计算机联锁考试题,北交《计算机联锁技术》在线作业一15春满分答案...
- 茶苑机器人怎么看出来_小儿脑瘫怎么看出来?出现4个异常,该早点去看医生...
- native层 安卓_安卓逆向——拼xx协议java层分析
- 2007.2.14 日程安排
- LeetCode 1707. 与数组中元素的最大异或值(Trie树)
- [置顶] cocos2d-x2.2.5走四棋儿源码“开源”
- 利用Python绘制ER图
- 北京林业大学计算机复试难度,2015年北京林业大学考研复试经验
- ZIP:ZipEntry
- CVPR 2022 NTIRE 高动态范围成像(HDR)比赛冠军方案
- Java程序调用高德开放API——IP定位
热门文章
- 洛谷P1567 统计天数
- Fourier Neural Operator for Parametric Partial Differential Equations
- 免费的Office办公套件LibreOffice for Mac
- 在美国成年人群体中,语音助手Siri已经成了第二大移动搜索引擎
- 小白一键重装有linux,linux小白说说用linux的感受
- 电脑开机显示“被调用的对象已与其客户端断开连接”解决方法
- 拿去吧!27款MacBook软件推荐给你
- 国产品牌积极布局,游戏手机会是行业增长新风口吗?
- python几种矩阵重组降维方式对比
- android sqlite3设置密码,sqlite3 加密