快手与直播延迟卡顿较劲的这些年

2020 年 7 月 03 日

快手与直播延迟卡顿较劲的这些年

2020 年,COVID-19 成为“世界的通用语言”,截止 7 日 2 日,全球累计确诊超过 1071 万人。目前,虽然世界各国不再提倡全民主动宅家战“疫”,但人们原先正常的工作节奏和社交习惯已被打破,各行各业出现了裁员潮。


疫情之下,百业凋零。而一场疫情却将宅文化与宅经济再次带入到大众的视野。宅文化源自于上世纪 80 年代的日本,当时众多日本青少年、无业者以及在职员工沉迷于游戏和动漫,促使日本的 ACG 产业(Animation 动画、Comic 漫画、Game 游戏)得到了快速发展。而现状之下,游戏产业似乎再次成为了时代的宠儿。


在疫情最严重的 3 月底,Newzoo 市场分析师曾发文表示,根据 Verizon 的报告,高峰时段的游戏流量较前一周增加了 75%。同时 Twitch 和 YouTube Gaming 收看率较前一周均至少增长了 10%。管中窥豹看本质,人们在疫情期间花费了更多的时间在电子游戏上,由此直接拉动了游戏直播的飞速发展。



图片来源:快手直播官网


快手作为短视频与直播领域的先行者之一,十分重视游戏直播领域的发展。随着游戏类内容的不断扩充,快手敏锐的观察到由于游戏直播兴起给通信技术带来了严峻的挑战。近日,快手正式发布了基于流式的直播多码率自适应标准 LAS(Live Adaptive Streaming),其用于提供低延迟、平滑、流畅的直播体验。快手科技算法科学家、传输算法团队负责人周超博士表示,快手已将 LAS 端到端的解决方案开源,帮助业界更多用户实现零门槛接入和使用 LAS 解决方案。


拿来主义真的好吗?


从 2016 年开始,快手开始着手组建音视频技术团队。到了 2018 年,快手开始关注到多码率自适应的问题,而受限于当时团队人手不足,无法集中进行开发。2019 年,随着直播业务的快速发展,快手游戏直播业务激增,多码率自适应方案再次被团队提上日程。


根据 2019 年数据显示,快手的直播 DAU 超过 1 亿,其中游戏直播日活用户数达到 5100 万。周超博士表示,站在用户角度,游戏直播体验至关重要,快手针对其面临的三大痛点:卡顿、模糊与延迟大,进行了针对性的研发。


对于这些问题,单独优化某一个指标并不难,难点在于彼此之间互相制约。例如通过降低码率能降低卡顿率,提升观看直播的流畅度,但降低码率损失了清晰度的体验,会引起直播画面模糊。同时低延迟会带来良好的体验感受,但过低的延迟,客户端的缓存数据也越少,对网络抖动的抗性也越差,又会增加用户的卡顿风险。


面对游戏直播的复杂性,显然单一的视频质量(码率、分辨率)或固定的档位下发策略难以适应,多码率方案已经成为平衡清晰度与卡顿的最佳选择。同时考虑到快手用户的规模庞大且分布广泛,网络差异性较大,究竟如何进行技术选型,这个难题摆在了快手音视频技术团队面前。


周超博士透露,针对多码率方案,当时团队有两条路可以走,一是拿来主义,二是自研之路。


拿来主义:多码率自适应是在抖动网络下保证观看流畅度最有效的手段之一,主要包括 MPEG-DASH 和 HLS 这类国际标准协议。优点在于部署快,见效快。但二者均是基于分片传输,设计之初主要用于点播场景,而非直播。其直接用于直播场景会造成延迟过大,直接影响直播体验,显然对于快手来说是无法接受的。虽然目前 MPEG-DASH 和 HLS 都有低延迟方案的选择,例如 LHLS,但此类方案尚未标准化,离落地应用尚需时日。


自研之路:自主研发一套高清晰、低卡顿、低延迟的直播多码率方案。自主研发相较拿来主义优势明显,首先从前期架构、算法、协议等方面考虑,快手可以自由调控,灵活结合不同业务需求进行优化。其次,对于后期部署而言,自主研发可兼容多种框架、支持多种协议,保证方案的易扩展性。但同时自研的缺点也很明显,方案从零到一各方的不确定性将会是最大的挑战。此外,针对快手而言,直播主要依靠第三方云厂商进行分发,采用自研的方案,意味着需要所有 CDN 厂商配合做定制化开发。


好在快手对于自研新技术应用经验丰富。周超博士透露,已经成熟落地的 KTP 方案便是由快手自主研发,拥有自主的知识产权。当时的快手同样面临两难的选择,经过反复的斟酌与权衡,为了把传输做到极致,快手毅然选择了自研 KTP 方案。目前,KTP 方案已全面用于快手的各项业务,应用反馈良好,这也让直播多码率方案团队拥有了更坚定的信心。


