首页 > 其他分享 >视频大时代下基础架构的演进

视频大时代下基础架构的演进

时间:2023-08-02 16:04:40浏览次数:38  
标签:视频 架构 演进 转码 快手 业务 基础架构


过去十年,随着端上算力和通讯能力的提升,我们见证了一个业务玩法日趋复杂、用户覆盖遍及全球的视频大时代的诞生。近几年,多个市值千亿以上的泛视频公司得到广泛关注,其背后支撑业务高速迭代、承载核心技术的视频基础架构也慢慢浮出水面。视频基础架构包含哪些核心能力,在过去和现在经历着怎样的演进,对未来我们又该如何期许?在本次LiveVideoStackCon 2021音视频技术大会 北京站,快手短视频架构负责人黄琦结合多年来对行业的观察与在快手的自身实践,和大家一起探讨视频大时代下基础架构的演进。

文 | 黄琦

整理 | LiveVideoStack

我是黄琦,来自快手音视频技术部,担任短视频架构负责人。在加入快手之前,我曾在Facebook工作八年有余。2014年底,Facebook决定大力投入视频时,我有幸作为第一个工程师参与组建视频基础架构团队,并推动了视频架构的持续演进。

基于我多年来的工作经验与思考,本次分享将从视频基础架构、快手视频架构演进案例以及未来展望三个板块展开。

1. 视频基础架构

在快手,当谈及怎么做视频基础架构,我们看到最多的是这样一张图。

视频大时代下基础架构的演进_python

图1

上图呈现了音视频技术部为快手整体业务提供的多样化能力:直播、短视频以及RTC等。这些能力作为基础架构的一部分,支撑了业务的高速迭代。但是,当细化到视频基础架构的实现路径、核心目标时,图1的表达还远远不够。

视频大时代下基础架构的演进_大数据_02

图2

首先,我们看视频基础架构的位置。在图2中,它依赖于底层的基础资源,IaaS层向其提供了存储、计算和带宽能力,与视频基础架构进行融合,再结合音视频的独特能力,为上层视频业务提供平台支撑。从云计算的术语来讲,视频基础架构更像PaaS层。

其次,我们看视频基础架构的目标。在面向业务的过程中,首要目标是适应业务变化并进行架构优化,实现高速迭代。在不同迭代周期,业务面对的瓶颈不断变化,我们需要调整架构来适配业务趋势。架构的不断调整,从而完成了不同能力的封装。由于视频基础架构使用了庞大的资源,所以第二个目标便是精细化运营,极致降低视频服务的成本。最后,由于视频基础架构依赖于底层基建的资源和能力,其本身的性能与成本瓶颈也受限于底层的技术水平,那么第三个目标便是不断推动IaaS层进行迭代升级。总结来说,处于中间层的视频基础架构,需要承担向上、内部以及向下三个目标,其核心逻辑是一致的,就是降本增效。

视频大时代下基础架构的演进_大数据_03

图3

为什么在视频基础架构工作中,强调降本增效的重要性呢?

与图文时代相比,视频对资源的需求呈指数型增长,这意味着我们已经从轻工业进入到视频重工业时代。下面分享一组快手的相关数据:音视频领域工程师(包括基础架构、业务等方向)1000人以上;视频处理需要上百万核的计算能力;快手累计视频存储消耗高达EB级;年消耗的视频流量带宽接近100TB。在图文时代,这种量级的资源开销是无法想象的;在视频重工业时代,为了管理如此庞大的资源,要求我们有与之匹配的视频基础架构和高效的运行效率。

视频大时代下基础架构的演进_机器学习_04

图4

在后疫情时代,我们面对这样一个新常态:视频基础设施体量仍在增加,但整体增速减缓。这个变化要求公司从跑马圈地的状态,转变成关注资源整合和效率提升。快手视频基础架构团队也同样要完成这样的使命:通过不断提高人效与精细化管理资源,推动效率提升。

视频大时代下基础架构的演进_python_05

图5

2. 快手视频架构演进案例

下面我将结合快手的案例,从整架构、精运营和促基建三个维度展开,分享快手是如何实现视频基础架构的目标。

2.1 整架构

