首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
播放器专栏
安纯旦
创建于2021-06-09
订阅专栏
专门介绍播放器核心技术,分享ExoPlayer、VLC、Ijkplayer播放器技术,以及播放器优化的技术
等 51 人订阅
共17篇文章
创建于2021-06-09
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
一个ExoPlayer原生播放问题引起的思考
一个ExoPlayer原生播放问题引起的思考,帮你快速了解播放器中TS处理的逻辑。读源码其实没那么难
头条都在用的边下边播功能
头条官方文档中对自己播放器的特色功能有这几点介绍,其中专门提到了“边下边播”的功能,边下边播的核心目的是:播放器提供视频播放时下载视频的选项,这样重复播放视频时可以直接播放本地视频文件,减少网络流量,增加播放稳定性。 播放网络视频的过程就是需要先将视频数据拉取下来,然后解封装,…
Ijkplayer 公开课(三)msg_queue消息机制剖析
1.为什么需要一个消息机制Android平台提供了Handler、Message、MessageQueue、Looper机制来实现消息分发和处理机制;在ijkplayer的native层也需要这样的一
Ijkplayer 公开课(二)播放流程概要
3. 播放器流程 5. setDataSource 和 setSurface 6. prepareAsync 请求数据
Ijkplayer 公开课(一)编译
ijkplayer是BiliBili维护的一个开源的流媒体播放器,有android和iOS跨平台的特性;适合播放网络流媒体或者直播场景,播放效果和性能均非常棒,是一个优秀的播放器开源库;Github地
ExoPlayer 漫谈之添加水印
上面三个问题表示TextureView上面盖一层ImageView的方式是行不通的。 其实除了TextureView和SurfaceView渲染视频之外,GLSurfaceView也是渲染视频的一种View,GLSurfaceView和OpenGL结合,可以实现给播放中的视频添…
ExoPlayer 漫谈之Sonic调整音量
我们使用Android手机播放视频的时候,发现声音大了,我们手动调低音量;发现声音小了,我们手动调高音量。 这个过程中,都要依赖手动,如果你在不断地刷短视频的时候,如果需要用户不断地手动调整音量键,那这个体验是不能忍受的。 这个思路是可行的,接下来我们分析一下声音的特征,进而给…
ExoPlayer 漫谈之倍速
音频和视频帧都有一个pts标识当前的时间戳。倍速的场景是要求音频流倍速和视频流倍速。 视频是一帧一帧的画面,音频是一串比特流,然后调整比特流的码率和振幅,用AudioTrack来渲染音频。 这里为什么要这么实现,因为音频对时间的校准非常严格,之前分析音视频同步的时候也发现了音频…
ExoPlayer 漫谈之音视频同步
音视频同步是播放器中非常重要的逻辑,对用户的实际体验影响巨大。上一篇文章中说明了视频中audio与video是分别解码并且送显的,两个线程分别执行,如果不加时间戳同步操作,播放出来的视频会出现音频和视频不同步的情况。 接下来还要做一下送显时间的校准。frameReleaseTi…
ExoPlayer 漫谈之Renderer
一个视频由声音轨道和视频轨道组成,一般声音轨道的数据比较小,我们一般不需要担心声音解析的问题.但是视频轨道的数据很大,视频轨道的解码就是整个视频解码的瓶颈。 音频和视频解码默认都是使用的MediaCodec,视频解码放在Render:MediaCodecVideoRendere…
ExoPlayer 漫谈之Extractor
一个正常的url设置到播放器中。播放器一般会经历如下的流程: 上一篇文章已经分析了ExoPlayer是如何请求url的,我们请求得到了一定的数据,就要对源数据进行解封装。解封装的前提要知道视频是什么封装格式的? 探知视频封装格式的过程就是Extractor。本文主要分析ExoP…
ExoPlayer 漫谈之DataSource
大多数人多ExoPlayer的了解,仅限于ExoPlayer是一个高效的播放器,目前在播放器之中,ExoPlayer也算是独树一帜了,ExoPlayer在Github上非常火,使用的人非常多,可见ExoPlayer的功能、性能还是优化的相当不错的。 我们使用一个开源库,会用当然…
ExoPlayer 漫谈之架构剖析
ExoPlayer本质上是使用MediaCodec来解码视频,但是其中的流程非常复杂,所有我们由浅入深的讲解一下,很多地方也是刚开始看,看得不详细,向大家汇报一下吧。 ExoPlayer旨在对正在播放的媒体类型,媒体的存储方式和存储方式以及呈现方式做出很少的假设(并因此而施加了…
ExoPlayer 漫谈之提升渲染性能
Android L以及Andrioid L以上的版本提供了异步模式, 通过在codec--->configure中设置callback来将数据处理放在异步线程中完成,然后在回调中处理解码出的数据,给开发者设置了回调,你可以在回调中根据自己的需求来处理原始数据. 同步模式当然就是…
ExoPlayer 漫谈之解码器复用
播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块,即MediaCodec来实行视频和音频解码的. 这块耗时对…
播放器性能优化干货
优化播放器性能,我们首先要知道播放的完整流程,从播放的各个阶段找优化方案. 这两个问题是有有递进关系的,“怎么监控这些问题”就是为了更好地“解决这类问题”。 我们得知上面的痛点,在发生这些问题时,我们要收集相应的数据分析这类问题,不然开发者一头雾水,解决问题全靠运气。 这样我们…
Android 平台视频边下边播技术
但是代理服务器是需要服务器配置的,一般公司没必要搞视频源代理服务器,太耗带宽了。 本地代理服务器替代一下这个代理服务器是比较好的一种方法,既可以实现将播放模块和下载模块分层,也可以实现边下边播的功能。 我们本文所讲的 边下边播的技术就是 基于本地代理服务展开的。