我们也分析这个过程中的原因,发现因为改为边下边播之后用户观看视频的意愿比较强,用户有挑选心理,不是每个视频都去看,看了一下之后不喜欢就划走了,之前下载的那部分其实是浪费的。
如果之前不做限速的话,一点开视频就疯狂地下数据,带宽有多大就下多少的数据,这样浪费很严重。我们采取的第一个策略是进行流量控制。在高峰期播放到第 10 秒时,预下载 N 秒数据,下载到 N 秒就停下来。然后,可以做多级限速。一开始不限速,下载到合适时机做 1 倍码率限速。高峰期时预加载的数据会少一些,防止高峰期时带宽占用明显,这是初级的策略。最终我们也有码率切换的策略。这对用户的观看体验影响比较大,这也是之前必备的一个策略。
上线这个策略之后,对带宽的优化还是比较明显的。在高峰期时从 18:00 到凌晨 1 点带宽下降 25.4%,这个是我们不断灰度最终确定的值。这个值会影响播放缓冲,因为数据少的话必定会卡顿,在卡顿之间和流量之间取了一个最优值,最终是 25.4%。
但这样肯定是不够的,因为流量涨的还是很明显的,我们想到 H.265,压缩率相对于 H.264 提升了 30%-50%,但它的复杂度也是呈指数级上升。复杂度导致它的编解码耗时更长,占用资源也更长。如果把 H.265 用在客户端上的话,可能要评估一些点,比如说在编码上面,现在手机上没有做 H.265 硬件支持的,相对于 H.264 的耗时 3-7 倍,之前耗时可能是 10 分钟,而现在可能需要到 70 分钟左右。