什么是视频流和内容分发网
- 视频流:视频数据的传输,互联网宽带的主要消费者
- 视频的一个重要特征是它能够被压缩,因而可用比特率来权衡视频质量
- 比特率越高,图像质量越好,用户总体视觉感受越好。
- 内容分发网:为了应对分发巨量视频数据的挑战,几乎所有主要的视频流公司都利用内容分发网。
遇到的挑战
挑战:
- 规模:如何达到十亿级用户
- 单个大型视频服务器无法工作(为什么?)
- 异质性
- 不同的用户有不同的能力
- (例如,有线与移动;宽带丰富与宽带差)
解决方案:分布式、应用级基础设施
多媒体:视频
视频是一系列的图像,通常以一种恒定的速率来展现
数字编码的图像:像素阵列
每个像素由一些比特编码来表示亮度和颜色
编码:使用图像内部和图像之间的冗余来减少用于编码图像的比特位数
空间(图像内)
时间(从一张图像到下一张)
流式传输存储的视频
流媒体:DASH
经HTTP的动态适应性流(Dynamic,Adaptive Streaming over HTTP, DASH)
- 服务器:
- 讲视频文件分成多个块
- 存储的每个块,以不同的速率编码
- 清单文件:提供不同块的URL
- 客户:
- 定期测量服务器到客户端的宽带
- 查询清单,一次请求一个块
- 在给定当前宽带的情况下选择可持续的最大编码率
- 可以在不同的时间点选择不同的编码率(取决于当时的可用宽带)
客户的“智能”:客户决定
- 何时请求块(以便不会发生缓冲区饥饿或溢出)
- 请求什么样的编码率(可用宽带越多其质量越高)
- 在哪里请求块(可以从“靠近”客户端或具有高可用宽带的URL服务器请求)
内容分发网络
挑战:如何讲内容(从数百万个视频中选择)同时流式传输给数十万用户?
- 选择1:单一的“大型服务器”
- 单点故障
- 网络拥塞点
- 存在通往远方客户的漫长道路
- 通过传出链接发送多个视频副本
(但这个解决方案无法扩展)
- 选择2:在多个地理分布的站点(CDN)存储/提供多个视频副本
- 深入:讲CDN服务器深入到许多接入网络中(贴近用户)
- 邀请做客:在接入网络附近(但不在内部)的关键位置建造数量较少(10个)的较大集群(因特网交换点IXP,被Limelight使用)
CDN
CDN:在CDN节点存储内容的副本
订阅者从CDN请求内容:
定向到附近的副本,检索内容
如果网络路径拥塞,可以选择不同的副本
互联网主机-主机通信即服务
挑战:如何应对拥挤的互联网
- 从哪个CDN节点检索内容
- 用户在拥塞情况下的行为
- 什么内容应放在哪个CDN节点
CDN内容访问:深入了解