蓝光和4k视频正逐渐普及,4K视频峰值码率超10Mbit/s。架构平台部TVideo平台从资源,链路、缓存、接入进行调优,有效解决4k高码率视频的二次缓冲问题,播放体验全面领先竞品。
背景
随着音视频编解码、超分辨率、VR/AR等技术的发展,iPhone8、4K电视、VR眼镜等终端设备的更新换代,高码率高分辨率片源(4K视频、360°全景视频等)的层出不穷,多媒体用户观看体验正在逐步升级,整个行业生态链正在快速向高品质内容切换。
就分辨率而言,上面提到的4K视频指分辨率达4096*2160的片源,对比其它分辨率还有2K(2560*1440)、1080P(1920*1080,目前腾讯视频蓝光的分辨率)等。腾讯视频在2017年下半年为进一步提升用户体验推出“杜比特权”,引进4K片源(见图1)。
分辨率的提升必然伴随着码率的提升。相比蓝光视频的3Mbit/s码率,杜比特权4K视频峰值超过10Mbit/s,这对后台下载(Tvideo平台)带来巨大挑战,为提供至少10Mbit/s下载速度,需要在网络延时、缓存IO、回源速率等方面进行优化升级。
1.Tvideo平台介绍
腾讯视频Tvideo平台运营着公司内部各项重要音视频业务,除腾讯视频外,还为空间视频、QQ音乐等提供支撑。拥有16T+自建带宽,亿级别的视频库。
Tvideo采取多层缓存,冷热分类架构。音视频文件上传到Tvideo后台源站,源站存储模块为每个文件加入特征信息,防止恶意用户盗链,分析文件热度,按不同优先级将文件推送到中间源;中间源缓存按业务进行软件隔离,保障每个业务有独立存储空间;城域点负载边缘加速,通过调度、链路加速等措施保障数据快速传输到用户终端。
2.高码率视频后台优化揭秘
当前高码率视频面临着网络延时,缓存IO不均,接入/回源耗时带来的卡顿等一系列问题,如杜比视界4K节目,码率峰值高达10Mbit/s,一部电影高达10GB存储,如何保障后台服务质量,提升用户观看体验?
针对上述问题,Tvideo平台在链路、缓存、接入等做了多项优化,解决缓存负载、链路卡顿、播放高延时等问题。
2.1 链路加速
客户端播放媒体过程中,没有出现任何卡顿称之为无缓冲,反之称之为二次缓冲,无缓存占比越高,说明后台服务越好,链路加速重点解决用户播放音视频卡顿的问题。
引起卡顿的因素很多,如后台网卡降速,传输网络波动、跨省&运营商访问速度跟不上、小片请求造成IO碎片等。Tvideo通过如下策略,解决链路带来的卡顿:
极速分发:多线程10MB/s速度下发,异步落盘
数据合并:HLS多分片合并直出,伪流处理
回源加速:根据客户端场景,后端自动加速
慢速修正:支持跨网矫正,慢速链接协议栈加速
按码率回源:根据现网回源速度,自动选择最佳回源路径
对于文件在边缘节点不命中场景,分为热点不命中和普通文件不命中,链路加速策略分别使用极速分发和回源加速,实现边缘节点“100%命中”。
极速分发指的是将文件从源站快速分发到边缘节点,解决源站、中间源等繁忙链路拥堵的情况,极速分发通过P2P组网、分级削峰、智能识别码率等方式,实现秒级内将一个切片视频推送到全网,在腾讯视频热剧抢先看、热点突发、会员保障等场景,发挥着重要的作用。由于分发网络节点间热点互通,将全网TOP(k)高码率热点文件分发到边缘节点,实现热点视频边缘命中,减少链路延时。
对于普通普通不命中场景,采取回源加速策略,每次回源记录回源速度,高码率视频使用回源速度大于码率3倍以上的回源IP,无法满情况下,采取多回源IP并发分片回源。
杜比视界4K视频采取fmp4分片,由于fmp4切片文件过小,每次回源请求小分片造成链路速度达不到预期,Tvido采取进行多分片合并回源下载策略,减少链路延时。
上图测试音频小文件多个分片合并的回源速度,可以看到,在TCP没有建立起来的情况下,将多个小分片合并回源速度效果明显。
当然后台链路加速还包括对客户端访问区分优先级,当客户端进行紧急下载,后端使用多连接加速;对于慢速请求,则选择协议栈加速等,通过上述优化,最大限度缩减耗时,保障链路下载速度。
2.2 缓存优化
缓存是Tvideo的核心模块,包括缓存按业务管理策略,热点文件&分片界定算法,冷文件淘汰、全局负载均衡【8 8个.赚钱项目】等算法。
上图所示为Tvideo平台城域点机房集群架构,其中中心索引模块维护集群中所有文件的索引信息,下载HTTP模块负责业务请求的接入,数据存储模块负责冷热数据管理。
冷热数据存储模块和内存缓存统称为缓存,热点分级是缓存模块的分级是缓存模块的核心,对于普通视频热点统计策略相对简单:下载HTTP模块在接入阶段通过边缘计算,快速处理70%左右的热点请求;而相对冷的请求,通过中心索引模块计算,通过以上热点统计分级计算,实现热点快速统计。
而对于高码率视频,除了使用上述常规方法,另外对缓存进行了特定的分级,包括根据机房维度分级,根据访问模型分级,根据码率进行IO分级和热点扩散分级。
2.2.1 根据机房维度进行缓存分级策略:
Tvideo平台每个机房质量存在一定差异,这样可以把资源分为优质资源和普通资源,通过现网访问流水分析得到不同机房质量情况后,将整个平台的缓存资源池按码率进行划分,对于普通机房4k码率,缓存更多的低码率视频,优质机房用于缓存高码率视频。通过机房调度完成优质机房服务高码率请求,避免高码率视频请求命中低质量机房的情况。
优质资源在文件淘汰过程中,保障高码率文件每次淘汰数量小于标准淘汰值(如高码率每次淘汰5%,普通视频每次淘汰10%),保障机房更多的空间存储高码率视频;而对于普通机房,一般只覆盖低码率业务,只有在资源不够的时候才会用上,可以空出更多存储供普通视频等业务使用。通过上述物理介质的分级,保障业务质量。
2.2.2 根据客户端访问模型进行缓存分级
根据客户端访问模型,可以将客户端下载过程分为快速阶段、渐进式阶段、P2P阶段。由于客户端每个阶段要求的下载速度不一样,后端缓存需要能够区分不同阶段,从而进行特殊处理。
用户观看一部影片,从客户端播放逻辑看,在刚开始播放时,客户端进入快速下载阶段。该阶段客户端播放器缓冲区没有数据,要求快速填满播放器缓冲区,以便减少网络抖动等因素带来的卡顿。当客户端缓冲区填满后,客户端进入渐进式P2P【88 个靠.谱项.目】阶段,该阶段客户端停止向后台下载,采取P2P下载,如果P2P速度过慢,当缓存的内容过少时,再次向后台Tvideo下载,此过程叫渐进式下载。简单举个例子,客户端首次播放,快速下载180秒将缓冲区填满,播放器开始播放,同时进入P2P下载,由于P2P下载速度达不到高码率要求,当客户端缓冲区小于90秒后,客户端会向后台Tvideo平台继续下载4k码率,直到将缓冲区填满。
上述三个阶段对Tvideo后台速度要求不一样,后台根据边缘计算,探测到快速下载阶段的请求后,进行缓存内存加速,将部分数据预拉到内存。而渐进式下载过程中,后台根据文件VID进行预测,将文件预热到高速缓存介质上。在P2P补洞阶段,进行缓存负载均衡,保障机房内缓存负载相对平衡。
2.2.3 根据文件码率进行IO分级
当前Tvideo平台机房集群采取SATA和SSD存储混搭模型,解决回源较高问题,如SATA统一使用4T盘,保障边缘节点有足够的存储,能够挡住热点,根据访问热度,逐步向高速介质SSD上扩散。由于SATA单盘只能支持120Mbit/s,暂不考虑其它请求,若一个机房同时有大于12个用户访问同一个4K文件(10Mbit/s)时,SATA单盘将无法支撑所有用户的下载,需要快速将文件扩散到SSD上备份。
由于普通视频和高码率视频对机房集群内热点扩散的需求不同,特别是4k视频这类音视频分开存储,高码率视频对下载速度敏感业务,按码率和IO频率分级,向SSD和内存扩散,解决由于磁盘速度不够,带来的卡顿问题。
2.3 接入优化
接入优化主要解决跨省、跨运营商、资源不足等情况造成的卡顿,通过合理分配资源,解决由于资源不够,带来的卡顿。
客户端每次播放前,通过Tvideo调度平台接口获取具体下载地址,调度平台根据客户端的IP、码率等信息,选择一个合适的机房,通过负载均衡算法,选择机房的一个可以下载地址返回给客户端,客户端获取到下载地址后,向机房进行访问。简单的可以理解为,一个上海电信的用户请求播放,首先会访问Tvideo调度平台,然后Tvideo返回上海电信0001机房的一个下载地址给客户端,客户端向上海0001机房请求数据。
针对高峰期资源紧张、高码率视频卡顿率高,访问质量得不到保证的情况,进行调度分级策略:将VIP、高码率视频尽量本地覆盖,而低码率、音频、离线下载等业务,调度到二级资源或者区域资源,保障播放质量。如上表,当晚高峰,上海市区资源不够,将VIP高码率的调度到上海本地,而VIP低码率的调度到二级覆盖,而离线下载调度到区域覆盖如华东资源空闲的地方。
针对小运营商多出口问题,通过调度特征串,进行二次调度,解决跨网带来的卡顿。如上海移动用户通过Tvideo调度平台调度到了上海电信0001机房,客户端访问上海电信0001机房的下载服务器,下载服务器发现客户端IP不是电信的,返回302,让用户跳转到移动IP,进行访问。
总结
从资源,链路、缓存、接入进行调优,并通过码率分级、IO分级、业务分级等多角度优化,有效解决蓝光、4k高码率视频的二次缓冲问题。下图是自建和外包的无缓冲率的对比,通过上述优化,高码率无缓冲率提升1.5%。
———END———
限 时 特 惠: 【萌 心云学 堂】每日持续更新海量各大内部创业教程, 点击查看详情
站 长 微 信: 929444
本站内容均转载于互联网,并不代表副业库立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理!
拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!