快手直播平台演进之路

 

快手做为目前世界上领先的直播平台,在业务形态不断拓展的过程当中,也经历了直播架构的不断演变,从彻底采用第三方解决方案,到目前自建源站、自研连麦解决方案、自建超高密度转码集群,搭建起了一套高稳定性的直播架构系统,全程把控了端到端的体验,不断根据用户体验在各个技术维度上进行打磨。本文来自郭亮在LiveVideoStackCon2019北京站上的精彩分享。算法

 

文 / 郭亮缓存

整理 / LiveVideoStack网络

 

你们好我是郭亮,目前负责快手的直播架构和算法团队。很高兴今天有机会给你们分享“快手直播平台架构的演进历程”。首先,我会简单说明一下快手直播平台的现状;接着,我会详细介绍快手直播平台在近一两年的成果以及架构的演进,以及对用户体验、QoS、QoE、成本等的影响;最后,针对5G+AI下的音视频技术发展趋势,抛砖引玉,和你们一块儿探讨。架构

 

1、 快手直播平台的现状并发

 

快手的DAU超过2亿,直播日活超过1亿,天天短视频上传量超过1500w。做为世界上领先的直播平台,拥有最大的活跃用户数、每日直播房间数,以及同时在线观众数。面对如此大的用户规模,如何打造一流的直播平台,实现一流的直播体验,是咱们团队一直在深挖的课题。框架

 

在快手,并发在线的直播间数量和观众数量都是很是高的。这是因为快手一直坚持的普惠原则,在分发策略上对中小主播的侧重,再加上用户间长期积累的信任关系,使得平台活跃主播数量远远超过其它平台;其次,快手的业务场景是多样性的。多样化的业务,包括连麦、PK、聊天室、KTV、游戏直播等,覆盖了目前音视频技术的各个主流细分场景。此外,快手覆盖的用户群很是广,用户遍及城镇和乡村,有着多种多样的复杂网络环境,这对于直播清晰度和流畅度提出了很是大的挑战。为了应对多样化的业务场景和复杂的网络环境,保证用户直播的体验,快手对直播系统作了大规模的投入和优化,在架构、自研协议、算法等几个方面持续迭代。ide

 

目前业内通用的直播架构都是相似这样的:各家CDN厂商均基于标准的RTMP协议,提供推流、录制、分发等服务。同时一些第三方RTC服务提供商,也会提供连麦和PK的解决方案。站在集成的角度,快手理论上只要把业务集成到第三方标准服务上,同时完成UI、业务层的开发,就能够搭建一套完整的系统,咱们一开始也是采用相似的方式知足了业务的基本需求。然而,随着系统规模的扩大,咱们对用户体验的要求愈来愈高,这种方案会存在典型的木桶效应,主要痛点有:高并发

 

故障没法自主调度采用CDN分发,主播推到某家CDN已经提早设定好。当CDN在局部发生可用性或质量降低时,没法作到经过自主调度,无缝切换到其余CDN,致使该区域用户均没法观看这个主播的直播,会很是影响业务的可用性。工具

 

转码质量没法统1、扩展难、成本高:业界转码方案多样,质量与成本良莠不齐。为了保证用户体验,一种可能的作法是要求各家针对快手统一架构与质量,这无疑存在工程量大、响应需求周期长的问题。不少CDN厂商提供的转码用软件实现,成本很是高,也没法弹性扩展。通过详细调研与慎重考虑,在快手的业务与体量下,自建源站+转码集群是最优的方案。性能

 

●推流质量不佳,难以优化:现有RTMP的推流框架,是基于TCP的,在弱网传输方面有数日生的弱点。而主播一旦卡顿,全部观众都会卡,所以咱们必须首先保证主播推流的稳定性。此外,在网络层面直播推流与连麦也须要统一的传输策略,不然二者相互竞争,会直接影响直播与连麦的质量,本身跟本身打架。所以采用统一的上行推流协议势在必行。而跟上面转码同理,要依赖于第三方来作统一的上行优化,是基本不可行的。快手拥有比较强的音视频传输算法团队,但愿经过自研算法,提高直播推流的可靠性和稳定性,提高用户体验。

 

●可扩展性差:采用第三方方案,面临着没法快速迁移和扩展的问题。快手处于高速发展期,业务需求迭代频繁,业务种类增加迅速,高扩展性是知足业务快速迭代的基础。

 

 

基于以上这些考虑,快手迫切的须要自研更适合快手业务和技术形态的直播源站架构与私有传输协议,结合自研算法的落地,为用户提供高品质的直播体验。

 