视频大时代下基础架构的演进_机器学习_06

图6

第一点是整架构。我们通过调整视频基础架构的形态、改善组织能力,从而提升业务效率。

视频大时代下基础架构的演进_编程语言_07

图7

媒体处理是视频行业最核心的能力。在快手场景下,需要让创作者知道视频已开始处理以及处理已完成。在这个处理逻辑中,我们需要生成多码率视频,抽取短视频封面,以及进行语音识别输出字幕。基于这些能力,才能满足短视频业务的基本要求。这一时期,媒体处理功能是基于一系列的基础工具完成的:FFmpeg、MP4Box和Shaka。

视频大时代下基础架构的演进_python_08

图8

这些工具不仅能力强大,而且使用方式灵活,可以很容易地完成上述功能。其优点是只需要几个人就能快速应对业务需求,但随着场景越来越广泛、团队规模越来越大,这个架构就会面临许多问题。

首先是效率问题,工程师如果需要在业务代码中升级FFmpeg版本或转码逻辑,就需要连同业务逻辑一起调整,非常影响迭代速度。同时,由于参与开发的团队很多,业务代码的冲突也时常发生。所以,当快手音视频团队成立后,立刻进行了第一代升级。

视频大时代下基础架构的演进_人工智能_09

图9

在第一代升级中,我们首先进行了解耦(如图9所示)。把底层技术工具封装成独立服务,并且用配置去管理每个服务的调度方式。这种架构的改造初步完成了音视频能力和业务逻辑的解耦。

视频大时代下基础架构的演进_机器学习_10

图10

升级后,代码逻辑变得更简单,具体命令行由服务内部进行维护,业务逻辑仅保留服务的调用。当音视频团队进行转码内部逻辑变更时,业务逻辑无需改变,从而保障了业务迭代速度。

视频大时代下基础架构的演进_编程语言_11

图11

这样的系统可以维持两到三年,但当视频基础能力变得复杂,仍然会遇到一些问题。首先是维护成本高,底层服务虽然完成了对工具能力的封装,但当画质增强、特征提取等新能力出现时,仍然需要不断增加新服务,投入维护成本。同时,业务接入逻辑也越来越复杂。如转码服务增加了分片转码逻辑,而底层服务没有流程管理能力时,业务逻辑就需要关注如何分片、转码后分片如何合并等。底层逻辑变更仍然带来了业务调用逻辑的不断膨胀,模块间的边界越来越不清晰。

视频大时代下基础架构的演进_python_12

图12

在这个阶段,随着快手海外业务、生态独立业务的扩张,代码维护性差、性能相关问题都被进一步放大,快手也进行了第二次架构升级。

视频大时代下基础架构的演进_python_13

图13

这次升级核心围绕两层系统:流程编排引擎和基于FaaS的计算平台。我们将所有转码流程进行了规划(如图13所示)。流程编排引擎以有向无环图的方式对转码流程进行规划、整合和治理。执行过程中,不同能力对应不同函数,每个能力无需独立部署,而是统一交给函数平台进行管理。

视频大时代下基础架构的演进_人工智能_14

图14

这次架构改造带来了两方面的优势。首先是逻辑进一步解耦,业务逻辑对于底层音视频能力的感知进一步弱化,业务逻辑无需关注如何执行,只需完成规划工作。以画质增强的计算为例,规划上只是三个步骤:视频画质增强,进行视频转码和封面抽取工作。规划完成后,执行交给编排引擎和函数平台来完成。其次是性能提升的优势。由于上层只给规划方案,下层计算平台就有了更大的优化空间。比如视频转码的一进多出工作,我们希望用一次解码转出多个转码档位,在上层规划时只需开启一进多出能力,底层调度执行时可以基于计算资源和时间开销的具体情况进行动态规划。

视频大时代下基础架构的演进_大数据_15

图15

目前,快手已基本完成了上述架构的改造,收益十分明显。由于持续解耦业务逻辑,业务只需关心业务逻辑,技术团队只需关注原子能力的提升,无论是算法上线速度还是业务迭代速度,都得到两倍以上的提升。同时流程编排简化了业务逻辑代码,实现了国内、海外和生态业务共享一套逻辑,这样代码量降低到原来的三分之一。基于这样的视频基础架构,整体人效有了成倍的改善。

