阿里云CDN直播架构与双11晚会直播实战

摘要: 分享人:阿里云CDN直播 高级技术专家 阙寒分享内容:双11直播活动是众多直播活动中非常典型的场景,离不开直播本身这个话题。所以今天的分享会从直播概述、直播架构、业务功能、直播监控、双11这几个方面来进行。

分享人:阿里云CDN直播 高级技术专家 阙寒
分享内容:双11直播活动是众多直播活动中非常典型的场景,离不开直播本身这个话题。所以今天的分享会从直播概述、直播架构、业务功能、直播监控、双11这几个方面来进行。
图片描述

每年双11购物节,有两块压力是最大的,第一块是支付宝交易,第二块就是CDN。那么CDN技术到底是什么呢?

举个简单例子,不管你的在电脑淘宝上还是手机APP上买东西,进入商品详情页,你会看到很多图片,有的商家为了更好的宣传,会上传视频,让你看得更形象。当商家把图片和视频上传到服务器时,一般是阿里巴巴的主站机房,存储在杭州。但是看这个商品详情的人,可能来自遥远的东北或海南,如果他们直接访问杭州机房,那这个链路会非常长,还存在跨运营商的问题,体验会很差,表现出来就是图片刷不出来等问题。通过CDN技术,可以把这些在杭州机房的图片、视频等静态文件分发到全国各地的几百个机房内,这样,北京用户在看产品详情的时候,直接访问北京的机房,而且是网内覆盖(电信用户访问电信机房),这样就能就近、快速获取数据。而且,对于一个商品详情页的构成,数据量最大的就是图片和视频,其他文本几乎可以忽略不计,对于图片和视频的内容分发极速可以保障用户的体验更加顺畅。

视频直播概述
直播大约是从2014年左右兴起,以映客、斗鱼、熊猫TV、战旗TV这些直播平台为代表。其实主要有两种场景,一种是手机直播,一种是游戏直播。手机直播推流端和播放端都是各平台自己开发的手机APP,而游戏直播是使用开源的OBS去推流完成上传,播放大多是通过网页播放器完成播放。

视频直播和点播的相同点与不同点
其实对于播放器来说,不管是视频直播还是点播,行为都是一致的:和服务器建立连接以后,不停的读取音视频文件,然后完成渲染。从这里来看,视频点播和直播的区别不大。而它们的主要区别就是点播可以快进、后退进行观看,也可以在任意时间播放,而直播不能快进,也只能在固定的时间点播放。

阿里云直播全景解决方案
推流端经过一次边缘节点的加速,将视频直播流推到直播中心,在直播中心完成一系列转码、截图、录制、水印等处理,然后视频流再经过CDN分发,分发到不同的播放端,播放端有不同的SDK进行秒开、弱网等优化动作。
图片描述

直播服务的特点——直播系统中的推流与播放
对于视频直播来讲,最重要的两个环节,一个是推流,一个是播放。推流一般采用RTMP协议,常用的推流端包括OBS、手机APP、FFmpeg等。播放除了采用RTMP协议,还可以采用HTTP FLV和HLS协议,RTMP和HTTP FLV是流式传输,HLS是文件加速传输,常见的播放端包括:Flash / VLC / HTML5 / 手机App等等。对于阿里云直播系统来讲,大部分直播分发都是通过流式传输完成的,只有一少部分量是使用文件加速分发完成的。
图片描述

直播服务的特点——详解流式分发与CDN直播系统
我们再详细看下流式分发。其实在直播场景中,不管是推流还是播放,流式分发都是长连接的,一场直播可能2个小时,推流在这2小时内不会中断。对于播放器来讲,服务器端获取到的是一帧一帧的音视频数据,不管是什么传输协议,都是采用FLV tag来封装。每一帧音频或者视频,都会有一个时间戳的属性。
图片描述

下面这张图列了一下推流和播放端、服务器之间的关系。我们可以定义推流和播放关系为发布与订阅关系。

图片描述

对于左侧的服务器A来讲,有两路流。第一路流中,主播直接推流到A服务器上(发布),然后这路流有两个播放端,也就是两个订阅者。而第二路流,这路流有三个订阅者,发布端并不是主流推流,是从服务器B拉流过来进而完成发布的,而这个回源链接对于服务器B来是个订阅者,服务器B的发布者是主播推流。这种服务器与服务器之间的级联关系,就构成CDN直播网络。

