`
猫耳呀
  • 浏览: 167077 次
社区版块
存档分类
最新评论

世界杯千万级直播高稳定的挑战和实践

 
阅读更多

摘要: 今年夏天,俄罗斯世界杯召开。在刚刚落幕的重庆云栖飞天技术汇专场中,阿里视频云技术专家裘良科,就世界杯这个话题,跟参会嘉宾一起探讨了千万级直播高稳定的挑战和相关实践,本文为演讲全文。 2018年俄罗斯世界杯从6月14日到7月15日,跨度整整一个月,共有64场比赛,优酷成为央视指定的世界杯新媒体官方合作伙伴,作为优酷的同门兄弟,阿里云也一并为世界杯直播的提供技术支持,一同征战世界杯。

今年夏天,俄罗斯世界杯召开。在刚刚落幕的重庆云栖飞天技术汇专场中,阿里视频云技术专家裘良科,就世界杯这个话题,跟参会嘉宾一起探讨了千万级直播高稳定的挑战和相关实践,本文为演讲全文。

image

2018年俄罗斯世界杯从6月14日到7月15日,跨度整整一个月,共有64场比赛,优酷成为央视指定的世界杯新媒体官方合作伙伴,作为优酷的同门兄弟,阿里云也一并为世界杯直播的提供技术支持,一同征战世界杯。 整个世界杯期间,阿里云的服务是不间断的,要始终保持着稳定与流畅。而且除了支持优酷外,阿里云同时支持着CCTV5、CNTV、咪咕的世界杯直播,支撑了全网世界杯流量的70%。单单优酷的法阿大战单场并发就达到2000W,加上其他的几家客户,足足有数千万的用户并发。这么大规模、持久的赛事,对直播平台也是很大的挑战。

那么从技术层面看,世界杯直播的挑战究竟有哪些?

  • 第一个挑战是内容集中。世界杯核心内容就是CCTV5,加上解说频道,多角度频道就10多路直播,假设源站出现问题,那么所有的直播都会出现问题。
  • 第二个挑战是高并发。世界杯高达千万级的并发在线观看用户,且用户量徒增非常明显。假设直播平台出现短暂故障,所有用户可能会重新请求或者请求其他系统,对系统压力也会非常大。
  • 第三个挑战是安全性。世界杯是世界级盛会,假设中间出现安全事故,影响会非常大,平台方也会有不可推卸的责任。

在这样的挑战之下,阿里云要始终保持着世界杯直播的稳定、流畅、安全,背后有一套复杂的方案和逻辑,下面我们来从稳定性、安全、监控三个部分展开。

稳定性

下图是世界杯直播稳定性架构图,分为四大部分,信源生产链路、视频云中心、CDN和客户端。
image

第一部分是信源生产链路,因为最原始的信号很有可能不被云平台使用,比如非常高码率的信号,不适合传输,所以一般都会有信源生产的链路进行编码,提供一个源站服务。第二部分是视频云中心,整个直播平台架构是中心架构,所有直播所需要的功能,比如转码、截图、录制、水印等功能,都是在中心完成的。第三部分是CDN,CDN是真正承载整个世界杯直播的用户压力的一环,数千万的用户都跑在CDN上。第四个部分是客户端。接下来分各个环节来介绍阿里云如何保障服务稳定。

一、信源生产链路

  • 多信号源输入:生产链路环节一般是用户自己搭建,建议用户多信号源输入,因为单信号源输入的情况下,如果信号源中断就会导致业务中断。如果信号源确认只有一个的话,建议用户信号源多链路输入,避免单链路故障而导致信号源无法接收。
  • 主备线下转码器:前面讲到原始信号源是没办法直接使用的,所以会用到一个编码器,我们一般会要求编码器的主备是实时能够获取多个信号源,并支持实时切换的。切换的模式有两种,第一个是直接主备模式,在同时输出源,只有1台编码器。第二个双备的方式,2台编码器的输出源同时给云平台提供数据源,这样的方式,我们最终会把转码器的数据通过拉流或者推流的方式同步到视频云中心。如果是拉流的方式,视频云中心会从多个源站同时拉流,保证任何一个源站/编码器出现问题,视频云中心都可以顺利的拿到数据。如果是推流的方式,主动权在用户,用户也最好能多个源站/编码器同时向视频云中心推流。
  • 多出口推/拉流:源站的出口链路一般会要求是多个,因为单出口链路存在网络风险。

image

二、视频云中心

  1. 结合多网络输入,视频云中心也会采用多网络接入。
  2. 流合并,多个流来到视频云中心,通过特有的合并组件,把多个流变成一路流。
  3. 组件分布式部署,对于重大赛事,所用的机房我们会采用独立资源专用机房,和其他业务之间互不影响。
  4. 全链路自动切换,每一个组件的状态都会自动检测,发生问题在10秒钟之内完成切换,保证直播流的连续性。
  5. 对于交互相对较少的赛事直播,所以会采用H264直播,进行的优化是,所有的切片输出的H264切片中,切片长度和I帧都是对齐的,好处是当下游想在不同码率之间切换的时候,画面是连续的,不会有跳跃感。
  6. 切片双写,每一路流在进行切片的时候,都是双进程切片,同时切到两个OSS,这样就保证了下游CDN的源是双份的。
  7. 考虑到赛事直播的重要性,整套架构在原来的基础上,同时做了中心异地备份。
    image

三、 CDN与客户端

  1. 配合OSS双写,CDN也同时支持两个OSS,并根据实时检测把好的切片拼成一路,任何一个OSS写异常、写的慢都不会影响内容的传输。
  2. 中心主备与L2灾备,由于CDN本身架构就是分布式的,考虑到世界杯的规模非常大,采用中心主备,如果CDN中心出现问题,会马上切换为另一个。另外,每个地区都会放多个L2节点,如果L2在某一时刻出现问题,会马上要附近的其他L2接入,不会因为异地影响服务质量。
  3. 采用节点内的负载均衡和CDN的调度优化方案,可以确保业务顺畅。
  4. 最后,给客户端一个建议,因为客户端很多,当前面的切换出现时,某些客户端可能会出现卡死无法播放等问题,所以客户端需要对CDN请求做一个重试。
    image

安全

世界杯赛事直播护航工作中,内容的安全和稳定同样重要。用户可以通过阿里云云导播台内容审核、源站IP推流和拉流的白名单设置、推流鉴权、拉流HTTPS校验防劫持等几个方案,来保障内容安全。针对类似世界杯赛事的版权内容,阿里云也提供播放鉴权&二次鉴权、DRM对视频本身鉴权、分域名封禁、区域限制等方案来防止盗播盗链。

监控

架构解决了稳定性问题,并在安全方面也做了很多准备之后,直播当然也需要监控,阿里云对于世界杯直播的监控分以下三大部分。

第一是技术环境的监控

包括直播中心、CDN每台设备的CPU使用率、内存、网络、磁盘等,如果出现故障情况,就和前面的方案配合进行自动切换;如果出现异常、亚健康的状态,则会通过报警让运维人员快速定位问题和快速处理。

第二是应用监控

包括每个程序的进程、端口、QPS压力、直播延迟,与前面环境监控的处理方式一样,如果出现故障,就和切换机制联动,如果出现异常则通过报警来人为处理。

第三是业务监控

包括直播全链路监控,下图是一张比较复杂的直播业务的监控图,绿色代表正常,黄色可能会出现丢帧、丢包等问题出现的异常线路。点开每一条线,就可以看到没路流在当前时间下的状态值,比如说时间戳一小时之内是否连续、递增和跳频,避免客户端兼容性问题引发的不好的用户体验。

image

对于帧率的监控,在视频云中心进行流合并的时候,我们实时地把不同的流合并成一个,来达到抗抖动的效果。下面四幅图是同一时间同一路流的监控,上面三路流合并成下面一路流,毛刺变少,结果更稳定。

image

除此之外,系统还会针对服务端慢速比、客户端卡顿率等数据,进行实时收集和监控,通过和客户端的联合,实现质量调优。

除了以上高稳定性的服务架构、多维度安全策略以及全链路监控以外,阿里视频云也为用户提供时移直播、智能剪辑、异地容灾、智能调度、秒开、码率控制、50帧极清、高速通道、防盗链、云导播台、广告识别、ET字幕等能力。

image

相信护航过世界杯直播之后,阿里视频云一定在活动、赛事直播这个场景下沉淀了更多技术,在未来为客户创造更多价值,为用户带来更极致的观看体验。

原文链接

本文为云栖社区原创内容,未经允许不得转载!

分享到:
评论

相关推荐

    HDP高清直播世界杯

    看世界杯要的就是高清,这个安卓软件无比清晰

    世界杯欧冠抽签模拟器(对应2022世界杯和2021-2022赛季欧冠)

    明天就要世界杯小组赛抽签了,我用MFC开发了一个世界杯抽签模拟器,可以对世界杯抽签进行模拟。同时我后来还加入了欧冠小组赛抽签。如果想修改球队的话也可以修改分档。 不过这是我几年前上学的时候利用课余时间做的...

    java做的世界杯程序

    标题中的“java做的世界杯程序”指的是使用Java编程语言开发的一款应用程序,它可能是一个模拟世界杯赛程、比分预测或者赛事管理的软件。Java是一种广泛使用的面向对象的编程语言,以其跨平台性和高性能而闻名,非常...

    网页模板(世界杯)

    【网页模板(世界杯)】 网页模板是网页设计中的一种便捷工具,它为创建网页提供了一个预设的结构和样式框架...选择一个高质量的世界杯主题模板,可以帮助你轻松地搭建起一个充满活力和信息丰富的世界杯粉丝交流平台。

    电商平台世界杯整合营销案.ppt

    4. 站内直播:选择转化率高、粉丝基础庞大的直播达人,进行联合直播,创造世界杯氛围,推广商家商品。 活动节奏: 整个营销活动分为蓄势期、活动期和总结宣传期。蓄势期(4.20-6.2)主要是礼盒定制、抖音视频拍摄和...

    世界杯比分直播小玩具

    【世界杯比分直播小玩具】是一款基于Java开发的简易应用程序,主要功能是实时更新并展示世界杯比赛的比分情况。用户可以通过这款工具快速获取赛事信息,关注自己喜爱球队的比赛动态。从"FcukLiveJavaeye112.apk"的...

    世界杯史话,世界杯时间轴,Tabslet,Tab,网易JS代码.zip

    随着时间的推移,世界杯的影响力不断增长,规则和技术也在不断演变,比如VAR(视频助理裁判)的引入,为比赛公正性提供了新的保障。 【Tabslet】 Tabslet可能指的是网页设计中的一个组件,通常用于展示多页或多个...

    Java小程序编写 世界杯

    【Java小程序编写 世界杯】是一个使用Java编程...这个项目对于学习和实践Java编程的开发者来说是一个很好的实战案例,它涵盖了编程的多个核心方面,并提供了实际应用背景,有助于提升开发者综合运用Java技术的能力。

    “挑战杯”大学生创业计划大赛-作品模板.doc

    【“挑战杯”大学生创业计划大赛】是一个旨在激发大学生创新精神和创业能力的竞赛活动,参赛者需要提交一份详尽的创业计划书。这份作品模板是指导学生如何编写高质量创业计划的关键步骤,主要包括以下几个核心知识点...

    2022卡塔尔世界杯胜负预测(小组赛)

    国际足联世界杯(FIFA World Cup),简称“世界杯”,是由全世界国家级别球队参与,象征足球界最高荣誉,并具有最大知名度和影响力的足球赛事。世界杯全球电视转播观众超过35亿 [1] 。世界杯每四年举办一次,任何...

    怎么在电脑上看世界杯直播?.docx

    随着科技的不断进步,如今人们有多种方式可以通过电脑观看世界杯直播,这些方式给球迷们带来了前所未有的便利。然而,对于许多足球爱好者来说,了解如何在电脑上观看世界杯直播仍是一个令人关注的问题。本文将详细...

    历届世界杯比赛数据

    例如,巴西队自1958年以来五次夺冠,其稳定的高水准表现可以从历届数据中得到验证。同时,新兴足球强国如西班牙和阿根廷的崛起,也可以通过数据分析得出。 其次,数据有助于研究比赛策略和战术演变。从早期的长传冲...

    从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。

    这些数据通常包括每届世界杯的举办年份和冠军队伍。我们可以从可靠的在线资源获取这些信息,例如世界杯官方网站或者公开的数据集,并将其整理成Python易于处理的格式,如字典或列表。每个条目可以包含年份(year)和...

    世界杯终极版app

    【世界杯终极版app】是一款专为2014年巴西世界杯设计的专业移动应用程序,它集比赛数据、实时直播、赛事资讯于一体,为足球爱好者提供了全方位的观赛体验。这款app适用于安卓操作系统,使得用户能够在手机上随时随地...

    历届“挑战杯”课外学术科技作品竞赛回顾及最高奖项名单

    6. 高校学生的科研能力和实践能力:通过对历届“挑战杯”课外学术科技作品竞赛的回顾,我们可以看到高校学生在科研能力和实践能力方面的提高,例如在科技创新、创新设计、实验设计和数据分析等方面的能力。...

    Z-Blog 世界杯

    4. **插件配合**:为了丰富网站功能,可以搭配使用一些与世界杯相关的插件,如赛事直播插件、比分统计插件等。这些插件可以在Z-Blog插件市场找到,安装后按照指示进行配置。 5. **内容发布**:在世界杯期间,发布与...

    Mac2021世界杯高清直播教程.docx

    总而言之,借助SopcastMac版和在线直播资源,Mac用户能够以一种简单便捷的方式观看高清的世界杯直播。从安装软件到选择合适的直播链接,整个过程不过几步之遥。在这场全球瞩目的体育盛事中,让自己沉浸在高清画质与...

    2010世界杯赛程表

    2010世界杯赛程表,EXCEL表格,列出各小组对阵形势,可以手动记录比分。

    简单的世界杯页面设计 简单的世界杯页面设计 简单的世界杯页面设计

    网页设计是IT领域中不可或缺的一部分,它涉及到用户体验、美学、技术与交互的融合。...通过上述方法,我们可以将这个简单的世界杯页面设计提升到更高的水平,同时确保其在各种浏览器环境下都能提供良好的用户体验。

    投票管理系统网页投票世界杯

    部署方面,可能采用Docker容器化和Kubernetes集群管理,实现弹性伸缩和高可用性。 综上所述,"投票管理系统网页投票世界杯"项目涵盖了Java后端开发、Web框架应用、数据库设计、网络安全、前端交互、并发处理等多个...

Global site tag (gtag.js) - Google Analytics