视频大时代下基础架构的演进_python_16

图16

上述快手的视频基础架构演进历程其实并不独特。我们选取两个在视频基础架构投入巨大的公司:Netflix和Facebook,他们基本上走的是同一条路。2014年以前,Netflix和Facebook分别上线第一套转码系统,和快手第一次架构升级形态几乎一致,都是对底层基础能力进行的服务封装。而从2014年到2019年,Netflix和Facebook都完成了编排引擎和底层函数计算平台相结合的架构升级。有个小插曲,Netflix刚开始做了规则引擎的尝试,这是因为当时没有那么多视频上传,而一旦更新视频算法,需要对过往所有视频进行重转,而规则引擎可以很直观地管理好算法迭代引起的老视频重转触发问题。但Netflix后来发现流程编排引擎涵盖场景更广,可以覆盖其算法研究,从而架构升级到了编排引擎。

当两个公司在没有交流的情况下,架构演进走了相同的路,那么未来的演进路径是否还会一致吗?2019年,Facebook视频基础架构团队和Netflix媒体技术团队进行了圆桌讨论,一起来探讨视频基础架构最终需要解决什么问题,未来系统会如何演进?

视频大时代下基础架构的演进_大数据_17

图17

讨论的结果竟然惊人的一致。架构迭代中要解决的核心问题是让业务只关注要什么,而不是视频怎么来和放在哪里。如果要满足业务希望的接口,整个媒体处理平台的接口应该是函数式编程,而不仅仅是把计算执行交给FaaS平台。如何理解函数式编程?我们认为过去的架构演进是以进程的方式转化成工作流编排方式,而业务关注的核心是资源,是可播放的视频或可展示的图片,而视频具体的码率、从哪里来、什么时候处理,会给业务带来额外的负担。

视频大时代下基础架构的演进_人工智能_18

图18

我们认为未来的架构演进会从面向工作流的编程进化到对资源的函数式声明。一个资源可以是一份文件或是一个函数过程。这样既实现了函数的统一管理,也简化了业务对资源的管理成本。

2.2 精运营

视频大时代下基础架构的演进_大数据_19

图19

在做音视频架构和管理资源时,精细化运营的核心逻辑是如何完成资源之间的高效置换。资源置换关系上有很多固定阈值,使用ROI逻辑可以实现更优化的置换关系。类比程序优化中的时间和空间互换逻辑,视频基础架构的资源管理优化是三种资源的互换:计算、存储和带宽。

视频大时代下基础架构的演进_python_20

图20

首先需要理解视频生命周期,我们选取了三个比较典型的快手视频,横轴是年龄(视频发布至今的总时长),纵轴是年龄时间点对应的用户观看总时长。随着视频年龄的推移,视频都会经历或大或小的波峰。无论波峰多大,大致能分三个周期:爬坡期,观看的人数逐渐增多,视频变得越来越热门;衰退期,观看人数减少;沉默期,在很长一段时间中有零星播放记录,但大量时间是无人观看的。基于这个视频生命周期,需要去思考如何置换资源。

视频大时代下基础架构的演进_python_21

图21

在爬坡期,我们用计算和存储置换带宽,这也就是高热转码。当视频变得热门(播放量越大)时,多花费计算资源进行极致压缩,多产生一个高压缩率档位有可能带来巨大的带宽收益。当视频进入沉默期,我们用带宽置换存储。因为转码产生的存储资源是可再生的,我们对存储进行回收,这带来了多码率档位的减少。码率档位的减少可能会带来带宽的波动,但因为长尾视频占比高,时间越长,越多视频进入沉默期,这些置换带来了巨大的存储收益。

视频大时代下基础架构的演进_大数据_22

图22

精细化运营上有哪些可以改进的呢?关于高热压缩,传统方法是用粉丝数或累计播放量来判断视频是否进入爬坡区。面对爬坡速度很快的视频,这个方法非常有效,一个静态阈值就可以决定这个视频是否应该进行计算到带宽的资源置换。

视频大时代下基础架构的演进_人工智能_23

图23