直播服务的特点——音视频帧与延迟的产生
视频直播流会传输音频帧和视频帧,对于音频帧来讲,它每一帧都可以独立解码,播放器从服务器获取到任何一帧音频帧之后,都可以独立渲染,听到声音。

而视频帧分为视频关键帧和视频非关键帧两类,视频关键帧可以独立解码渲染,可以直接看到画面,其他非关键帧则做不到,它的解码依赖于前面的视频帧。视频关键帧的优点在于独立解码,但是缺点是携带的信息很多、很大。反之,视频非关键帧则很小,几K或者1K就可以解决。对于视频直播的任何一次播放,都是从视频关键帧开始发送,否则会先出现花屏,体验很差。
图片描述

我们将两个视频关键帧之间的间隔为一个GOP,这是很重要的概念。下图是一路流的音视频序列,我们可以看到两个key(视频关键帧)中间大概有10秒间隔,下侧的箭头指示的是当前推流所在的位置,后续的虚线是即将要推上来的流。此时,前一个关键帧大概在3秒前出现,如果这时来了一个播放端,那么我们不能从箭头开始发给播放端,因为会花屏。所以我们会选择从前面的关键帧开始发送,也就是说,这时的播放端会从3秒之前开始播放,这也就产生了延迟。这个GOP越大,平均延迟也就越大。GOP越小,平均延迟也就越小。一般,手机直播的延迟在2-4秒,游戏直播延迟在8-10秒。

直播服务特点——服务器缓存数据
之前提到的CDN图片、视频加速,它们在每一个边缘服务器、中间服务器、源站服务器都是以一个一个文件形式来存储的,今天和明天访问文件的数据是不变的。而对于视频直播来讲,存储的数据都是实时在变化的。服务器会存储最近的关键帧以来的数据,每当一个新关键帧出现之后,都会将之前的缓存数据清掉。这样才能保证任何一个时间点来播放的播放端都能从最新进度开始观看直播。
图片描述

CDN直播架构和业务功能
CDN直播网络架构图,这个架构图就是建立在发布与订阅的关系之上。从左侧的主播推流开始,主播推流到L1边缘节点,再经过L2节点的上行加速,最终到中心机房。对于最右侧的播放端来讲,他们从就近的L1节点完成播放,L1节点一般就是本地覆盖的边缘节点,如果机房内有这路视频流,就直接返回,如果机房内没有这路视频流,就从L2节点拉流,如果L2不命中,最终会去中心机房寻找这路流。这其中,任何的链路都会存在抖动状况,CDN会通过自动切换调度来保证稳定性。
图片描述

直播中心
直播中心在整个CDN直播系统中非常重要,这中间有一些比较重要的组件。包括流媒体服务器,用于用户存储成千上万路直播流;视频处理组件用来完成转码、截图、录制、切片业务;拉流组件用于解决不是主动推给直播中心的需求;调度组件用来完成每一路流在服务器上查找的问题;直播API一般供客户来访问在线流和历史流的数据;监控组件是供客户来监控每一路流、服务器和组件的稳定性的。

转码业务
还有一个和直播密切相关的就是转码业务。左侧图是一路流转码之前的原始画面,当前码率大约是3000K+,右侧转码出来的视频是300K+。一般转码应用在帮助直播平台节省带宽和处理一些播放端不是很顺畅的场景之下。
图片描述

截图业务
对视频流周期性的截取关键帧,保存成一张图片。一般用在直播平台对于每个直播间做缩略图来用。用户在直播平台看到了直播间缩略图,过一会儿刷新后是会变化的,这就是通过截图来完成的。

除此之外,整个直播系统中还包括其他业务,比如录制、回调、鉴权、黑白名单、转推其他厂商、播放纯视频纯音频等。

直播监控相关
视频直播有很多属性,所以对其监控是十分必要的,我们一般来监控以下指标:

直播视频码率:一般来说,手机直播码率在500Kbps ~ 1Mbps,游戏直播 码率在1.5Mbps ~ 4Mbps左右。
直播视频播放:监控直播的当前在线人数和总体下行流量大小。
视频帧率(卡顿):因为视频/音频有个特性,它的帧率是固定的,音频30 ~ 60帧/秒,视频15 ~ 40 帧/秒。如果一路流很正常,帧率是一条平滑的直线,如果出现突刺,那么就说明有网络抖动。有了全链路秒级帧率监控图之后, 排查问题变得非常的方便, 针对一路流卡顿以及用户的各种问题可以很快的就明确原因。
全链路监控:对于整个分发链路监控,根据客户的反馈通过全链路监控准确找到问题所在,把有问题节点下掉,或者将链路切换。
双11晚会直播相关预案
最后,我们来看看双11晚会直播中,我们做了哪些预案。其实,从15年开始,双11就有了晚会直播。这个晚会是为了双11进行造势和导流,稳定性非常重要,保障级别会很高。下图是整体拓扑图,基本上和双11直播晚会相关的预案都在这里。
图片描述

