短视频秒播优化实践(一)

本文介绍了短视频秒播优化的实践,包括域名解析、Socket缓存、 Probe缓存、Player缓冲等方面的优化策略,旨在提高短视频起播速度,实现秒播体验。通过对播放流程的拆解,分析了各环节耗时原因并提出解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

640?wx_fmt=png

短视频迎合了人们时间碎片化下的精神娱乐需求,或者现在追求“短平快”的大环境,我也有点短视频中毒,没事经常光顾某几个短视频APP,以至于冷落了某头条和某易新闻基本很少点开了,这些时间加起来holy bible估计都能读好几遍了。当然这是一篇技术文章,其他心理学,社会学问题,产品问题就不在这里讨论了,咱也没那个水平。

言归正传,我们也推出了短视频相关的产品。

在短视频的体验中,起播速度无疑是最影响体验的指标之一,因为短视频很短,十几秒到几分钟不等,如果一个十几秒的视频,加载时间都要3秒,肯定是一个很坏的体验;所以在产品定义之初,起播速度就设定了控制在1秒左右,大部分在1秒内,也就是业内说的“秒播”,这需要对播放流程进行优化。艾玛,终于绕到主题上了。

谈具体的优化之前我们先看下一个短视频播放的大概流程是怎样的?

再通过拆解流程,找到可以优化的模块或点,最终才能连成线,并给出优化方案。

640?wx_fmt=png

如上图所示,移动设备的播放器通过某个视频url的域名,通过DNS服务请求到IP地址,通过这个IP地址与视频服务器建立TCP连接,然后在连接之上建立http协议,最终请求到数据,给到播放器进行解析音视频解码显示,用户看到画面听到声音,一个起播流程结束了。

为了更好的发现可优化的地方,我们对上图进行了拆解,结合实际情况给出了下边这张图

640?wx_fmt=png

图中蓝色的部分是可以优化的,但由于实际情况是,flyme只在客户端接入了内容,内容都是放在CP的服务器上的,虽然有优化空间但是flyme这边优化不到,但在后边我们也会介绍有哪些优化空间可以操作。这个是行业现状,不过可以多接入几家内容选择岂不是更好。图中灰色部分是不能优化的,在流程上没有优化空间,而且这部分容易受到网络情况的影响,所以我们后续提到的优化,是基于大多数normal的网络情况的,虽然部分逻辑对极端网络情况也适用,但是这不是我们讨论的重点。图中绿色的部分是可以优化并且在项目现实中可以实施的。

下面对这些项目逐一进行介绍。
一、Domain name: 域名解析

耗时原因:

DNS请求包会先发到本地DNS服务器,如果查不到,会递归到根域名服务器,这个过程是比较耗时的,当然如果你请求过了,或者期间有其他人请求过相同的域名,那域名服务器就会有缓存,再次请求的时候就很快了;但是一般缓存的周期很短,需要有人不停地请求才能保持更新,所以具有很大的不确定性。

解决方案:

1.注意请求使用的IP协议版本,做播放的肯定都绕不过ffmpeg,在ffmpeg里为了兼容性,DNS请求的IP协议版本设置为AF_UNSPEC,这样在请求的时候会先请求IPv6的地址,如果没有再请求IPv4的地址,是很保险,但是在实际的项

Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 快速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值