深入浅出畅谈华为云低时延直播技术
华为云低时延直播将延时降低到800ms以内,提升了用户体验
随着虚拟直播、自制综艺等在线直播新浪潮的涌现,直播平台的内容生态日渐丰富,满足观众多元化需求。就在2021年,也就是低时延直播发展元年,国内各大知名电商平台逐步使用低时延直播进行精品商品秒杀、派发红包等活动方式,提升了在线观众的观看时长和平台的交易额,进一步挖掘了直播的商业价值,低时延为直播提供了更多应用场景的可能性。
华为云低时延直播产品基于华为近30年音视频技术积累,在传统直播的基础上,通过对传输协议的优化、传输链路的动态智能优选、超低时延的转码等技术手段,将传统直播3-5s的时延降低到800ms以内,满足电商直播、教育直播、赛事直播等时延敏感业务的诉求,为观众提供低时延、流畅的极致直播观看体验。
相比传统直播,华为云低时延直播的关键技术总结为以下三点:
- 静态的树状分发架构演进为动态智能网状架构
- 标准转码升级为超低时延转码
- 最后一公里UDP传输协议改造升级
核心竞争力,全方位打造低时延直播体验
从核心竞争力角度来分析,华为云低时延直播具有以下几大优势:
- 超低时延:端到端时延:< 800ms,首帧时延:< 400ms,低时延转码:< 150ms
- 超高并发:2000+国内加速节点,500+海外加速节点,华为云大部分节点均是各省份骨干线路上的优质节点,节点带宽储备能力≥100Tbps,重点项目将对项目诉求可进行重点覆盖。
- 极致体验:支持2K、4K超高清直播
- 兼容直播:兼容传统直播系统架构,支持RTMP协议推流,无缝支持直播转码、录制、截图、审核、回调等功能,同时支持标准WebRTC协议,对于私有协议接入也仅需要升级播放器SDK,接入更加简单
- 成熟稳定:支持跨AZ多Region容灾,7*24小时服务支持,可用度99%。基于华为多年音视频技术的积累,在内部研讨会直播中已稳定商用
华为云低时延直播的时延优化
- 选择低时延的上行编码参数
- 适当减小视频GOP大小
- 下行UDP传输协议改造,减少分发时延
动态追帧降时延方案:
- 实时优先
启播时,服务端从当前GOP Cahce中I帧开始发送,此时与直播点有一点时延,当服务端收到下一个I帧时候,为了保证低时延,直接跳到下一个I帧开始发送。
- 流畅优先
启播时,根据客户端快启缓存大小,服务端快速发送Cache数据,然后根据网络质量进行快启发送保护,最后按照倍速发送追上直播点,配合客户端倍速播放能力,做到流畅播放和低时延的平衡。
- 拥塞丢帧
当网络出现拥塞时,根据帧解码优先级(I>P>B),优先丢弃B帧,如果此时带宽依然有限再适当丢弃P帧,当下一个I帧到来时,择机跳到新的GOP发送。
华为云低时延直播的首屏优化
首帧优化有以下关键措施:
- 私有UDP信令
压缩标准sdp信令在一个MTU大小内,通过一定的冗余发送策略,确保信令请求成功率不变的同时,大幅减少信令协商的耗时。并且可使用UDP信令承载STUN 报文,实现0RTT启播。
- 支持异步回源
对于不命中缓存的场景,可以减少一个网络RTT的信令等待。
- 关闭媒体加密
对无加密诉求的直播内容,关闭加密传输,减少DTLS协商耗时。
- 首帧快速重传
对于音视频的解码关键数据(比如VPS/SPS/PPS),提前冗余发送,减少重传的耗时影响。在信令中携带首包序号,以便客户端快速发送丢包重传请求。
- 首帧快速出帧
启播时客户端将前几帧在JitterBuffer中等待时间调整为0,配合服务端启播时快速下发数据的策略,做到快速出帧,达到秒开效果。
- 起播码率优化
端云协同,客户端将本地探测的带宽数据和网络情况携带在请求URL参数中,发送至服务端,服务端则根据该数据进行动态调整起播发送策略。
- 端口不通,快速降级
在UDP端口不通的情况下,支持WebRTC降级到使用TCP进行媒体传输;或者降级到普通直播(FLV),确保观看成功率。
基于以上关键的优化方案,结合华为云海量的节点覆盖以及智能调度策略,将平均首屏时延降到400ms以内。
华为云低时延直播的卡顿率优化
基于以下优化方案,确保在毫秒级时延指标下,卡顿率指标优于传统直播:
- 丢包重传
针对低时延直播场景(比如乱序,大丢包),基于网络rtt和jitter优化重传时机,防止重传风暴,提高重传效率。
- 带宽估计
基于延时和丢包优化带宽估计算法,判断网络模型及可用带宽,控制发包速率与纠错方案。网络质量优时,可以快速上探带宽;网络拥塞时,精确收敛发送带 宽。
- 动态JitterBuffer
实时统计网络丢包率、rtt、jitter等指标,动态计算所需要的 jitterbuffer大小并进行实时调整。
- FEC冗余
自研高性能FEC算法,对分组分包进行优化,并且根据网络带宽、丢包率进行自适应冗余调整。同时支持WebRTC标准的RED冗余,以及Ulpfec/Flexfec方式。
- 平滑发送
根据网络带宽估计模块计算的发送码率将音视频数据均匀发送到网络传输通道中,避免网络拥塞。
华为云低时延直播的集成方式
详细的对接步骤:
- 登录华为云官网注册华为云账号,并完成实名认证。申请和备案低时延直播的推流和播放域名。
提示:可以注册备案一个一级域名(如example.com),然后使用两个不同的二级域名(如live-play.example.com和live-push.example.com)作为低时延直播 的推流域名和播放域名。
- 添加低时延直播推流域名和播放域名到视频直播服务。
- 在低时延直播的推流域名和播放域名添加成功后,视频直播会分配对应的CNAME地址。这里需要在域名DNS服务商处为低时延直播的推流域名和播放域名配置CNAME解析,开启直播推流加速和播放加速。
- 在低时延直播的播放域名中关联对应的低时延直播推流域名,否则将会导致低时延直播播放失败。
- 获取华为云低时延直播对接文档和Demo样例,学习文档并集成低时延直播SDK。
- 安装推流工具(推荐使用OBS),进行低时延直播的推流。
- 使用华为云低时延在线Demo或集成低时延直播SDK的端进行播放验证。
- 点赞
- 收藏
- 关注作者
评论(0)