最左侧是现场导播车,分出的信号会将视频流推到直播中心。常规的主播会通过公网推到直播中心,抖动的可能性也会很大,双11晚会会选择专线来推流到直播中心。而且,预案不会只选择一根专线,因为一根专线也可能会成为单点,存在一定风险,所以我们一般选择不同运营商的两根专线,确保链路传输。

从现场采集出来的画面,我们可以看到会有四路,narrow这路流其实是我们采用了窄带高清技术的画面。sh01和sh02是不同专线的互备,sh01_narrow和sh02_narrow也是不同专线的互备,而且sh01的画面使用了主推和冷备两条链路,来防止现场推流设备出现的问题。假设真的某路流出现问题了,会通过播放端对ur来进行更换。

双11直播晚会转码——窄带高清
双11直播晚会采用了窄带高清技术,窄带高清是阿里视频云独有的一套以人眼主观感受最优为基准的视频编解码算法,从这里参数来看,窄带高清和非窄带高清使用的码率峰值和平均码率值是基本一样的,但是窄带高清的画质效果会更好。它具有以下特点:

能和编码标准的进步垂直发展,效果能够叠加
能把业界普遍浪费的带宽节省下来,节省20%左右
能把业界普遍处理不好的复杂场景优化
能让普通观众一眼就能看出画质的效果不同
程序盯屏预案
对于双11来讲,我们也会有一个盯屏的策略,通过程序对所有流进行播放,输出一个帧率。转码流每秒钟是25帧左右,中间高亮出来的,就是网络或转码存在问题。一旦发现问题,就采取相应的预案。
图片描述

人肉查看视频预案及其他
排除了网络问题之外,也可能存在音画不同步、现场采集画面出现花屏等情况,所以针对不同播放端类型,也会有人肉查看每路流的实际效果。此外,运营同学也会检测总体流量和CDN节点水位的情况,如果说流量带宽很高,我们也会采取降低码率等措施来节省带宽。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双11黑科技,阿里百万级服务器自动化运维系统StarAgent揭秘

摘要: 还记得那些年我们半夜爬起来重启服务器的黑暗历史吗?双11期间,阿里巴巴百万量级主机管理能安全、稳定、高效,如丝般顺滑是如何做到的?阿里巴巴运维中台技术专家宋意,首次直播揭秘阿里IT运维的基础设施…

查看大日志文件的专门工具logviewer

查看大日志文件的专门工具logviewer版本为官网2.3.1版本 文章目录一、百度网盘下载链接:二、操作手册2.1. 【file】-【Open】-【选择文件】-【打开】2.2. 文本可视化展示2.3. 编码选择2.4. 效果图2.5. 搜索功能一、百度网盘下载链接: 链接https://pan.b…

Android热修复升级探索——SO库修复方案

摘要: 通常情况下,大多数人希望android下热补丁方案能够做到补丁的全方位修复,包括类修复/资源修复/so库的修复。 这里主要介绍热补丁之so库修复思路。 一、前言 通常情况下,大多数人希望android下热补丁方案能够做到补丁的全方位…

中小企业搭建混合云,服务器如何选?

戳蓝字“CSDN云计算”关注我们哦!经过一年多的发展Henry所在的NewStar公司的业务开始蒸蒸日上各种业务系统也越来越多、运营管理也开始越来越复杂公司所购买的“第一台服务器”逐渐力不从心业务中断时有发生Henry又回到了公司初期一筹莫展的状况中Henry脸上也是愁云…

基于TableStore构建简易海量Topic消息队列

摘要: 前言 消息队列,通常有两种场景,一种是发布者订阅模式,一种是生产者消费者模式。发布者订阅模式,即发布者生产消息放入队列,多个监听的消费者都会收到同一份消息,也就是每个消费者收到的消…

