专栏首页EasyNVREasyPlayer网页全终端播放器之Android版的缓存策略解决方式

EasyPlayer网页全终端播放器之Android版的缓存策略解决方式

了解我们产品的小伙伴都知道,Easy系列产品包含前端推拉流组件、流媒体服务器以及中间件产品,从取流到播放全包含,其中播放器类产品有EasyPlayer-RTSP、EasyPlayer-RTMP、EasyPlayerPro。其可以单独使用,也可以封装到其他组件中。

在使用播放器产品中,时常会遇到一些缓存策略问题,今天为大家介绍EasyPlayer-Android的缓存策略是怎样的。

分析问题

通过ETSPClient/ETMPClient获取音视频流并解封装后,获取到视频帧和音频帧,添加到音视频帧缓存的队列,使播放更加顺滑。

解决问题

在onRTMPSourceCallBack回调中,调用mQueue.put(frameInfo);将视频帧/音频帧添加到缓冲队列中。然后通过frameInfo = mQueue.takeVideoFrame();获取每一个帧来解码播放。

在FrameInfoQueue中,以下2个参数设置队列的最大长度和丢帧的最大长度。

private static final int CAPACITY = 500;         
// 最大长度,达到最大长度清空队列
private static final int INITIAL_CAPACITY = 300; 
// 设置队列长度,达到设置队列长度开始丢帧

EasyPlayer是一款流媒体播放器系列项目,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、 支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控。随着多年不断的发展和迭代,不断基于成功的实践经验,发展出包括有: EasyPlayer RTSP、EasyPlayer RTMP、EasyPlayerPro 和EasyPlayer.js 等播放器。目前支持Windows、 Android、iOS三个平台,同时EasyPlayer.js还支持Linux平台。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 支持8K播放,低延时高并发流媒体音视频播放器EasyPlayer.js是如何实现播放8K视频的

    要实现这几种显示模式。其实只要对播放控件的布局进行些许调整即可。那EasyPlayer是怎么实现的呢?

    EasyNVR
  • RTSP播放器网页web互联网直播流媒体音视频播放器EasyPlayer-RTSP-iOS的核心代码打包成动态库

    EasyPlayer是一个RTSP流媒体播放器,在GitHub上开源大部分源码,需要商用授权。其主要功能有播放、抓图、录制视频、实时静音/取消静音。

    EasyNVR
  • 多功能流媒体播放器实现网页无插件直播之EasyPlayer.js如何实现播放完自动循环播放

    EasyPlayer-Android播放器是一款可针对RTSP、RTMP、RTSP&RTMP协议进行过优化的流媒体播放器,其中我们引以为傲的两个技术优势就是起播...

    EasyNVR
  • 数据结构 | 每日一练(98)

    ——老子

    闫小林
  • 微服务实战(一):落地微服务架构到直销系统(什么是微服务)

    网上有很多关于微服务的文章,从不同的维度对微服务进行了相关的讲述;有些高屋建瓴,有些涉及细节,有些侧重理论,有些侧重代码,都是非常不错的了解微服务的文章。

    用户1910585
  • AXI中wrap边界的计算

    在AXI中,主要是三种猝发模式,FIXED,INCR,WRAP。前两种比较容易理解,第三种的边界计算如下。

    数字IC小站
  • 社群答疑精选03:拆分数据到新工作表

    这种问题最适合使用VBA来解决。仔细观察后发现,户主对应的人数就是该户家庭在工作表中所占的行数,这样只要定位到户主,就知道了该户所有成员的范围,这就方便提取相应...

    fanjy
  • 20位程序员关于求职的疑问,以及我给出的参考答案

    前几天发了一条朋友圈对于求职小伙伴们提出的问题,我进行了收集整理,统一反馈。也许这20个问题也是你们遇到的问题,所以趁着年前赶紧把它发出来。

    黄小斜
  • The Linux Scheduler: a Decade of Wasted Cores 译文 二

    决定一次负载均衡是否要发生有很多的规则,因此也就很难推断如果有工作可作时一个空闲核能够维持空闲多久,也很难推断在系统中有空闲核时,任务变为可运行状态前还要在运行...

    扫帚的影子
  • 不会用示波器的Verilog码农不是一个好码农(LVDS与SpaceWire接口)

    近日,在300Mbps的LVDS接口的调试过程中,出现了部分接口无法正确接收数据的现象,动用了一系列手段都无法使其老实下来踏踏实实接收数据,实可谓顽固不化。而在...

    网络交换FPGA

扫码关注云+社区

领取腾讯云代金券