一、视频流化服务
1、当今视频流量占据了互联网的大部分带宽,但是流量多意味着需要处理的业务也就多,如:
(1)如何向成千上万的用户提供并行服务?
(2)每个节点的带宽、视频处理不一样,也就是每个设备需要的清晰度不一样,需求不一样,异构的客户端,如何解决?
2、视频:固定速度显示的图像序列,是以每一帧进行播放显示,视频一般都是进行压缩后上传,每个像素被若干个bit表示,可以通过图像内(空间冗余:相邻的帧变化部分进行传递,不用传递每一帧)和图像间(时间冗余)来降低编码的比特数
3、视频编码
(1)AVS:高级视频编码
(2)CBR:以固定速率进行编码
(3)VBR:视频速率随着时间变化而变化
4、流化服务
:视频一边下一边看,并行
(1)DASH
:Dynamic,Adaptive Streaming over HTTP(动态自适应流化技术
),也就是服务器将一个视频分隔为若干个块,每个块都独立存储,有着不一样的编码来决定不一样的速率;客户端在获取的时候,需要获取告示文件,告示文件提供了每个块的信息、url等,若客户端当前缓存区足够大,通往服务器的带宽足够大,那就会选择相对而言更加清晰的块,所以会话中不同的时刻,可以切换不同的编码块,这取决于当时的可用带宽。
当决定请求的块不好时,视频也就会处于加载状态
存在的问题
:
(1)分的块多,也就意味着服务器到客户端路径上跳数比较多
(2)网上的流量浪费,多个用户重复性的向服务器进行请求资源
(3)单调故障、性能瓶颈、周边网络拥塞
解决办法
:采用CDN
二、CDN
部署缓存节点,存储服务内容,通过域名解析的重定向,找到离用户最近的服务,由这个服务向用户提供流化服务(内容加速服务)
其实就是存储一些资源,但用户向服务器发送请求资源的时候,如果每一次都需要向服务器发送请求,那在这个过程就会浪费掉许多资源,所以有了CDN,CDN供应商会向这些服务器提供服务,用来存储他们需要面向用户的资源:静态资源或者动态资源,当用户请求的时候就可以向这个CDN请求资源
1、部署形式:
(1)enter deep
:将CDN服务器深入到许多接入网,更接近用户,数量多,离用户近,但是管理困难
(2)bring home
:部署在少数的(十个左右)关键位置,在服务器周边的关键位置
2、流化服务+CDN工作流程
(Netflix)
内容上载到CDN节点->用户认证->域名解析重定向->用户得到最合适的CDN节点->节点提供DASH服务