IjkPlayer播放器秒开优化以及常用Option设置
96 GexYY 关注
1.5 2018.04.19 13:28* 字数 592 阅读 10797评论 9喜欢 32
ijkplayer和ffplay在打开rtmp串流视频时,大多数都会遇到5~10秒的延迟,在ffplay播放时,如果加上-fflags nobuffer可以缩短播放的rtmp视频延迟在1s内,而在IjkMediaPlayer中加入

mediaPlayer.setOption(1, “analyzemaxduration”, 100L);
mediaPlayer.setOption(1, “probesize”, 10240L);
mediaPlayer.setOption(1, “flush_packets”, 1L);
mediaPlayer.setOption(4, “packet-buffering”, 0L);
mediaPlayer.setOption(4, “framedrop”, 1L);
1: 设置是否开启变调

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”,isModifyTone?0:1);
2:设置是否开启环路过滤: 0开启,画面质量高,解码开销大,48关闭,画面质量差点,解码开销小

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC,“skip_loop_filter”,isSkipLoopFilter?0:48L);
3:设置播放前的最大探测时间

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,“analyzemaxduration”,100L);
4:设置播放前的探测时间 1,达到首屏秒开效果

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,“analyzeduration”,1);
5:播放前的探测Size,默认是1M, 改小一点会出画面更快

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,“probesize”,1024*10);
6:每处理一个packet之后刷新io上下文

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,“flush_packets”,1L);
7: 是否开启预缓冲,一般直播项目会开启,达到秒开的效果,不过带来了播放丢帧卡顿的体验

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“packet-buffering”,isBufferCache?1:0);
8:播放重连次数

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“reconnect”,5);
9:最大缓冲大小,单位kb

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“max-buffer-size”,maxCacheSize);
10:跳帧处理,放CPU处理较慢时,进行跳帧处理,保证播放流程,画面和声音同步

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“framedrop”,5);
11:最大fps

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“max-fps”,30);
12:设置硬解码方式

jkPlayer支持硬解码和软解码。 软解码时不会旋转视频角度这时需要你通过onInfo的what == IMediaPlayer.MEDIA_INFO_VIDEO_ROTATION_CHANGED去获取角度,自己旋转画面。或者开启硬解硬解码,不过硬解码容易造成黑屏无声(硬件兼容问题),下面是设置硬解码相关的代码

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, “mediacodec”, 1);

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, “mediacodec-auto-rotate”, 1);

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, “mediacodec-handle-resolution-change”, 1);
13.SeekTo设置优化

某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, “enable-accurate-seek”, 1);
14. 解决m3u8文件拖动问题 比如:一个3个多少小时的音频文件,开始播放几秒中,然后拖动到2小时左右的时间,要loading 10分钟

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, “fflags”, “fastseek”);//设置seekTo能够快速seek到指定位置并播放
重要记录,问题列表

  1. 设置之后,高码率m3u8的播放卡顿,声音画面不同步,或者只有画面,没有声音,或者声音画面不同步

//某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少
mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, “enable-accurate-seek”, 1);
//播放前的探测Size,默认是1M, 改小一点会出画面更快
mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, “probesize”, 1024 * 10);

IjkPlayer播放器秒开优化以及常用Option设置相关推荐

  1. ijkplayer播放器剖析(一)让ijkplayer播起来

    一.引言: ijkplayer是一款对FFmpeg封装非常好的第三方开源播放器,遗憾的是,ijkplayer2.0似乎不开源,并且1.0版本更新也基本停止了,很多公司都会采用ijkplayer作为其播 ...

  2. ijkplayer播放器剖析(六)视频同步与渲染机制分析

    一.引言: 在前面的博客中,将音频解码播放及视频解码都分析了,这篇博客将单独针对视频同步及渲染来分析,看下ijkplayer是如何做的.本博客分析的同步方式为以音频为主,视频去同步音频. 二.同步前提 ...

  3. ijkplayer播放器剖析(四)音频解码与音频输出机制分析

    ijkplayer播放器剖析系列文章: ijkplayer播放器剖析(一)从应用层分析至Jni层的流程分析 ijkplayer播放器剖析(二)消息机制分析 ijkplayer播放器剖析(三)音频解码与 ...

  4. 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇

    https://www.cnblogs.com/harlanc/p/9693983.html 目录 OpenSL ES & AudioTrack 源码分析 创建播放器音频输出对象 配置并创建音 ...

  5. 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇...

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  6. IJKPlayer播放器支持https流程

    前言: 笔者最近一段时间在搞视频直播相关的东西,虽然很早以前,也做过基于腾讯云.Anychat.容联云等几个第三方的实时视频直播,但是当时的播放器完全采用了第三方的东西,本次则是使用的ijkplaye ...

  7. 【音视频】ijkplayer播放器参数说明文档

    [音视频]ijkplayer播放器参数说明文档 pragma mark - IJKMediaPlayback #pragma mark 通知IJKMPMediaPlaybackIsPreparedTo ...

  8. ijkPlayer播放器快速集成使用

    jjdxm_ijkplayer 项目地址: jjdxm_ijkplayer 简介:基于 ijkplayer 简单的 UI 界面 当前项目是基于 ijkplayer 项目进行的播放器界面 UI 封装. ...

  9. ijkplayer播放器架构从原型到升级

    ijkplayer是一款跨平台的播放器,支持Android与iOS端,核心部分基于ffmpeg,支持Android的mediacodec硬解与iOS的videotoolbox硬解,视频图像采用Open ...

最新文章

  1. 浅析面包屑导航对网站SEO优化有哪些作用?
  2. centos nginx不是命令_Nginx 在CentOS 6/7 上的安装与使用
  3. Tomcat工作原理
  4. 学计算机怎么收费呢,学计算机怎么收费服务为先_贵阳经济技术学校
  5. opencv精要(1)-opencv简介
  6. 安装ORACLE 11.2.0.3 错误
  7. header response in Genil
  8. 使用Spring Security添加RememberMe身份验证
  9. React开发(100):3.0没有image
  10. MongoDB再出安全事故 5800万商业用户信息泄露
  11. 探讨下Tag标签的数据库设计(千万级数据量) 转
  12. PAIP.java程序调试的注意点及流程总结
  13. 4款APP原型设计工具助你搞定移动应用设计!
  14. 字符串模式匹配——BF算法
  15. visio2013(64位)
  16. 服务器appcrash的问题怎么修复,电脑appcrash的问题怎么修复?
  17. java中的\uxxxx
  18. navigation滑动代替返回键
  19. MySQL之MVCC原理
  20. 巫师3储物箱在哪_巫师3全宝藏宝箱地图分享 各种宝藏的具体位置

热门文章

  1. 分享一套永久免费的ChatGPT使用方法
  2. matplotlib柱状图上方显示数据_Python数据可视化之matplotlib
  3. 论文录用后不想发了,撤稿会有什么影响吗?
  4. 剑与家园服务器维护有公告吗,剑与家园全服1.13.2版本停服更新维护公告
  5. 三极管Vbeo、Vceo的介绍
  6. VBS调用ping检测ip连通情况
  7. iOS iPhone设备判断大全,包含X系列和11
  8. 四、s3c2440 裸机开发 通用异步收发器UARN
  9. php 微信公众号图片外链,如何制作微信图文链接?微信图文链接生成
  10. linux终端分屏工具tumx