从蓝光到4K,腾讯视频高码率下载背后的技术

2024-03-23 22:18

本文主要是介绍从蓝光到4K,腾讯视频高码率下载背后的技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 



蓝光和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通过如下策略,解决链路带来的卡顿:

  1. 极速分发:多线程10MB/s速度下发,异步落盘

  2. 数据合并:HLS多分片合并直出,伪流处理

  3. 回源加速:根据客户端场景,后端自动加速

  4. 慢速修正:支持跨网矫正,慢速链接协议栈加速

  5. 按码率回源:根据现网回源速度,自动选择最佳回源路径


对于文件在边缘节点不命中场景,分为热点不命中和普通文件不命中,链路加速策略分别使用极速分发和回源加速,实现边缘节点“100%命中”。


极速分发指的是将文件从源站快速分发到边缘节点,解决源站、中间源等繁忙链路拥堵的情况,极速分发通过P2P组网、分级削峰、智能识别码率等方式,实现秒级内将一个切片视频推送到全网,在腾讯视频热剧抢先看、热点突发、会员保障等场景,发挥着重要的作用。由于分发网络节点间热点互通,将全网TOP(k)高码率热点文件分发到边缘节点,实现热点视频边缘命中,减少链路延时。


对于普通普通不命中场景,采取回源加速策略,每次回源记录回源速度,高码率视频使用回源速度大于码率3倍以上的回源IP,无法满情况下,采取多回源IP并发分片回源。


杜比视界4K视频采取fmp4分片,由于fmp4切片文件过小,每次回源请求小分片造成链路速度达不到预期,Tvido采取进行多分片合并回源下载策略,减少链路延时。


上图测试音频小文件多个分片合并的回源速度,可以看到,在TCP没有建立起来的情况下,将多个小分片合并回源速度效果明显。


当然后台链路加速还包括对客户端访问区分优先级,当客户端进行紧急下载,后端使用多连接加速;对于慢速请求,则选择协议栈加速等,通过上述优化,最大限度缩减耗时,保障链路下载速度。

 

2.2 缓存优化

缓存是Tvideo的核心模块,包括缓存按业务管理策略,热点文件&分片界定算法,冷文件淘汰、全局负载均衡等算法。

 


上图所示为Tvideo平台城域点机房集群架构,其中中心索引模块维护集群中所有文件的索引信息,下载HTTP模块负责业务请求的接入,数据存储模块负责冷热数据管理。


冷热数据存储模块和内存缓存统称为缓存,热点分级是缓存模块的分级是缓存模块的核心,对于普通视频热点统计策略相对简单:下载HTTP模块在接入阶段通过边缘计算,快速处理70%左右的热点请求;而相对冷的请求,通过中心索引模块计算,通过以上热点统计分级计算,实现热点快速统计。


而对于高码率视频,除了使用上述常规方法,另外对缓存进行了特定的分级,包括根据机房维度分级,根据访问模型分级,根据码率进行IO分级和热点扩散分级。

 

2.2.1 根据机房维度进行缓存分级策略:

Tvideo平台每个机房质量存在一定差异,这样可以把资源分为优质资源和普通资源,通过现网访问流水分析得到不同机房质量情况后,将整个平台的缓存资源池按码率进行划分,对于普通机房,缓存更多的低码率视频,优质机房用于缓存高码率视频。通过机房调度完成优质机房服务高码率请求,避免高码率视频请求命中低质量机房的情况。


优质资源在文件淘汰过程中,保障高码率文件每次淘汰数量小于标准淘汰值(如高码率每次淘汰5%,普通视频每次淘汰10%),保障机房更多的空间存储高码率视频;而对于普通机房,一般只覆盖低码率业务,只有在资源不够的时候才会用上,可以空出更多存储供普通视频等业务使用。通过上述物理介质的分级,保障业务质量。

 

2.2.2 根据客户端访问模型进行缓存分级

根据客户端访问模型,可以将客户端下载过程分为快速阶段、渐进式阶段、P2P阶段。由于客户端每个阶段要求的下载速度不一样,后端缓存需要能够区分不同阶段,从而进行特殊处理。


用户观看一部影片,从客户端播放逻辑看,在刚开始播放时,客户端进入快速下载阶段。该阶段客户端播放器缓冲区没有数据,要求快速填满播放器缓冲区,以便减少网络抖动等因素带来的卡顿。当客户端缓冲区填满后,客户端进入渐进式P2P阶段,该阶段客户端停止向后台下载,采取P2P下载,如果P2P速度过慢,当缓存的内容过少时,再次向后台Tvideo下载,此过程叫渐进式下载。简单举个例子,客户端首次播放,快速下载180秒将缓冲区填满,播放器开始播放,同时进入P2P下载,由于P2P下载速度达不到高码率要求,当客户端缓冲区小于90秒后,客户端会向后台Tvideo平台继续下载,直到将缓冲区填满。


上述三个阶段对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%



本文转载自腾讯架构师公众号



这篇关于从蓝光到4K,腾讯视频高码率下载背后的技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839666

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.