如下经过快手直播技术平台发展的三个阶段,详细介绍快手直播平台的演进之路。

2、 快手直播平台的技术演进

 

1. 快手直播平台1.0

 

快手直播平台的1.0着重解决两个短板。一个短板是快手没法使用自研的推流协议,在这方面快手自建了源站,用本身的私有协议KTP进行推流。基于自建的源站,快手拥有了CDN调度的能力,这样对容灾和风险的把控就会很是强,解决了第二个短板。

 

A. 源站的稳定性设计

 

快手对稳定性要求很是高,自建源站必须有高可靠、高并发和易迁移的特性。高可靠主要体如今必须有必定冗余,并且能够自动且无痛降级到CDN,确保线上服务在各类异常状况下的稳定性,如专线故障、流量突增、单家CDN质量降低等;高并发主要体如今支持单源站扩容,一个源站能够快速稳定扩到一倍以上的规模,还支持水平扩展,可以支持快速的新建一个源站,这样对房间的支撑能力和分发能力都有高并发的扩展,能够很好的支持各类突发流量;易迁移则体如今快手是第一家基于兼容多家公有云基础平台设施的自建源站,能够很好的规避各类风险,包括稳定性和质量风险、商务风险等,能够同时兼容多家公有云平台的基础设施。

 

 

B. 基于KTP的推流

 

KTP协议是快手自研的传输协议,支持直播推流、RTC实时音视频通讯、短视频上传等多种业务。去年快手的周超博士在ArchSummit上有一个详细的分享【快手多媒体传输算法优化实践】。KTP是快手基于UDP的自研传输协议,用于优化快手直播推流、PK/连麦等业务的体验。该协议主要包括网络控制部分和信源信号联合优化部分,包括拥塞控制,视频清晰度、流畅度相关的联合优化,对该协议有兴趣的同窗能够参考上述连接的介绍。经过跟各类公开协议的对比PK,不管是RTMP,仍是如今比较热的QUIC协议,快手KTP都有诸多明显的优点。

 

 

C. CDN智能调度

 

自建源站赋予了快手CDN调度的能力,即各家CDN都须要来快手自建源站进行回源拉流。快手源站经过控制各CDN的流量比例,在质量和成本间取得最好的折衷。然而,快手体量庞大,须要同时使用多家CDN,而各家 CDN 的质量、价格良莠不齐,以及常常有一些不可预知的突发情况,所以,经过人工调度的方式,显然是没法接受的。快手经过自研智能CDN调度系统,精确捕捉 CDN 与用户的动态变化,从而更合理地利用CDN 资源,且大大下降观看故障时长,节约大量人力监控和维护成本。

 

二、 快手直播平台2.0

 

快手直播架构1.0,一方面,使用自研协议KTP来提高质量;另外一方面,经过CDN的智能调度算法,必定程度保证了稳定性。快手的直播平台2.0则主要解决连麦问题。因为业务不断在提出各类需求,对体验要求高,若是使用第三方的方案,在产品迭代速度上会受比较大的影响。在快手直播平台2.0阶段,快手重点投入到了自研的RTC方案中。在RTC场景中,快手但愿达到400毫秒如下的端到端延迟,有很好的丢包无感知特性,同时直播/连麦能无缝切换,支持PK和K歌等高级功能。

 

 

A. 音频优化

 

在音频处理上快手除了有本身的3A算法外,还作了针对高音质的回声抵消和去噪。另外一方面,快手也具有KTV的功能,全民K歌、唱吧相似的混响效果都彻底知足,同时部分效果针对不一样K歌人群作了专业级调校的音效。

 

音频算法方面,快手设计了自适应码率算法,对主包和冗余包在不一样网络下的配比、切换的时机等作了精细的调整,在jitter控制层面,支持音乐场景和通话场景下两种jitter模式无缝切换的双jitter模式。

 

 

B. 基于KTP的连麦

 

快手的连麦也是基于KTP协议的。与直播同样,KTP同时作了网络控制以及信源信道的联合优化。然而,与直播相比,连麦对延迟的要求更加苛刻,KTP针对连麦这类RTC场景作了深刻的优化,包括对网络状态感知的流量控制算法(NATC)和对编码质量感知的码率自适应算法(QARC),支持动态码率、帧率、FEC/ARQ等,同时还支持多人多链路联合优化、ICE、LTRP等技术。与国内一线RTC的竞品对比,不管是连麦综合质量(清晰度、延迟、流畅度),仍是网络响应速度上,基于KTP的方案,均有比较明显的优点。

 

 

