您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[阿里巴巴]:2023多媒体行业质量成本优化及容灾方案白皮书 - 发现报告
当前位置:首页/行业研究/报告详情/

2023多媒体行业质量成本优化及容灾方案白皮书

文化传媒2023-08-29阿里巴巴叶***
2023多媒体行业质量成本优化及容灾方案白皮书

阿里云开发者“藏经阁”海量电子手册免费下载 目录页 一、质量优化5 1.直播&点播业务通用质量指标介绍5 2.直播质量优化6 1)上行优化8 2)云厂商内部链路优化10 3)下行播放优化12 4)上下行质量监控体系16 3.点播质量优化18 1)下行优化18 2)云厂商内部链路优化21 二、成本优化24 1.成本优化概述24 2.CDN及直播出流量优化方案24 1)视频&图片降低码率24 2)直播图像拆分降码率25 3)使用CDN智能压缩25 4)使用客户端缓存26 3.回源成本优化26 1)源站存储成本优化26 2)源站出流量成本优化28 三、容灾建设31 1.直播容灾31 1)直播链路架构31 2)直播容灾案例及通用容灾方案33 2.点播容灾36 1)容灾案例及通用方案36 本文基于多媒体行业头部客户经验,抽练沉淀出多媒体质量成本优化及容灾方案,该文展开介绍了直播点播全链路上可做的质量优化措施、直播点播场景如何实现全链路容灾、多媒体成本如何进行优化。 一、质量优化 1.直播&点播业务通用质量指标介绍 近年来长视频行业增速放缓寻求突破,短视频及直播行业蓬勃发展,截至2022年12 月底,我国网民规模达到10.67亿,短视频用户规模为10.12亿,网络直播用户规模达 7.51亿。无论是长视频、短视频还是直播行业其背后代表的业务为直播点播业务,背后承载的产品技术为直播、CDN、媒体转码等技术; 各业务厂商为占领流量高地,内容创作、业务营销、内容推荐等技术运营策略实施的同时,直播点播业务的质量优化也同步实施,让用户获取更优质的视频内容。直播点播业务通用的质量衡量指标如下:直播通用--开播失败率、卡顿率、秒开率;点播通用--卡顿率、错误率、失败率; 多媒体行业头部客户的关键指标可参考如下: •某短视频A直播:开播失败率、首帧时间、百秒卡顿sum、百秒卡顿avg、百秒卡顿次数、百秒重试次数 •某游戏直播:秒开率、中度卡、重度卡、黑屏比、p2p卡比、flv卡比、adr卡比、ios卡比、webh5卡比 •某政企直播:卡顿率、错误率 •某游戏直播:卡顿率、拉流失败、秒开失败、平均延迟 •某短视频A点播:下载失败率、下载速度、慢速下载率、视频准备时间、开播故障 率、卡顿次数、卡顿率卡顿时长 •某短视频B点播:卡顿率、中断率、错误率 •某游戏点播:成功率 •某政企点播:卡顿率、错误率 •某长视频点播:卡顿率 各头部客户的质量指标及通用质量指标及客户端日志打点详细介绍、质量监控告警如何设置等详情可看《多媒体行业质量监控最佳实践》一文。 了解了直播点播质量衡量的指标,下文将展开如何对直播点播业务进行质量优化的介绍。 2.直播质量优化 直播及点播业务均承载在复杂技术链路架构上,要对质量进行优化,需要先拆解链路架构,再针对每一环链路进行优化,常见的直播架构分为:边缘推播流架构、触发拉流架构、拉流架构,架构图可参考下图。 整体直播业务架构分为三层分别为上行接流层,中间分发层及下行播流层,而一般中间分发层众多的业务厂商均会采用云厂商CDN/直播进行分发,基于该前提下本文将云厂商CDN/直播以上的链路称之为上行接流层,云厂商CDN/直播以下的部分称之为下行播流层,针对上行链路、下行链路及云厂商内部链路如何进行质量优化,详情在下文展开。 1)上行优化 a)推流传输协议优化案例1-阿里RTS直播 RTS在阿里云视频直播的基础上进行全链路延时监控、CDN传输协议改造、UDP等底层技术优化,通过集成阿里云播放器SDK,支持在千万级并发场景下节点间毫秒级延时直播的能力,弥补了传统直播存在3~6秒延时的问题,具备较优的抗弱网能力,确保了超低延时、低卡顿、秒开流畅的直播观看体验。RTS直播适用于互动直播、及低延迟直播场景,详情介绍参考链接。 b)接流链路优化 案例1-国内自建接流源站 自建接流源站,具有优势如下: •拥有CDN调度能力,增强了源站及整个直播平台容灾的能力; •使用公共云平台自建直播接流源站可以增强平台的弹性能力,并且在多云策略的举措下,可以避免被一家云厂商锁定; •同时客户可以执行调控各CDN流量比例,在质量和成本间取得最好的折衷; •如自研智能CDN调度系统,精确捕捉CDN与用户的动态变化,可以更合理地利用CDN资源,通过自动调度取优各厂商各区域的CDN质量,逃逸个别厂商CDN故障,可以大大降低观看故障时长,节约大量人力监控和维护成本。 自建接流源站客户包括某短视频A、短视频B、游戏直播客户A、党媒客户等。 某短视频客户A的自建源站,一部分部署在自建的IDC,一部分部署在阿里云及其他友商的公共云平台上。通过自建多地域源站,某短视频客户A实现了可以自研推流协议的优势。自建源站赋予了客户CDN调度的能力,即各家CDN都需要来客户自建源站进行 回源拉流。 然而该客户体量庞大,需要同时使用多家CDN,而各家CDN的质量、价格参差不齐,以及经常有一些不可预知的突发状况,因此,通过人工调度的方式,显然是无法接受的。客户自研智能CDN调度系统,精确捕捉CDN与用户的动态变化,从而更合理地利用CDN资源,且大大降低观看故障时长,节约大量人力监控和维护成本。 该客户对源站的要求非常高,必须有高可靠、高并发和易迁移的特性。 •高可靠:源站资源和系统要具有冗余的能力,在线上资源出现异常时,保持业务的可持续性。 •高并发:在面临突发流量时,源站可以快速扩展一倍以上,对房间的支撑能力和分发能力都有高并发的扩展。 •易迁移:某短视频客户A业务部署在多个IDC和公共云上。出现服务质量风险或商务风险时,可以实现快速转移。 案例2-云厂商边缘节点推流 多云厂商CDN或直播均支持边缘推流模式,边缘推流可以利用云厂商丰富的CDN节点、覆盖范围广的优势,优先将流数据调度至距离用户最近的最优CDN节点,通过云厂商智能调度系统将数据快速传输至直播中心进行内容分发,保证用户访问的都是最佳的上行网络,减少因上行传输带来的卡顿、拉流缓慢的问题。 阿里直播边缘推流介绍参考链接。 案例3-主播推流网络切换fallback机制 推流端实现帧码率音视频头等关键视频元数据监控,识别到长周期推流稳定性问题或者推流失败问题可以支持断流自动切换到备用CDN节点线路重试,多次重试失败显性提醒主播更换网络环境;其中切换到备用CDN节点线路,可以为单厂商的另外节点,也可以为其他厂商CDN节点。 推流端实现视频关键元数据监控,包括: •长时间的帧率跳变(按经验4秒及以上的帧率80%及以上的跳变未恢复行为会导致播流卡顿),时间阈值的选取与业务需求相关; •音视频头是否=1,不等于1容易引发卡顿等。 2)云厂商内部链路优化 a)协议栈优化 阿里云直播全链路节点均支持开启协议栈优化,协议栈优化主要是针对rtmp\http协议展开,基于TCP协议通过更改拥塞算法、滑动窗口逻辑等来实现节点建连逻辑、弱网、数据传输逻辑等方面的优化措施。CDN产品已用于不同类别的实际业务中,如大文件下载、图片小文件访问、音视频点播、直播流媒体下载等。 各个不同业务类别下,对于业务侧来说,期望的业务最优结果不同。比如直播业务下,期望首屏够快、延迟较短、卡顿尽可能少,点播业务下,首屏秒开、卡顿缩减,大文件下载下,下载速度稳定,下载速度上限尽可能调高等等。不同业务类别下,基于产品侧带宽利用率,带宽成本等的考量,需要采用不同的协议栈优化策略。 为了应对不同业务的不同需求,阿里云产品侧提供有多种场景下的拥塞控制算法,来优化请求在节点建连,丢包重传,数据包传输时的逻辑,同时协议栈优化的开启对阿里直 播内部成本会有所增加。 b)内部链路卡顿自动切换L1-L2,L2-中心 推流、播放等请求进入到阿里云直播节点系统之后,需要在不同层级节点之间进行传递,由于节点之间走运营商公网,任何一级公网环境出现抖动均会影响整条请求的可用性。此时通过一定算法判断出抖动、卡顿等异常情况的出现,并自动调整请求的上下行节点,来规避此条异常卡顿公网链路,达到恢复请求可用性的目的。 目前卡顿内部链路自动切换主要应用在直播场景中,主要通过媒体时间戳、帧率(每秒收帧数)等信息判断卡顿的产生,通知上下游节点是否准备切换。为了确保切换是有效和必须的,也会存在一定算法来规避误切。 直播域名(推播流域名均可开启)开启内部链路卡顿自动切换:卡顿切换时间推荐5s。不开启情况下:CDNL1L2,L2到中心链路默认出现10秒帧率掉0,才进行内部链路切换,业务影响时长至少20+s。该功能开启需要提交阿里云工单进行申请。 预期的业务影响:因调整前后,数据在内部链路已有cache,这部分cache重发,会导致端上画面出现几秒的回退。 c)边缘节点覆盖调整 CDN的节点调度一般是同大区内调度,当出现长期跨大区调度,客户可以提交相关信息申请调整覆盖节点。对于区域运营商限制跨省情况,阿里云CDN产品也可增加调度限制实现尽量本省,或者限制跨某省覆盖; 调整非即时生效,和客户本地DNS过期时长有关。 d)缓存及回源保持配置 配置客户端播流断流后,L1保持一定时长的的拉流或者不断流,同时如果未触发拉流模式也可以配置播流断流后维持一段时间拉流或者不断流;该模式开启后可以优化首屏,但对直播产品和客户源站会产生额外的带宽开销。 直播产品内部也可以配置直播视频在产品内部的缓存时长,缓存时长越长,直播延迟越大,但相对抗网络抖动的能力越强,建议rtmp及flv的延迟配置时长保持一致,配置文档参考链接。 3)下行播放优化 a)多码率&窄带高清 多码率及窄带高清的本质其实就是在弱网/低网速环境下使用低码率视频播放以减少客户播放视频质差现象,网络状态好/高网速情况下使用高码率视频播放,提升观看体验;多码率自适应可将指定的音视频文件流统一打包生成一个自适应码流文件,让播放器可根据终端网络带宽环境,自行选择使用对应码率的播放URL。播放协议为HLS; 视频画面由像素点构成,一个画面中像素点越多清晰度就越高,像素点的个数进行分档就称之为分辨率,分辨率有LD、SD、HD、2K、4K,LD就是常说的480P、SD即720P、HD即1080P;分辨率越高,在音视频编码格式、帧率等一致的情况下,一个视频的码率就越高,播放所需要的网络环境如带宽及稳定性等就越高; 阿里云直播产品已支持多码率转码,客户可按需配置,相关介绍和配置文档可参考这里。 窄带高清技术对编码算法进行优化,可以实现在同等画质下更省流、在同等带宽下更高清的观看体验。阿里云直播产品已支持窄带高清配置,参考链接; 终端应用如何选择适当清晰度的视频进行播放? 终端用户的网络带宽需要不小于视频码率才能保障视频的清晰观看,不同分辨率的视频常态下的码率区间相对固定,所以业内对于播放视频码率的选择一般有两种做法: 第一种根据不同的终端画质需要选择不同码率的视频作为默认码率; 第二种为多码率自适应技术,该技术需要终端播放器配合检测终端客户网络情况+集成码率自适应算法+播流视频支持多码率来实施。 不同的终端画质需要选择不同码率的视频作为默认码率,头部客户实现方案如下: •某长视频平台A:手机端默认画质480p,网页端默认画质720P •某长视频平台B:手机端默认画质720p,网页端默认画质480P •某短视频平台A:手机端默认码率2Mbps b)终端播放器buffer缓冲区 播放器播放视频的过程本质上是播放器代码逻辑读取缓冲区数据,进行解封装、音视频解码、音视频同步处理、音视频渲染的过程。为了抗网络、渲染、解码等各种抖动,播放器播放视频一般会设置缓冲区来进行抗抖动,缓冲区分为帧缓冲区和显示缓冲区:帧缓冲区,主要是抗网络抖动、抗解码抖动、避免丢帧。显示缓冲区,主要是抗渲染抖动、实现音画同步。缓冲区越大,抗抖动效果越好,但内存占用就更大,延时效果也更大。 不同直播场景的buffer缓冲时长如何设置:教育类直播场景需要低延迟直播,而终端播放器缓冲区时间越长,延迟越高,一般教育行业终端播放