【学习笔记】极致首帧播放方案 - 零首帧解决方案

本文为学习笔记,并非原创。原文链接,原文发表于2021-04-06

背景介绍

「零首帧」并不是真的0毫秒启播,而是用户几乎感知不到有首帧时间的存在,在我们的播放质量埋点中对应小于100ms以内的首帧时间。

在现实业务中,有些场景是无法使用所有的优化条件的,比如在随机播放的场景不能进行预加载、某些场景不适合使用播放器复用技术等。

首帧的构成

firset frame

从上图可以看出首帧时间主要包含这么几个部分: 获取视频播放链接,网络建连,下载视频头部数据,音视频解码和渲染。

通用的首帧优化方法

获取播放地址

优化方案:播放地址随feed下发。

通常而言,视频资源会有唯一标识 video id , 在点播的服务端会有一个根据 video id 信息获取播放链接的服务,如果 app server 端能够调用 vod 服务生成播放地址,然后将播放地址随 feed 流一起下发,则省去了客户端的一次网络请求耗时。

网络建连

优化方案:预解析。预连接&连接复用。避免TLS握手。

拿到播放地址,播放器与DNS建连,首先会做DNS解析 …

more ...