另外一个须要考虑的问题是直播与连麦的平衡,这依赖于方案的选择。一类PK连麦使用的是第三方的解决方案,倾向于服务端混流的方式,另外一类采用的是主播端混流的方案,快手采用的后者,也就是主播端混流方案。

 

在服务端混流,一个问题是成本比较高,可扩展性也差。另外一个是在快手的业务场景中,直播连麦发生切换时,体验不佳。在主播端合流,客户端需推一路延迟能够较大的直播流,同时推一路低延迟的实时连麦流。此时,直播和连麦两路流自然的造成了竞争,如何平衡两者的关系,也直接影响着直播与连麦的质量。在KTP中,经过实时动态的交换直播流与连麦流的网络状态信息与流控状态信息,从而联合做出最佳的决策。

 

至此,快手基本上全部的方案都是自研的,包括快手源站、KTP、直播/连麦方案等,快手直播平台2.0的使命也完成了。

三、 快手直播平台3.0

 

接下来介绍的快手直播平台3.0,这个版本的重点则是快手的直播伴侣、转码集群和游戏多码率自适应。

 

给你们分享一下快手上游戏品类的数据,目前快手游戏直播的日活是3500万(2019年10月快手游戏直播日活增加到4000万),每个月开播的游戏主播超过了200万。用户对游戏直播的刚需,使得它日渐成为一个很是重要的场景,须要咱们团队对这个场景作深刻的优化。

 

 

A. 直播伴侣

 

首先介绍的是快手的直播伴侣。直播伴侣支持多终端(PC、iOS、Android),以及多种模式的投屏,支持超清、高清和标清多档位的推流。这些和虎牙、斗鱼等专业的游戏直播比较相似。

 

此外,快手还有丰富的主播工具,例如语音播报、主题挂件、竞猜、榜单等,使得快手直播伴侣有一个很是丰富的产品形态。

 

 

B. 超高密度直播转码集群

 

为了保证清晰度,游戏场景的原始推流码率通常都比较高,分辨率要求达到1080p@60fps。但若是让每一个观众都看蓝光或超高清码流,不少用户会因为网络带宽不足而播放卡顿,或者手机性能不足致使的解码渲染卡顿。另外,带宽成本将很是高。同时,随着算法的演进,在转码过程当中应用窄带高清算法能够达到即下降码率又提高质量的效果。而因为云厂商广泛采用软件转码的解决方案,成本很是高。在快手如此体量的前提下,自建基于硬件转码集群就变得很是重要且迫切。

 

 

在转码方案的选型上,咱们作了大量的调研与实验,并与业界的最佳实践作了不少细致对比(感谢Twitch沈悦时博士提供的经验分享)。以下图所示,能够看出,各类方案均有本身的优缺点。

 

整体来讲,软件方案质量最好,成本很是高;基于ASIC或FPGA的方案,转码质量目前没法达到咱们的要求;基于GPU的方案,虽然画质比软件略差,但有高密度、低成本、产品方案成熟的优势。

 

通过多方权衡,快手最终选定了用GPU的方案。这时又面临GPU方案的二选一:Nvidia VS. Intel。在当时,Nvidia的P4和Intel的Xeon E3是两个可选的方案,通过数轮优化后,对比下来,两者转码质量相差并不大。但因为咱们的源站建设在云端,云厂商有不少的P4卡储备用于AI计算。而因为E3在云端主要作媒体处理,AI方面用的并不普遍,虽然它成本比较低,但云厂商都是没有储备的。所以咱们的P4方案是采用云厂商提供的设备,但E3的方案则须要在自建IDC部署,这样就须要咱们的IDC到云厂商有一个大容量的专线,专线的稳定性、容量这些都是须要考虑的因素。通过仔细的评估,快手决定采用E3+P4的混合方案,兼顾质量、成本和稳定性。

 

 

固然,这些方案并非拿过来就能够直接用的,结合快手的业务特性,咱们和Intel以及NVIDIA一块儿联合作了很是多针对性的优化。下图是咱们上线后的一个简单状况:转码的峰值是两万路以上;成本上只有软件成本的四分之一;画质和X264的Medium至关;稳定性方面,采用了混合的方案,有完善的降级(fallback)机制。例如,在硬件问题上,不管是单卡故障、机房故障、仍是专线故障,均可以几乎无缝的降级,确保线上的用户体验不受影响。

 

目前快手也在调研下一代硬件转码解决方案,其中IntelE3的下一代产品还在开发中,NVIDIA T4的HEVC的转码质量较好,可是密度还不够高,成本也达不到咱们目前的要求。FPGA、ASIC方案的编码质量须要进一步优化。咱们也会在硬件转码解决方案领域作持续的关注,包括对结合AI和图像处理能力,对下一代编码标准的支持,为下一代快手的直播转码系统作出最优的一个选型。

 

 