自研之路 = 理想的思路 + 执着的坚守


丰富的自研经验以及团队的坚定信心,让快手再次走上了自研之路。周超博士强调,已有的解决方案均存在不足,难以满足快手对于业务发展的需求。因此,快手自主研发了一套基于流式的直播多码率自适应方案,其目标是在支持直播码率自适应的同时,实现流式直播的低延迟。


低延迟与清晰度兼顾的自研思路


总体而言,本次快手推出的直播多码率自适应方案包含两大特性:一是基于流式传输,保证低延时;二是支持多码率,依据每个用户的网络状态,自适应选择最佳的视频清晰度。



与传统的基于分片的多码率架构相比,基于流式的直播多码率能提供更低的延迟,在架构上也有一些特性,主要包括:


转码:不同于 MPEG-DASH 或 HLS,基于流式的直播多码率方案在转码时不需要进行切片操作,只需在转码时保证不同的转码流 I 帧的 pts 严格对齐,从而保证视频流的无缝切换


CDN 功能升级:CDN 侧也即基于流式的直播多码率方案的服务侧,需要升级支持三种拉流模式,即默认位置拉流(传统拉流模式)、绝对位置拉流(指定吐流绝对位置)与相对位置拉流(指定吐流相对位置)


自适应算法:在自适应算法上,与分片传输的策略相比,基于流式的传输逻辑会一定程度增加自适应算法的难度(例如在流式传输中,因为源数据实时产生,观测到的平均带宽值近似等于当前请求的视频码率,无法反应真实的带宽),但流式架构更加灵活,并且能显著降低分片架构中存在的传输 ON-OFF 现象,从而降低了码率切换过于频繁的问题。周超博士指出,快手针对流式的直播多码率方案,设计了一套高效的自适应算法 ,并将具体实现对外开放


自研之路没有秘诀只有坚持


起初,基于已有的自研经验,快手自研之路还算顺利。周超博士表示,当时团队内部氛围积极乐观,预估三至五个月后方案便可上线。团队之外,CDN 厂商也都十分认可这套架构,配合度极高,解除了方案落地的后顾之忧。


但理想很丰满,现实很骨感。经过四个月的开发与联调工作,直播多码率自适应方案进入了灰度与 AB 测试阶段。最终,迎接团队的不是成功的惊喜,而是失败的心灰意冷。根据反馈数据显示,无论是卡顿率等 QoS 数据,还是时长等 QoE 数据都呈现负向。周超博士透露,当时就连自己都产生了自我否定,开始怀疑是否是多码率自适应算法设计存在缺陷。


到底为何数据会呈负向,周超博士和团队开始了漫长的求证和优化过程。首先,周超博士对算法的逻辑和实现进行了反复检查,基本排除了算法的因素。接着数据负向排查持续进行了数月,但方案收益依然颗粒无收,直播多码率自适应方案一度变成了烫手山芋,甚至到了搁置的状态。团队内部氛围十分低落,方案优化更是无从下手。


自研之路没有秘诀只有坚持。周超博士认为,做事情总该有始有终,为了激励团队,自己硬着头皮重新梳理了整个方案,责任到人,逐个环节去跟核心开发人员核对预期需求和具体实现情况。强迫团队内部开始行动,基于数据驱动,采用加埋点、AB 测试、数据分析与优化不断循环的方式,不断发现问题、解决问题。


经过数月的分析与优化,2019 年 10 月直播多码率自适应方案存在的问题全部得到了解决。并在“实战”的游戏直播中,成功的保证了直播视频的清晰度、卡顿率与延迟,用户时长等 QoE 收益增长明显。当游戏直播的收益开始凸显,快手 APP 也决定采用该方案提升站内直播体验。目前,这套方案已经全面应用于快手的各项直播业务。


以开源驱动行业发展


鉴于此,直播多码率自适应方案开始逐步实现标准化与方案开源。周超博士表示,一方面,随着方案的收益稳步提升,获得了诸多的肯定。另一方面,考虑到如今市面上没有针对直播多码率标准的方案,这也许是快手为业界作贡献的好机会。经过团队内部的协商,正式将该直播多码率方案命名为 LAS,目前快手已经将整套方案重新梳理,形成 LAS 的标准文档,并已正式开源。


行业要发展,标准须先行。快手选择做标准与开源,主动对外开放技术,只是希望可以帮助其他企业少走些弯路,毕竟直播多码率自适应方案从开始调研,实现再到全量,快手解决了方案和架构选择、工程实现、算法优化等诸多问题。


