移动端的播放器设计经验:与VLC的考量点完全不同

简介: 移动播放器面临的情况:1、渲染时按照时间戳渲染2、播放端来的流是抖动不平滑的,可快可慢,可能延时只来一帧,后紧跟N帧。VLC针对抖动的处理方式1、收流时在收到第一帧TS1的时候取本地绝对时间,作为绝对时戳absPts1,第二帧TS2到来时取本地绝对时戳absPts2。
移动播放器面临的情况:
1、渲染时按照时间戳渲染
2、播放端来的流是抖动不平滑的,可快可慢,可能延时只来一帧,后紧跟N帧。

VLC针对抖动的处理方式
1、收流时在收到第一帧TS1的时候取本地绝对时间,作为绝对时戳absPts1,第二帧TS2到来时取本地绝对时戳absPts2。差值计算absDvalue = absPts2 - absPts1  TsDvalue = Ts2-Ts1 ,如果absDvalue > TsDvalue 说明数据延时到来,否则时提前到来。这种方式的缺陷是:以第一帧作为参考,可能第一帧本身就晚到了。

2、将absDvalue值累计到clock机制里,clock里会计算这种误差,反应到送渲染的时戳里,这样达到播放端与发流端的速度保持一致,减少缓冲数据的堆积(即时钟漂移策略)。这样做对于视频流源端是IPC等摄像机来说是合理的,且是有优势的。但是对于移动手机作为采集端,加入了调整帧率、码率等手段做网络动态适配时,VLC的这些优势就变成了劣势。

移动端采集方案:动态监测网络状态,网络状态较差时
1、自动降低帧率、码率;
2、采集端产生堆积数据,导致播放端接收到的数据延时较大。如果此时网络情况突然改善,播放端会收到一大串的帧,类似脉冲式的效果。

移动播放端的改进
1、考虑到音视频同步问题,以音频作为调整的触发点;
2、收流侧实时统计每帧音频是否延时,计算延时时间。基准的缓存时间为500ms,如果延时时间>缓存时间,连续500ms时,可以增加缓存时间(即后续每帧的绝对时戳=curpts+新缓存时间),相当于渲染时间延后了。使用该方式可以在网络情况差的情况下,平滑播放但整体延时了。
3、当网络情况好转时,同样的方式计算出延时间<缓存时间,连续500ms时,可以减少缓存时间(即后续每帧的绝对时戳=curpts+新缓存时间(新的缓存时间比原先的缓存时间小)),并且通知渲染模块,调整已有的渲染队列中数据的pts值,这样启到加速渲染的效果。
4、注意:快速增加延时,但缓慢减少延时。如快速减少延时,会导致在网络情况好的时候,音视频卡顿。
目录
相关文章
|
18天前
|
Linux C++ iOS开发
VLC源码解析:视频播放速度控制背后的技术
VLC源码解析:视频播放速度控制背后的技术
136 0
|
18天前
|
Web App开发 编解码 前端开发
如何做移动端适配?
如何做移动端适配?
41 0
|
8月前
|
前端开发 数据库 开发者
【RaETable】🚀🚀🚀一些新功能让你的开发更流畅
【RaETable】🚀🚀🚀一些新功能让你的开发更流畅
|
9月前
|
网络协议 算法 开发工具
RTSP播放器开发过程中需要考虑哪些关键因素
好多开发者,在自研或者选择市面上的播放器的时候,除了常规的播放功能,还有很多点值得关注,如延迟、资源占用、网络异常处理、多实例支持、长时间运行稳定性等。以下是我们开发直播播放器过程中,考虑的部分关键因素(以Windows平台RTSP直播播放为例,如需下载demo源码,可以到 Github 下载):
|
9月前
|
缓存 监控 算法
开发个好的RTMP播放器到底难在哪里?RTMP播放器对标和考察指标
好多开发者提到,RTMP播放器,不知道有哪些对标和考察指标,以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延迟:大多数RTMP的播放都面向直播场景,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTMP播放器非常重要的指标,目前大牛直播SDK的RTMP直播播放延迟比开源播放器更优异(大牛直播SDK延迟在1秒左右,开源播放器如VLC,延迟在5-7秒),而且长时间运行下,大牛直播SDK播放端不会造成延迟累积,开源或第三方播放器,长时间运行,容易产生延迟累积;
|
10月前
|
编解码 缓存 Linux
对话音视频牛哥:如何设计功能齐全的跨平台低延迟RTMP播放器
对话音视频牛哥:如何设计功能齐全的跨平台低延迟RTMP播放器
129 0
|
存储 缓存 网络协议
|
开发框架 .NET 数据处理
海思3559万能平台搭建:RTSP优化buffpool的引入
海思3559万能平台搭建:RTSP优化buffpool的引入
345 0
海思3559万能平台搭建:RTSP优化buffpool的引入
|
存储 网络协议 流计算
|
监控 网络协议 安全
即时通讯技术文集(第6期):移动端弱网优化文章汇总 [共13篇]
为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第6 期。
288 0
即时通讯技术文集(第6期):移动端弱网优化文章汇总 [共13篇]

热门文章

最新文章