苹果ID登陆第三方有漏洞?硬核!Gartner报告腾讯云数据库增速国内第一;“小米快递”商标注册,这是要入局物流领域?...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 蔚来汽车(图片来…

【阿里云MVP月度分享】SaaS服务商如何通过数加平台统计业务流量

摘要: 一、概述 因为自家公司是做B2B类Saas服务的,难免会产生精准计费的问题,所以在通过多套方案的选型及对比以后,我们最终确定了以下的方式进行自有业务平台的流量计算方案。因为涉及到具体的操作,所以阅读本文的前提…

【阿里云 MVP 月度分享】宋亚奇——应用MaxCompute实现电力设备监测数据的批量特征分析...

1 背景知识 电力设备在线监测指在不停电的情况下,对电力设备状况进行连续或周期性地自动监视检测,使用的技术包括:传感器技术、广域通信技术和信息处理技术。电力设备在线监测是实现电力设备状态运行检修管理、提升生产运行管理精益化水平的…

小企业的第一台服务器如何选?

戳蓝字“CSDN云计算”关注我们哦!Henry是一家叫做NewStar的初创小企业的兼职IT管理员一天晚间,下班后的Henry正在忙着“吃鸡”突然,一阵急促的电话铃声响了起来原来是在外地出差的同事需要一份重要的文件,但却无法远程访问服务器H…

Linux 中文无法显示或显示方块

文章目录问题现象:字体需求一、查看字体列表1. 安装字体库2. 字体库中添加中文字体3. 进入字体目录复制需求字体4. 创建中文字体目录5. 上传需求字体6. 修改chinese目录的权限7. 安装ttmkfdir8. 修改字体配置文件9. 刷新内存中的字体缓存问题现象: Linu…

阿里云发布混合云数据存储和灾备方案

摘要: 12月7日,2017苏州云栖大会上,阿里云发布全新的混合云数据存储和灾备方案,此次发布的内容包括最新推出的混合云容灾服务HDR和混合云备份服务HBR,以及全面升级的混合云存储阵列CSA2000和CSA3000。 12月7日&#xf…

打通钉钉+WebHook:日志服务告警升级

摘要: 用一个最最常用的案例(Nginx日志分析)来说明当前使用场景,告警要解决的3个问题:是否有错误;是否有性能问题;是否有流量急跌或暴涨 阿里云日志服务是针对实时数据一站式服务,用…

AliOS Things v1.1.1新特性

摘要: 今年杭州云栖大会上,AliOS Things正式发布,10/20在github上开源v1.1.0版本。经过AliOS Things团队及合作伙伴1个多月的努力,很高兴有些更新可以和大家分享。AliOS Things v1.1.1包含了ESP32支持,AT框架&#xff…

Spark精华问答 | spark性能优化方法

Hadoop再火,火得过Spark吗?今天我们继续关于Spark的精华问答吧。1Q:影响性能的主要因素是什么?A:网络传输开销大硬件资源利用率低同一资源的复用率低2Q:优化的方向有哪些?A:设置数据…

阿里云Elasticsearch的X-Pack:机器学习、安全保障和可视化

摘要: ELK是日志分析领域较为流行的技术选择,不少阿里云用户选择在ECS上搭建开源Elasticsearch。与自建开源Elastisearch相比,阿里云Elasticsearch做了性能优化,支持弹性扩容,并搭载了商业版组件X-Pack,为用…

2017北京云栖大会:云效企业级协同研发专场议题揭秘!

摘要: 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现高效协同研发? 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同&#xf…

毋庸置疑,容器带来改变!

戳蓝字“CSDN云计算”关注我们哦!作者 | 刘晶晶对于飞贷金融科技副总裁陈定玮而言,金融行业数据具有相较于其他行业更为严格的的高标准安全性要求,对容错的要求更为尤甚;此外是否能高效支撑飞贷金融科技的核心业务,尤其…

阿里云发布首款全球智能互联的网络产品——云骨干网

摘要: 12月13日,阿里发布全球首款智能互联的网络产品–云骨干网(Cloud Backbone Network)。这款产品能够分钟级构建多地域全球网络,并和混合云连成一体,打造具有企业级规模和通信力的智能云上骨干网络。12月…

MaxCompute复杂数据分布的查询优化实践

摘要: 2017年中国大数据技术大会于12月7-9日在北京新云南皇冠假日酒店隆重举行, 大会就大数据时代社会各行业的智能化进程和行业实践展开深入讨论。 在12月8日的“大数据分析与生态系统”分论坛上,来自阿里巴巴计算平台事业部的高级技术专家少杰&#xf…

Linux 主机信息 总览

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…