转自《云计算详解》公众号,点击原文链接查看原文
通常我们所说的视频是指连续图像变化超过每秒24帧(Frame)的图片,根据视觉暂留原理,人眼无法分辨单个静态图片,看起来像是平滑连续的视觉影响。,这样连续的图片就称为视频。
媒体转码是指将一段多媒体包括音频、视频或其他内容从一种编码格式转换为另一种编码格式。内容分发网络通常被称为CDN,主要包括流媒体服务器、负载均衡、路由重定向、视频转码、录像存储、防盗链、性能等相关技术内容。
本文主要从直播概述、直播架构、业务功能和场景等方面介绍阿里云CDN直播系统。
1.视频相关词汇介绍
在讲解直播CDN技术之前,我们先来了解一下直播视频的一些相关词汇。
一般来说30fps是可以接受的,但是将性能提升到60fps可以显着提升交互感和真实感,但一般来说,75fps以上流畅度的明显提升并不容易。如果帧率超过屏幕刷新率只是浪费图形处理能力,因为显示器不能更新这么快,所以超过新的帧率就被浪费了。
音频帧通常可以独立解码并实时播放。视频分为视频关键帧和非关键帧。关键帧可以独立解码渲染,玩家拿到后直接看到图片,一般在10K以上甚至几十K;其他非关键帧的解码依赖于之前的视频帧。,播放器会根据前一帧和本帧解码生成图片。非关键帧的大小一般在几K甚至不到1K。对于播放器,服务器一般从视频关键帧开始发送,以免产生画面模糊。
对于节点上直播服务器存储的内容,如果是文件加速的话,节点上存储的内容就很清楚了,也就是文件数据。如果 URL 保持不变,则文件数据的内容也将保持不变。但是对于直播来说,传输的是帧数据,缓存的帧序列数据也是不断变化的。
从下图可以看出,当前服务器缓存了V1-V3的五帧数据。当V4的关键帧出现时,服务器丢弃之前的关键帧,开始缓存V4开始的音视频数据。这种策略确保所有过来的玩家都是最新的数据。通常,实时服务器使用此策略进行服务器缓存。
常见的CDN加速包括文件加速、点播、直播。阿里云CDN一开始是从文件加速做起,主要针对内部客户,比如淘宝,图片很多,支持小文件加速。随着各BU终端产品的衍生,将逐步支持大文件下载服务。当阿里云CDN作为产品正式商业化后,将开始支持按需服务。2015年下半年开始支持直播业务。
二、直播概况
通常,视频直播的两种常见形式是移动直播和游戏直播。手淘、陌陌、映客、游戏直播的典型移动直播平台是斗鱼、全民TV等平台。其实对于播放器来说,直播和点播都是从服务器获取视频数据,播放器播放声音和画面的过程。从这个角度来看,直播和点播并没有太大的区别。
直播和点播的区别
对于视频点播,用户可以在观看时随时选择快进和快退,但对于直播则不行。对于视频网站上的视频文件,可以选择今天或明天点播,但不能选择直播的时间,比如每周末只在固定时间播出的联赛。有些机顶盒提供了回看的功能,也属于点播。
简而言之,直播就是每帧数据打上时间序列标签后进行流式传输的过程。发送端不断采集音视频数据,编码、封装、推送流,然后通过分发网络进行传播。就这样cdn 流媒体 直播 加速 安卓,一个生产、传播、消费的直播过程诞生了。
我们将视频直播的整个过程分为几个关键阶段:视频采集、预处理、编码、流式传输、转码、分发和播放。
3.直播结构
这是一张阿里云直播全景图解决方案,包括推流端的详细视频推流、直播中心的流存储、转码、截屏等视频处理、CDN智能调度分发,最后播放全在播放端进行处理。.
就直播服务器的流程而言,我们可以认为一个推流端和多个播放端是一种非常典型的发布订阅关系。从下图可以看出,主播完成发布动作,直播内容通过这个流推送到服务器,三个观看者为订阅者,从服务器拉流,即使用播放动作完成推流。进程内和节点之间的发布订阅关系是一种级联关系,CDN的直播分发就是建立在这个模型之上的。
那么让我们从CDN分发的角度来看看基础设施是什么样的。内容通过存储集群到达发布集群,再经过骨干中转环境的L2,利用CDN智能调度到达离用户最近的节点L1,平滑推送给用户。
四、业务功能及场景
对于直播来说,转码服务功能非常重要。转码后,会在原始流名后面加上一个后缀。下图是转码前后画质和码率的差异。与转码相关的是水印、动态模板和延迟转码。
截图也是一个比较重要的业务。比如直播平台页面的分类下有很多图片。刷新后图片会发生变化,都是周期性截图完成的。此外,阿里云还提供动态配置、录制、流媒体中断回调、推流播放认证、流媒体中断、黑名单、阻塞、各种API、转推其他厂商、触发直播拉取。流媒体、麦克风、播放纯音频/视频等。
另一个重要的事情是对直播数据的监控。对于客户和我们来说,密切关注直播情况,掌握直播数据以防出现问题是非常有必要的。视频监控用于记录流的重要信息,如普通视频码率、播放流量和在线数、视频帧率监控等。视频的特点是每秒帧率比较固定,视频帧在每秒20~30帧左右。卡顿的主要原因一般是网络链路的抖动。排查变得非常方便,一路堵车和客户提出的各种问题都能快速查明原因。
正常的监控画面应该是一条直线。上图中的帧率出现了突然的尖峰,因为抖动后公网连接的统计量减少了。对于一个流中的多个播放器,服务器会继续将帧数据写入播放器。一旦网络出现抖动,如果无法写入,该帧将被放入连接的等待队列中,超过了帧队列中的帧数。长度限制,服务器会选择丢帧。一般出现这种情况是因为网络抖动比较严重。我们也会以此作为判断整个网络链路质量的依据,并用红色和绿色两种颜色来标记和区分正常和异常的链路质量。
以上架构和业务功能可以应用到哪些场景?我们还对阿里云视频直播CDN服务的客户场景进行了分类总结,主要有以下五个方向:
以上就是阿里云直播CDN相关的内容。目前,超过一半的视频直播和点播平台都在使用阿里云的直播服务。阿里云将不断丰富和升级视频服务能力,围绕视频领域构建技术生态系统。
温馨提示:请搜索“”或“扫描”下方二维码关注公众号,获取更多精彩内容。