《快手在大数据驱动下的直播体验优化》由会员分享,可在线阅读,更多相关《快手在大数据驱动下的直播体验优化(39页珍藏版)》请在金锄头文库上搜索。
1、快手在大数据驱动下的 快手在大数据驱动下的 直播体验优化 直播体验优化 演讲人 罗喆演讲人 罗喆 2017-07-082017-07-08 1 个人简介个人简介 移动直播系统的构建和调优 移动直播系统的构建和调优 基于大数据的直播质量监测系统 基于大数据的直播质量监测系统 音视频传输协议优化 音视频传输协议优化 2 快手视频技术部快手视频技术部 罗喆罗喆 目录目录 快手直播业务简介和快手直播业务简介和面临的问题 面临的问题 直播全链路质量监控和大数据处理直播全链路质量监控和大数据处理PipelinePipeline 几个数据驱动的体验优化案例 几个数据驱动的体验优化案例 挑战与规划 挑战与规划
2、 3 快手直播业务的特点 快手直播业务的特点 矛盾统一的目标:矛盾统一的目标: ? 更清晰 vs 更流畅更清晰 vs 更流畅 ? 首屏秒开 vs 低延时 首屏秒开 vs 低延时 2017风口仍在2017风口仍在 流量集中 流量集中 精细优化 精细优化 普通人直播 普通人直播 场景丰富真实 场景丰富真实 用户分布广 用户分布广 规模大 规模大 多CDN 多CDN 4 快手直播业务的特点 快手直播业务的特点 5 快手直播快手直播面临的问题面临的问题 体验问题体验问题多且杂 多且杂 多多CDNCDN协调 协调 网络环境错综复杂网络环境错综复杂 6 系统性优化系统性优化的的方法论 方法论 痛点的优先级
3、 痛点的优先级 数据驱动 数据驱动 规范化流程 规范化流程 7 痛点优先级 痛点优先级 播放失败 播放失败 绿屏 & 黑屏 绿屏 & 黑屏 音画不同步 音画不同步 跳帧 & 帧率低 跳帧 & 帧率低 不能忍的 不能忍的 卡顿 卡顿 首屏 首屏 清晰度 清晰度 延时 延时 还能看的 还能看的 8 数据驱动的优化方法论 数据驱动的优化方法论 数据监测机制 数据监测机制 识别痛点 识别痛点 制定优化方案 制定优化方案 灰度验证 / AB测试 灰度验证 / AB测试 全量上线 全量上线 9 快手直播快手直播全链路质量监控全链路质量监控 10 直播系统框架 直播系统框架 预处理 预处理 采集 采集 编码
4、 编码 推流端 推流端 播放端 播放端 解码 解码 同步 同步 播放 播放 传输 传输 (CDN) (CDN) 11 SDK推流端质量评价 SDK推流端质量评价 麦克风 麦克风 摄像头 摄像头 音频前处理 音频前处理 去噪 变声 耳返 去噪 变声 耳返 视频编码 视频编码 硬编 软编 参数 硬编 软编 参数 音频编码 音频编码 编码参数 编码参数 协议封装 协议封装 码率自适应 码率自适应 源站 源站 分辨率 分辨率 帧率 帧率 机型 机型 系统 系统 CPUCPU占用占用 内存占用 内存占用 视频客观质量 视频客观质量 帧率 帧率 采样率 采样率 声道 声道 源站运营商 源站运营商 源站地理
5、位置 源站地理位置 码率 码率 丢帧数 丢帧数 卡顿次数 卡顿次数 视频前处理 视频前处理 去噪 美颜 特效 去噪 美颜 特效 12 SDK拉流端质量评价 SDK拉流端质量评价 cdn边缘节点 cdn边缘节点 同步 同步 http-flv http-flv 接收缓冲区 接收缓冲区 视频解码 视频解码 音频解码 音频解码 播放 播放 节点运营商 节点运营商 地理位置 地理位置 ping值 ping值 开播缓冲区开播缓冲区长度 长度 卡顿次数 卡顿次数 卡顿时长 卡顿时长 DNS解析 DNS解析 首包时间 首包时间 发送端至接收端延时 发送端至接收端延时 同步检测 同步检测 帧率 帧率 首帧时间
6、首帧时间 13 快手直播质量数据处理Pipeline 快手直播质量数据处理Pipeline 14 快手直播质量数据处理Pipeline 快手直播质量数据处理Pipeline 数据采集 数据采集 数据缓存 数据缓存 数据分类/处理 数据分类/处理 数据索引/展示 数据索引/展示 APP APP APP Kafka APP Elastic Search&Kibana Hive APP Flink Hadoop 15 用户体验质量(QoE)数据可视化监测 用户体验质量(QoE)数据可视化监测 同时直播房间数 08:00 08:00 12:00 12:00 16:00 16:00 20:00 20:0
7、0 直播同时在线人数 直播同时在线人数 08:00 08:00 12:00 12:00 16:00 16:00 20:00 20:00 直播跳出率 直播跳出率 16 服务质量(QoS)数据可视化 服务质量(QoS)数据可视化 17 服务质量(QoS)数据可视化 服务质量(QoS)数据可视化 南海 诸岛 18 QoEQoE & QoSQoS 19 房间同时在线人数房间同时在线人数 进入房间人数进入房间人数 退出房间人数退出房间人数 实时带宽实时带宽 QoEQoE & QoSQoS 20 各节点进入房间人数各节点进入房间人数 各节点退出房间人数各节点退出房间人数 CDNCDN标准化管理 标准化管理
8、 多CDN 多CDN 各CDN架构不同,策略不同 各CDN架构不同,策略不同 测试工作需要覆盖全部CDN 测试工作需要覆盖全部CDN CDN侧也需要能主动跟进质量问题 CDN侧也需要能主动跟进质量问题 需要统一的质量评价标准 需要统一的质量评价标准 核心指标质量监控自动化 核心指标质量监控自动化 提供客户端数据,联合调优 提供客户端数据,联合调优 21 快手直播系统优化快手直播系统优化案例案例 22 ? GOP0 GOP1 GOP2 CDN ? ? CDN? ? ?/? ? 开播跳帧优化 开播跳帧优化 开播前10s跳帧时长 开播前10s跳帧时长 24 推流推流 CDN1CDN1 CDN2CDN
9、2 CDN2CDN2 开播跳帧优化 开播跳帧优化 Gop0:2s Gop0:2s Gop1:3s Gop1:3s Gop2:1s Gop2:1s 0.5s 0.5s 4.5s 4.5s 6.5s 6.5s bufferlimit = 5s bufferlimit = 5s Gop0:2s Gop0:2s Gop1:3s Gop1:3s 3s 3s 3s 3s 6s 6s 拉拉流流端从此时端从此时 开始拉流 开始拉流 25 开播跳帧优化 开播跳帧优化 多家CDN上线灰度 多家CDN上线灰度 同一CDN灰度覆盖节点/未覆盖节点AB TEST 同一CDN灰度覆盖节点/未覆盖节点AB TEST 数据对
10、比观测,逐步扩大灰度范围 数据对比观测,逐步扩大灰度范围 优化前日均值:1500ms 优化前日均值:1500ms 优化后日均值:200ms 优化后日均值:200ms 26 CDN端的优化已经到瓶颈 CDN端的优化已经到瓶颈 开播跳帧优化 开播跳帧优化 客户端进一步优化客户端进一步优化 27 缓慢快进方案缓慢快进方案 开播跳帧优化 开播跳帧优化 AB TEST 数据 AB TEST 数据 百秒卡顿时长 百秒卡顿时长 百秒卡顿次数 百秒卡顿次数 跳帧时长 跳帧时长 14.6% 14.6% 19.8% 19.8% 0 0 28 统一评价统一评价 标准 标准 统一各CDN数统一各CDN数 据下发策略
11、据下发策略 找到CDN极限找到CDN极限? 客户端进一步优化 客户端进一步优化 评价各评价各 CDN质量 CDN质量 灰度测试灰度测试? 数据对比 数据对比 AB TESTAB TEST? 验证优化效果 验证优化效果 数据平台 数据平台 开播跳帧优化小结 开播跳帧优化小结 29 首屏优化-首屏优化-httphttpDNS DNS DNS解析 DNS解析 CDN节点CDN节点 建连 建连 收到收到 首包 首包 收到完整收到完整 一帧数据 一帧数据 解码解码? 第一帧 第一帧 渲染渲染? 第一帧 第一帧 首帧时间 首帧时间 30 首屏优化-首屏优化-httphttpDNS DNS localDNS
12、localDNS: : 31 APPAPP 运营商运营商DNSDNS ServerServer CDNCDN GSLBGSLB 域名解析请求域名解析请求 IPIP IPIP httpDNShttpDNS: : APPAPP CDNCDN httpDNShttpDNS APIAPI 域名解析请求域名解析请求 IPIP 域名解析请求域名解析请求 尝试CDN 302跳转解决方案 尝试CDN 302跳转解决方案 播放端 播放端 CDN调度节点 CDN调度节点 CDN拉流节点 CDN拉流节点 发起拉流请求 发起拉流请求 返回302跳转连接返回302跳转连接? 直连拉流节点 直连拉流节点 再次发起拉流请求
13、 再次发起拉流请求 返回媒体数据 返回媒体数据 优点: 优点: 客户端不需要发新版? 优化了拉流节点选择? ? 缺陷: 缺陷: 仍然需要进行localDNS? 需要发起两次拉流请求? iOS ATS 限制直接访问ip 首屏优化-首屏优化-http-httpDNS DNS 32 首屏优化-首屏优化-httphttpDNS DNS TTL TTL 网络切换网络切换? 前后台切换 前后台切换 localDNSlocalDNS httphttpDNSDNS SPEEDSPEED? TEST TEST HOSTIP HOSTIP 拉流 拉流 直接访问节直接访问节 点ip 点ip AB Test AB T
14、est 卡顿上升卡顿上升? 观看时长下降 观看时长下降 测速导致用户测速导致用户 大量聚集在少大量聚集在少 数节点 数节点 33 TTL TTL 网络切换网络切换? 前后台切换 前后台切换 localDNSlocalDNS httpDNShttpDNS SpeedSpeed? Test Test HOSTIP HOSTIP 拉流 拉流 直接访问节直接访问节 点ip 点ip Shuffle Shuffle 首屏优化-首屏优化-httphttpDNS DNS 34 首屏优化-首屏优化-httphttpDNS DNS AB TEST 数据 AB TEST 数据 百秒卡顿时长 百秒卡顿时长 百秒卡顿次数 百秒卡顿次数 连接失败率 连接失败率 20% 20% 17% 17% 2个百分点 2个百分点 首屏时间 首屏时间 30% 30% 35 挑战与规划挑战与规划 36 挑战挑战 1.1.数据规模高速增长 数据规模高速增长 2.2.实时性要求更高实时性要求更高 3 3. .更加丰富的数据监控维度更加丰富的数据监控维度 37 规划规划 音视频传输全流程实时音视频传输全流程实时、智能监控智能监控 私有推流协议私有推流协议,弱网优化弱网优化 多多CDNCDN智能调度智能调度 38 Thanks 39