至于超越,我觉得这也是一种好事,说明 LAS 还有很大的优化空间,周超博士解释道,快手从不怕“别人偷技术”。其实开源的意义也在于开放心态和乐于分享,这标志着一个项目可以汇集多支团队的智慧,也许困扰你的难题便会迎刃而解,这和闭门造车的理念形成了鲜明的对比。


目前,LAS 开源涵盖服务端、客户端和自适应算法。阿里云、腾讯云、百度云、金山云、网宿云等云厂商均已支持 LAS。此外,业内知名开源流媒体服务器 SRS 也已支持 LAS,基于 SRS 4.0 及更高版本,企业客户也可搭建自己的 LAS 服务端以满足个性化的需求。在客户端,快手已经开源了 LAS Web 的实现,包括协议、架构和自适应算法。


当下只是 LAS 1.0,未来 LAS 还将进一步完善优化,主要包括以下几个方面:


跨平台:未来快手希望可以实现跨平台的支持,例如移动端的支持和开源。


多协议:在协议层面,目前开源的版本是基于 HTTP-FLV 的实现,未来可以支持更多协议,例如 WebRTC、QUIC 等。


全链路:LAS 目前主要是针对拉流端的多码率自适应方案,未来将涵盖推流、转码,打造一套全链路的解决方案。


自适应算法:自适应算法是 LAS 高效性的保障。快手拥有完善的测试环境,AB 系统,为新算法的对比、迭代优化和落地奠定了基础。


嘉宾介绍



周超博士,毕业于北京大学,曾任职于华为 2012 实验室。现任快手科技算法科学家,快手传输算法团队负责人。主要研究方向包括多媒体处理与通信、流媒体传输优化等,发表论文 40+,申请专利 50+,曾获得 2012 年 IEEE VCIP Best Sthttp://url IEEE VCIP Best Paper Award。


如欲了解 LAS 的详细文档、架构、部署方式、测试数据等,可以登录 LAS 官方网站


2020 年 7 月 03 日 16:131710

评论

发布
暂无评论
发现更多内容

df 和 ls 命令执行夯主

首富手记

生产力

阿里的OceanBase上天了,但你还不会用Explain看SQL的查询计划吗?

Super~琪琪

MySQL 数据库 后台开发 后端

重新开始,被自己搞砸的生活

小天同学

个人感想 日常思考

实战 Java8-CompletableFuture

lee

Java 多线程 java8 CompletableFuture

我们都可能陷入经济困境

七镜花园-董一凡

生活

自制操作系统

贾献华

ARTS打卡 第1周

引花眠

ARTS 打卡计划

不要抱怨,也别憋屈

孙苏勇

职场 随笔杂谈

程序员的修行之路-关于编程语言

牧马人

程序员人生

linux 账户及安全管理(一 账户管理)

牧马人

Linux

短视频时代下的知识摄取

Neco.W

学习 知识管理 知识体系 短视频

世界那么大,你有偏见吗?

谢锐 | Frozen

创业 技术管理

Java运算符实际运用

凌轩

Java 编程语言

ARTS week 1

丽子

Java开发工具与HelloWorld

编号94530

Java eclipse Hello World ! IDEA 开发工具

系统化服务构建-软件工程分层

图南日晟

微服务 软件工程 架构设计

关于用户体验的一些思考

brave heart

android 产品开发

我的时间管理之路(附工具集合及使用心得)

YoungZY

App 时间管理

美国播客节目《指数视角》专访李飞飞:疫情、 AI 伦理、人才培养

神经星星

人工智能 程序员 李飞飞 硅谷 AI 伦理

这个名字,你不能再读错了

小天同学

历史 科普

数据产品经理实战-DMP搭建

第519区

产品经理 营销

Flink 完美搭档:数据存储层上的 Pravega

Apache Flink

大数据 flink 流计算 实时计算

RabbitMQ消费者

云淡风轻

学习 RabbitMQ

【转载】如何在团队中做好Code Review?

北纬32°

docker19.03读取NVIDIA显卡

首富手记

Docker Dockerfile

如何在团队中做好Code Review

Ken

团队协作 代码审查 Code Review 代码质量

C#刷遍Leetcode面试题系列连载(1) - 入门与工具简介

Python名人堂

C# .net 算法 LeetCode

怎么控制老板不断加需求?

kimmking

RabbitMQ路由

云淡风轻

读书笔记 RabbitMQ

谈谈控制感(10):怎么做一个靠谱的人

史方远

职场 心理 成长

字符与编码

引花眠

计算机基础 utf-8

快手与直播延迟卡顿较劲的这些年-InfoQ