C. 多码率自适应

 

有了多路转码流,咱们就能够在端上采用多码率自适应技术,基于用户的终端设备、网络状态等,动态选择最佳的码率档位,在观看的流畅度和清晰度之间,取得最佳的tradeoff。

 

 

与点播场景不一样,直播的多码率面临着不少新的挑战,例如直播流是实时产生的,在带宽估计方面会面临数据不足引发网络空闲致使估不许的问题;为了保证直播的实时性,客户端的缓存通常也比较小,从而对网络的抗抖动能力不如点播场景;此外,快手的直播推流是基于KTP的,支持推流的动态码率、帧率自适应,而这些信息在客户端是不可见的,当客户端发生卡顿时,难以断定是由于推流卡顿仍是拉流带宽不足致使。另外,传统的直播多码率自适应是基于HTTP切片分发的方案(如DASH/HLS),主要问题是延时大、国内CDN支持很差、可扩展性差。

 

为了应对这些新问题,不一样于DASH和HLS,快手提出了基于流协议的多码率自适应架构,从而大大下降端到端延迟。此外,为了作到网络感知上的千人千面,咱们的传输算法团队还设计了多状态、多目标的码率自适应策略,从而为不一样的用户提供不一样清晰度、延迟、流畅度的自适应策略。咱们将在LVS2019深圳站为你们更详细的介绍这个协议的研发和上线历程,欢迎感兴趣的同窗关注一下。

 

 

以上即是到目前为止,快手直播平台的演进之路。

 

咱们的团队目前在传输算法、音频算法、实时音视频通讯、下一代转码平台等方面持续深刻优化。例如在传输算法方向,咱们的团队今年与清华大学合做发表了三篇CCF-A类高质量学术论文,包括与清华大学媒体所合做发表了两篇ACM MM (ACMInternational Conference on Multimedia),利用深度学习,共同探索了基于质量感知的自适应问题和直播调度;以及与清华网络所合做的期刊TON (IEEE/ACM Transactions on Networking),以控制论与排队论为理论基础,研究了多码率自适应问题,优化观看流畅与清晰度。另外,对于快手孵化的新业务,如小游戏、A站、海外产品等,咱们创建了直播中台,对新业务输出成熟先进的直播解决方案。

3、 快手直播平台的将来发展

 

最后简要聊下5G+AI下直播技术趋势,抛砖引玉。在5G网络下,带宽愈来愈高,延迟愈来愈低;在硬件基础设施上,机器的算力愈来愈强,基于AI的各类算法也愈来愈强大,能够支撑更复杂的算法上线。所以,基础体验会有一个大幅度提高,在快手上将会看到更清晰,更流畅的直播。这一方面源于编解码技术的不断演进,譬如说H264到H265,再到如今正在标准制定阶段的H266;另外一方面,AI技术和视频处理以及编解码的结合,让视频主观质量上提高更多;最后是网络条件的改善,包括基础设施的改善以及5G时代的到来,同时更多先进的算法和协议的落地,都将提高直播的体验。

 

 

除了现有传统的直播方式外,5G+AI会给直播带来更大的想象空间。例如快手最近线上的一个功能:虚拟形象3D直播。以前这类直播或是一些电影拍摄中,都是使用一些可穿戴设备,模拟一我的的动做,加上配音演员实现相似的效果。如今快手已经经过技术摆脱了对设备的依赖,经过一个普通iPhone的摄像头或者PC电脑的摄像头,就能够实现对人脸、表情和肢体的识别,作出更多拟人的动做,对二次元以及不肯意露脸的主播有一个比较大的体验提高。

 

同时,咱们也在自研经过声音转换技术摆脱对声优的依赖,使得快手任何一我的的声音均可以转化到目标的声音上。咱们也但愿这些技术能早日成熟,提高整个虚拟直播的体验。

 

 

5G的时代,泛在的无线网络可让人们随时随地看电视。快手也在不断进行这方面的探索。今年的“十一”阅兵,快手进行了7路特殊视角的70小时直播,总观看人次超过十亿。咱们让更多的用户透太小屏幕感觉国家正在发生的事情,正如咱们最新的广告语“在快手,看见真实的中国”。

 

 

以上即是我演讲的所有内容,但愿与你们在5G+AI的技术浪潮中共同探讨直播架构的后续演进。

相关文章
相关标签/搜索