但对于不那么热门的视频,虽然处于衰退期或沉默期,由于历史累计播放量仍会触发高热,从而浪费转码计算资源。而这部分计算并没有成功置换到带宽。

视频大时代下基础架构的演进_大数据_24

图24

解决这个问题需要两个步骤。首先是播放量预测,采集视频的播放走势,分析其生命周期,然后用AI模型进行训练。当播放数据越多,AI模型越高级,预测拟合度就越精准。比如我们预测某个视频未来播放量的走向如图24所示,那么在T1时刻进行转码, T2时刻转码完成开始分发,未来播放量带来的带宽收益是可折算的。

视频大时代下基础架构的演进_python_25

图25

那么,第二个步骤就是预测ROI。前面提到了带宽收益,转码的开销代价可以从历史数据中挖掘。通过收益和代价两个指标(可以根据带宽节省收益和计算开销费用的折算进行严格排序),是可以决策某个视频是否应该触发高热转码,及高热转码的优先级。如果ROI小于100%,则无需进行高热转码。当计算资源不足时,则严格按照ROI逻辑进行优先级排序,从而实现最重要的资源放在ROI最高视频上。

今年我们上线第一版ROI逻辑时,不仅节省了30%的计算资源,极致压缩档位的播放覆盖率反而提升了15pp,这意味着巨大的带宽节省收益。因为这是套线上自动算法,数据会持续改善AI模型的测算效果,并可以根据线上变更自动调整参数,当新上线编码档位、当服务一个新的业务单元时,我们都可以减少两人月的人力投入。从这里可以看到,精细化运营既节约资源成本也节约人力成本。

视频大时代下基础架构的演进_大数据_26

图26

ROI逻辑不仅用在计算置换带宽,还可以用带宽置换存储。在图26中,横轴是判断一个视频是否进入沉默期的时间阈值,纵轴是带宽成本和回收沉默期视频产生的收益。通过大数据分析和AI模型预测,我们可以找到ROI曲线的顶峰,这里存储节省费用最大化超过带宽开销,我们针对这类视频进行存储回收。基于这样的沉默期ROI算法对存储进行精细化管理,线上表现是节省了50%的存储费用。

2.3 促基建

视频大时代下基础架构的演进_编程语言_27

图27

促基建就是推动基础能力突破瓶颈。视频是一个重工业,我们在降本增效过程中逐渐探测到了基础架构的边际。这时候只有推进底层架构革新,才有可能突破整个技术栈的瓶颈。

图28

促基建的一个方向是网络。在海外市场,快手通过增加更多的网络资源以更好地服务用户,在网络接入上,让用户选择最优质的网络节点。如在上传场景下,通过增加网络接入节点的资源部署,平均视频作品上传耗时缩减20%,上传成功率提升2pp。

视频大时代下基础架构的演进_python_28

图29

促基建的另一个方向是引用新技术。视频基础架构的迫切需求持续推动了底层基建的升级和新技术被采用。近几年,我们看到函数计算平台落地、混部资源池的建立、甚至自研网络KTP协议,还有边缘计算应用到RTC场景——这些都是音视频基础架构团队推进的。无独有偶,Facebook和YouTube也在做类似事情,这是视频基础架构有别于其他基础架构独特的一点。

促基建还体现在硬件上。当视频基础架构探测到整个底层系统的边界时,往硬件扩展也是个思路。自2020年,快手进行了硬件加速器尝试,做了很多异构计算的工作。近几年,硬件话题越来越热,今年YouTube公布了其VCU,早在2019年Facebook公布了其基于加速器的视频转码板卡。

3. 未来展望

为了做好视频基础架构,以三个目标(整架构、精运营、促基建)为牵引,未来终态会是怎样的呢?我认为在不断迭代目标的过程中,不仅会带来业务效率的提升,同时基础能力的产品化程度也会更高。这意味着业务对资源的管理更简单、更便捷。希望工程师们能够拥有更复合的能力,将音视频、数据、AI等多种能力进行整合,在新场景中创造更多可能。


讲师招募

LiveVideoStackCon 2022 音视频技术大会 上海站,正在面向社会公开招募讲师,无论你所处的公司大小,title高低,老鸟还是菜鸟,只要你的内容对技术人有帮助,其他都是次要的。

