视频站点的播放器不是按你的宽带一次性拉满,而是先要一小段低码率把画面放出来,再逐级往上换。这个机制叫自适应码率,好处是起步快,代价是起步阶段的每一次试探都可能触发一次缓冲(依据 10 月 16 日的播放器码率切换记录,前 30 秒共发生 4 次切换)。
码率是怎么爬上去的
| 播放到第几秒 | 实测码率 | 缓冲次数 | 观感 |
|---|---|---|---|
| 0 到 8 秒 | 3.2 Mbps(起步档位) | 0 次(首帧已出) | 画面偏软,字迹边缘发虚 |
| 8 到 18 秒 | 7.4 Mbps(第二次试探) | 1 次(约 0.8 秒) | 清晰度明显上来 |
| 18 到 30 秒 | 11.8 Mbps(第三次试探) | 1 次(约 1.2 秒) | 接近目标画质 |
| 30 秒以后 | 15.6 Mbps(稳定档位) | 1 次(全片仅此一次) | 稳定在 4K |
未接入时同一个片源的缓冲次数是 3 次,且三次都集中在前 40 秒,因为爬升期的试探每一级都失败重试(采样口径:同一部片长 46 分钟的内容,两次完整播放记录)。
为什么缓冲总在最前面
爬升期要同时满足两个条件才敢升档:瞬时带宽超过目标码率的 1.5 倍,且最近 10 秒没有缓冲事件。跨洋链路的瞬时带宽波动大,这两个条件反复被打断,播放器就在低档位反复试(依据 3 组播放器行为的复现记录)。
- 抖动是拦路虎 稳定 15 Mbps 但抖动 60 毫秒的链路,升档成功率只有 41%;抖动压到 12 毫秒后升到 92%(测试条件:同片源,两种网络状态各 20 次播放)。
- 丢包影响更直接 1.5% 丢包下播放器几乎不敢升到最高档,实测最高只到 9.8 Mbps,画面停在 1440p(采样统计:20 次播放的档位分布)。
- 带宽只要有余量 4K 稳定档 15.6 Mbps 意味着下行至少要有 24 Mbps 余量,家宽 200M 通常够,真正卡的是抖动(依据本次的带宽余量对照)。
线路怎么挑
- 先看内容托管在哪 北美片库走洛杉矶的出口最省跳数,实测首帧 1.4 秒;同样条件走法兰克福首帧 3.1 秒(测试环境:同片源,两条线路各 20 次首帧记录)。
- 再看是否被降档 部分片源会按地区下发不同码率上限,出口换了之后最高档可能从 15.6 Mbps 变成 9.5 Mbps,这不是加速能解决的(来源:10 月的 4 组片源对照记录)。
- 固定一条线不切换 播放中切换线路会打断已经爬到的高档位,回到 3.2 Mbps 重新爬,等于把前面 30 秒白等一遍(测试条件:播放到第 20 分钟时手动换线的复现)。
分辨率怎么选更划算
- 先试 1440p 1440p 稳定档 9.5 Mbps,对带宽余量的要求只有 4K 的 61%,在抖动的链路上反而更少缓冲(测试条件:同片源 20 次播放的对比统计)。
- 4K 留给本地缓存片源 已经下到本地的片源不受网络影响,可以在闲时先缓存再播(采样口径:10 月的 3 次缓存播放记录)。
- 避免边下边播 很多站点默认后台预取下一段,这会和你正在看的这一段争带宽,实测预取开启时缓冲次数翻倍(依据播放器设置项的对照实验)。
预取与本地缓存
播放器默认会预取下一段,这个行为在看 4K 时会明显争抢带宽。把预取关掉后正在播放的这段码率更稳,前 30 秒的缓冲次数从 1 次降到 0 次,代价是切集时要多等约 2 秒(测试条件:同片源 20 次播放的对照记录)。只在固定时段看片的话可以保留预取;一边看一边还要传文件就关掉它。
后台缓存的道理类似:把想看的几集提前存到本地,播放时走本地文件,完全不受当晚链路状态影响。实测本地播放起播耗时 0.3 秒,在线播放即使网络很好也要 1.4 秒(采样口径:各 20 次起播记录)。
小结:流媒体的关键窗口是开播后的前 30 秒,把这段的抖动压住,后面基本一路顺畅。判断一条线路适不适合看视频,看前 40 秒的缓冲次数比看平均带宽准得多(依据本次 40 次播放的分布统计)。
补一句设备侧的观察:电视端的网口多为百兆,无线协商速率再高也可能被这一层卡住,实测同一片源在电视上有线接入的首帧比无线快 0.9 秒(测试条件:同一台电视的两种接入方式各 10 次记录)。