博客
关于我
双 11 猫晚直播:看阿里文娱如何“擒住”高并发、多视角、 低卡顿!
阅读量:109 次
发布时间:2019-02-26

本文共 1511 字,大约阅读时间需要 5 分钟。

阿里巴巴集团在双11直播技术实战中的成果与经验

在全民互动、红包与优惠券齐飞的双11盛会中,阿里巴巴集团将其技术实力发挥得淋漓尽致。这场以技术为支撑的"战役"有多复杂?在面向瞬时高并发场景时,阿里人又是如何做到无懈可击的?

2019双11猫晚直播展现了显著技术进步,主要体现在以下四个方面:

高清战略方面,猫晚直播超高清占比用户达到了93%。通过大规模投放4K、杜比(720P、1080P、4K)、50帧等更高画质音质档位的内容,为用户提供了极致的视听体验。

在高清战略推进过程中,用户侧平均码率的提升带来了巨大的带宽成本挑战。我们通过引入新的带宽节约核心抓手,最终实现了带宽消耗成本不升反降,节省带宽成本达到了35%。同时,我们成功达成了高画质和低成本的双重目标。

直播项目的基础保障是一个关键方面。直播工程的链路非常长,从制作、生产、传输、转码、分发等任何环节的小问题都会导致用户体验下降。我们在流全链路和服务链路上做了大量优化,实现了0故障、0降级的结果。

创新能力方面,猫晚首次引入了杜比全景声与帧对齐技术,在音频和视频两个层面来提升用户体验。

面对2020年的双11直播目标,我们在技术实现上做了更深入的挖掘。主要目标包括:

高体验目标方面,我们在目标落地过程中定义了三个技术方向:

  • 高画质方向:提升码率是提升用户画质的主要手段,但在千万用户量级下,高码率的瞬间抖动可能导致带宽消耗超出预期。我们针对这个问题开发了有效的峰值码率控制和码率抖动控制手段。

  • 低卡顿方向:用户侧的网络环境、硬件环境、设备能力参差不齐。我们通过智能清晰度调整和实时故障容灾体系,确保用户能够流畅观看。

  • 提升视听体验方向:我们引入多视角直播技术,并通过帧对齐技术解决不同流间切换带来的视音频回跳问题,进一步提升用户体验。

  • 低成本目标方面,我们从省带宽、低码率上提供技术抓手,确保直播过程既能做到高画质,又能拿到低成本结果。

    技术策略方面,我们开发了以下核心抓手:

  • 高画质低成本抓手:引入FPGA H265转码技术,提升H265覆盖率,实现带宽消耗降低和码率波动控制。

  • 高画质低卡顿抓手:通过三域协同能力,落地直播智能档能力,实现基于QoE的自适应清晰度和流链路自动容灾。

  • 视听体验提升抓手:在多视角直播场景中引入帧对齐技术,实现画面前后一致性;同时引入杜比全景声技术,提升音质体验。

  • 基础保障:在流的生产分发全链路上实施热备方案,实现0故障、0降级操作。

  • 在高画质低成本方面,FPGA H265转码技术展现了显著优势:

  • 提升转码压缩率,降低峰值码率,节省带宽成本。

  • 码率波动更小,降低带宽水位风险。

  • 强大的吞吐能力,支持多分辨率实时转码。

  • 在高画质低卡顿方面,智能档技术实现了以下功能:

  • 基于QoE的智能评分,综合评估用户环境。

  • 智能档播控配置,支持流间自动切换。

  • 帧级别平滑切换能力,确保视音频连续性。

  • 自动容灾预案能力,保障流探活和快速切换。

  • 在视听体验提升方面,帧对齐技术解决了多路流间切换带来的画面不对齐问题,确保了视音频的连续性。

    在杜比全景声技术应用方面,我们采用基于SRT协议的低延迟回传链路,降低了运营成本,实现了中小型直播场景下的杜比直播。

    在基础保障方面,我们构建了全链路热备体系,包括信号热备、硬件热备、网络热备、传输链路热备和转码中心热备,确保了直播过程的万无一失。

    服务链路优化方面,我们通过流量入口限流、应用层限流、下游依赖限流和自动熔断能力,保障了服务的高可用性。经过压测和演练,服务可用性达到了99.99%以上,平均RT值为36ms。

    这些技术创新和实践积累,为阿里巴巴在未来直播领域的发展奠定了坚实基础。

    转载地址:http://utwy.baihongyu.com/

    你可能感兴趣的文章
    PHP大数组过滤元素、修改元素性能分析
    查看>>
    PHP大文件切片下载代码
    查看>>
    PHP如何下载远程文件到指定目录
    查看>>
    php如何优化压缩的图片
    查看>>
    php如何做表格,新手怎么制作表格
    查看>>
    RabbitMQ高级特性
    查看>>
    php如何定义的数位置,php如何实现不借助IDE快速定位行数或者方法定义的文件和位置...
    查看>>
    RabbitMQ集群 - 普通集群搭建、宕机情况
    查看>>
    php如何正确的获得文件的后缀名
    查看>>
    PHP如何生成唯一的数字ID
    查看>>
    PHP如何获取当前页面的最后修改时间
    查看>>
    PHP如何读取json数据
    查看>>
    PHP字符串
    查看>>
    PHP字符串递增
    查看>>
    php学习之基础语法
    查看>>
    RabbitMQ集群 - 仲裁队列、Raft协议(最详细的选举流程)
    查看>>
    PHP学习总结(11)——PHP入门篇之WAMPServer多站点配置
    查看>>
    PHP学习总结(12)——PHP入门篇之变量
    查看>>
    PHP学习总结(13)——PHP入门篇之常量
    查看>>
    PHP学习总结(14)——PHP入门篇之常用运算符
    查看>>