标签:视频,架构,演进,转码,快手,业务,基础架构
From: https://blog.51cto.com/u_13530535/6939364

相关文章

  • 国标GB28181视频平台LntonGBS国标平台调用快照接口,未能正常返回快照图片的问题解决方
    LntonGBS国标视频云服务支持设备/平台通过国标GB28181协议注册接入,可实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。LntonGBS平台便捷、丰富、灵活、可拓展的视频能力,已经使其成为当前安防市场的主流需求视频平台,并且已经在大量的项目中落地......
  • 应用谷歌云实现高效视频转码和分发
    了解音视频技术大会更多信息编者按:MeshCloud通过与GCP合作为中国出海企业提供强大的全球基础架构。今天LiveVideoStack公开课通过MeshCloud邀请到了谷歌云的于有志老师,为我们介绍如何借助谷歌云在高效视频转码和分发方面的技术与能力,实现海外音视频业务的快速与高质量部署。文/于有......
  • 音视频服务架构演进
    LiveVideoStackCon2022音视频技术大会北京站将于11月4日至5日在北京丽亭华苑酒店召开,本次大会将延续【音视频+无限可能】的主题,邀请业内众多企业及专家学者,将他们在过去一年乃至更长时间里对音视频在更多领域和场景下应用的探索、在实践中打磨优化技术的经验心得、对技术与商业......
  • 视频直播源码,android:textColor设置无效
    视频直播源码,android:textColor设置无效title_color.xml <?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android">  <itemandroid:color="@color/txt_blue"/>......
  • 因MySQL数据库无法启动导致LiteCVR视频平台也无法启动的问题解决教程
    近期呢,我们的数据人员发现有时候MySQL数据库无法启动会导致LiteCVR视频平台也无法启动,所以接下来我们将为大家讲解遇见这种问题时的解决教程。但是在这之前值得一提的一件事那就是我们的LiteCVR平台默认的数据库是SQLite,不过用户可以根据自己的使用需求选择将数据库切换为MySQL。具......
  • RTMP流媒体服务器LntonMedia(免费版)视频直播点播平台视频回看列表显示为ID的优化具体操
    视频直播点播LntonMedia平台具备灵活的视频能力,包括直播、点播、转码、管理、录像、检索、时移回看等,平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等能力服务,可应用在无人机推流、在线直播、虚拟直播、远程培训等场景中。有兴趣的用户可以去我们官网https://ww......
  • roop 视频换脸
    roop:oneclickfaceswap.只用一张人脸图片,就能完成视频换脸。项目地址:https://github.com/s0md3v/roopColab部署:https://github.com/dream80/roop_colab本文是本地部署的实践记录。环境基础OS:Ubuntu22.04.2LTSKernel:5.19.0CPU:Intel(R)Core(TM)i7-1075......
  • 如何隐藏开源流媒体EasyPlayer.js视频H.265播放器的实时录像按钮?
    目前我们TSINGSEE青犀视频所有的视频监控平台,集成的都是EasyPlayer.js版播放器,它属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,包括WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC等,支持全平台、全终端播放,如Windows、Linux、Android、iOS,支持H.264与H.265编码......
  • 开源流媒体播放器EasyPlayer.js播放H.265视频,无法截取快照是什么原因?
    TSINGSEE青犀视频的开源流媒体播放器EasyPlayer视频播放器,可支持H.264与H.265视频编码格式,性能稳定、播放流畅,还能支持RTSP、RTMP、HLS、FLV、WebRTC等视频流播放,并且已实现网页端实时录像、在iOS上实现低延时直播等功能。目前TSINGSEE青犀视频的所有视频监控平台均使用的是EasyPl......
  • TSINGSEE青犀视频汇聚平台EasyCVR多种视频流播放协议介绍
    视频监控综合管理平台EasyCVR具备视频融合能力,平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台既具备传统安防视频监控的能力与服务,也支持AI智能检测技术的接入,可应用在多行业领域的智能化监管场景中。EasyDarwin开源流媒体视频EasyCVR安防监控平台可提供视频监控......