vivo 短视频体验与成本优化实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. vivo 短视频体验与成本优化实践
蔡创业 vivo 互联网音视频架构师
马运杰 vivo 互联网音视频架构师
2. 01
业务介绍
3. 业务介绍
生产 处理
拍摄/导入 转码
编辑
上传
日志收集
压缩
分发 消费
CDN调度 下载/缓存
前处理
播放
监控统计
AB测试
4. 当前问题
用户诉求
费流量
压缩严重
不流畅
画质
不流畅
费流量
成本压力
不流畅
画质
画质卡顿
不流畅
不流畅
费流量
不清晰
噪点多 压缩严重
噪点多
费流量
费流量
压缩严重
费流量 画质卡顿
不清晰
5. 02
体验优化
6. 体验优化
起播:首帧零耗时
创建
播放器
网络
连接
耗时
建连优化
播放中:流畅不卡顿
解码音频
下载
解封装
解码视频
耗时
声画同步
渲染
Playing
缓存不足导致卡顿
耗时
分片下载
预渲染
数据监控体系
数据预加载
7. 体验优化 - 建连优化
连接复用
连接保活
未复用
DNS、TCP、SSL
下载耗时
Http 1.1/2.0连接复用
复用
播放中
播放中
下载耗时
通过复用连接减少一次网络请求中DNS解析以及TCP建连环节的耗时
通过保活,避免因暂停时间较长导致连接断开
HTTPDNS
IP直连兜底
DNS解析失败
LocalDNS
播放暂停
HTTPDNS
兜底IP直连
网络请求失败
使用HTTPDNS,提升DNS解析的速度和成功率
DNS解析失败
请求成功
常规DNS解析失败后,使用兜底的IP直连,提升连接成功率
8. 体验优化 - 分片下载
原生下载架构
播放器
本地代理下载
播放器
socket
本地代理下载
存在的问题
本地代理服务
socket
CDN
CDN
1
2
9. 体验优化 - 分片下载
播放器与本地代理服务之间直连
多线程分片下载提升下载速度
播放器
视频文件
直连
分片1
分片3
本地代理服务
…
socket
分片2
分片4
提升体验
首帧耗时
CDN
…
实时切换CDN能力
-9% 标准CDN 低成本CDN 标准CDN
播放失败率 开播流量 高水位时流量 低水位时流量
10. 体验优化 -预渲染
播放器实例1
应用启动
视频1 正在播放
视频2 即将播放:预渲染
播放器实例2
预创建
Codec
请求
首刷数据
播放器资源池
应用启动时Codec预创建
全局复用播放器资源池
提前预渲染,首帧零耗时
11. 体验优化 - 数据预加载
固定大小预加载策略
动态预加载策略
智能预加载策略
12. 体验优化 - 数据预加载
核心策略
播放进度
1
正在播放
视频1
2
视频2 缓存
视频3 缓存
视频4 缓存
缓冲低水位
暂停下载
缓冲高水位
恢复下载
3
存在的问题
视频5
缓存
1
视频6
缓存
2
13. 体验优化 - 数据预加载
核心策略
正在播放
视频1
1
视频2 一级缓存 二级缓存
视频3 一级缓存 二级缓存
视频4 一级缓存 二级缓存
视频5 一级缓存 视频6 一级缓存
三级缓存
优先级中
优先级高
确保视频开播,快滑时命中
优先级低
提升深度消费时播放体验
2
收益
-2.3%
首帧耗时
卡顿率
14. 体验优化 - 数据预加载
预加载大小
视频1
视频2
观看进度
观看进度
观看进度
视频3
观看进度
视频4
视频5
观看进度
观看进度
视频6
视频7
视频8
观看进度
观看进度
只有深度消费的视频
才真正需要
二级和三级缓存
15. 体验优化 - 数据预加载
云端
APP
加载云端部署的
预测模型
历史行为特征
深度神经网络
预测视频观看时长
云端模型训练
正在播放
视频1
视频信息特征
用户特征
Player
视频开播前
预测消费深度
端侧预测消费深度
视频2 一级缓存
视频3 一级缓存
视频4 一级缓存
视频5 一级缓存
视频6 一级缓存
二级缓存
基于深度学习模型推理滑动
速度计算预加载大小
根据预测结果动态调整二级缓存
16. 体验优化 - 数据监控体系
QoS
起播
播放中
卡顿率
P0
指
标
首帧耗时
P0指标 (核心性能)
开播耗时、卡顿…
卡顿时长
失败率
Seek卡顿
P1
指
标
分层监控体系
缓存命中率 百秒卡顿时长
预渲染命中率 百秒卡顿次数
P1指标 (对P0指标的补充和完善)
客观、全面反映
播放体验
秒播率、百秒卡顿时长、百秒卡顿次数
预加载策略
开启率 、命中率…
缓存大小 缓存利用率
下载速度 CPU/内存
… …
视频信息
码率、时长、画质分…
解释核心指标
波动原因
17. 体验优化
小结
建连优化 分片下载 预渲染 数据预加载
预建连 独立下载模块 Codec预创建 动态预加载
连接保活 分片下载 播放器资源池 智能预加载
HTTPDNS
提前解码
兜底IP直连
数据监控体系
P0指标、P1指标、策略指标、视频信息
18. 03
成本优化
19. 成本优化 - 成本拆解
总成本
80 % 10 % 10 %
CDN成本 存储成本 计算成本
20. 成本优化 - 成本拆解
单价降低
CDN成本
单价
时长
用量
码率
流量利用率
极致压缩
利用率治理
降
本
方
向
21. 成本优化 - 难点
体验
成本
成本的降低往往带来的是服务质量的降低
如何才能在保证播放体验的同时,降低播放成本
22. 成本优化 - 单价降低
引入PCDN技术
优势
劣势
相比于标准CDN,价格低
访问时会增加
302跳转消耗
节点性能差
存储层
标准CDN接入节点
APP应用
CDN边缘节点
网络SDK
PCDN接入点
路由器
PCDN SDK
OSS
小盒子
CDN二级节点
OSS
OSS
OSS
P
C
D
N
网
络
架
构
23. 成本优化 - 单价降低
优化一
通过播放缓冲水位控制是否走PCDN
PCDN下载
优化二
起播阶段发送探测包,探测PCDN节点中是否存在资源
CDN节点
PCDN节点
播放缓冲水位阈值
标准CDN下载
达到缓存水位后
若PCDN节点不存在资源
则继续使用标准CDN
起播阶段使用标准
CDN拉取资源
SDK
发送探测请
探测PCDN中
是否存在视频资源
若PCN节点存在资源
则换为PCDN响应服务
24. 成本优化 - 单价降低
推送
引流
热榜
热点精准预热
缓
冲
水
位
阈
值
缓冲水位阈值动态控制
热度值
QoE保持不变
PCDN分享率提升
成本降低
25. 成本优化 - 单价降低
调控前带宽波形
优化效果
空闲带宽
调控后带宽波形
调控带宽
点播带宽
空闲带宽得到有效利用
26. 成本优化 - 极致压缩
解决方案
困难
问题
27. 成本优化 - 极致压缩
复杂度特征
视频数据集
视频
多比例压缩转码
码率信息
模型训练
画质特征
码流特征
Ground Truth
压缩比例/质量
预测模型
28. 成本优化 - 极致压缩
Predict
分差<1
高
GT
97
train_loss
100
分差<2
中
96
分差<3
95
80
低
loss for models in training
基准线
98
60
94
40
93
20
92
91
0
0.5
0.6
0.7
compress
0.8
0.9
0
5000
10000
15000
iters
20000
25000
29. 成本优化 - 极致压缩
画质特征
基准转码
前置增强修复
复杂度特征
码流特征
场
景
划
分
模型预测决策
编码&合成
基础信息提取
60 % 40 %
普通转码 极致压缩
压缩率
压缩率
30. 成本优化 - 利用率治理
有效利用流量
正常播放
预缓冲
预加载
损耗流量
CDN实际计费流量
流量利用率
有效利用流量
CDN实际计费流量
Socket Buffer
31. 成本优化 - 利用率治理
现状一
正常播放
问题
预缓冲
建立完善的版本流量利用率漏斗,并加入灰度报告中
严格监控每个版本产生的流量浪费情况
预加载
正常播放
预加载
预加载
预加载
预加载
预缓冲
预加载
治理方案
版本迭代时,无法有效衡
量播放策略的优化对CDN
成本带来的影响变化
CDN实际流量
网络下载流量
播放下载流量
用户观看流量
32. 成本优化 - 利用率治理
现状二
正常播放
问题
治理方案
依据前述漏斗数据,并进行A/B实验
确定最佳阈值大小
预缓冲
预加载
预加载
预加载
预缓冲/预加载/buffer的
阈值大小依据工程师经验
设置,无法确定合理性
QoE提升
成本体验拐点
成本
阈值大小
33. 成本优化 - 利用率治理
CDN峰值带宽
治理前
效果一
流量利用率
60 % 70 %
治理前 治理后
治理后
不再出现因策略变更导致的带宽突增问题
效果二
流量利用率提升明显,流量浪费大大减少
34. 04
总结与展望
35. 总结与展望
播放体验
网络策略
播放成本
应用策略
单价
播放策略
大数据
利用率
码率
A/B实验
AI+
36. 总结与展望
H266
端侧增强
37. Thanks