打造“零距离”互动直播间,低延时流媒体技术实践

简介: 如何提升直播过程中三个要素之间的互动,让主播与主播之间、主播与粉丝之间达到一致 的用户体验?优酷直播流媒体团队做了低延时流媒体技术的探索实践,实现了在用户体验不下 降的基础上,让主播与主播延时<300ms,主播与粉丝延时<600ms,解决了直播间各类互动问题。

作者| 阿里文娱技术专家 乾戒

一、行业的用户体验分析

互动直播场景中有主麦主播、辅麦主播、粉丝三个要素,这三者之间关系构成了直播间的 各种互动场景。
1)主麦主播、辅麦主播可以无障碍的进行音视频通话,通常延时在 300ms 以内;
2)(主麦、辅麦)主播与粉丝互动场景;主播说话,而粉丝以文字、图片、送礼物等方式 进行互动;这种差别造成一次互动的延时在 3000ms 以上,想象一下如下互动场景:
a)进场特效播放完依然没有收到问候; b)当主播与粉丝一起玩“王者荣耀”时需要偷塔时,无法满足; c)当主播与主播 PK 时,其中一个主播最后几秒想拉票时,无法满足。
如何提升直播过程中三个要素之间的互动,让主播与主播之间、主播与粉丝之间达到一致 的用户体验?优酷直播流媒体团队做了低延时流媒体技术的探索实践,实现了在用户体验不下 降的基础上,让主播与主播延时<300ms,主播与粉丝延时<600ms,解决了直播间各类互动问题。

二、作茧自缚-传统解决方案

传统直播解决方案中主播之间以实时通信的方式传输延时小于 300ms,但是主播与观众之 间通过链路传输、CDN 分发整个延时往往在 3000ms 左右;如下图:

image.png


从图上我们可以看到产生延时的主要原因就是 RTMP 传输链路、CDN 环节、观众播放器缓 存三个环节产生;如果想要提升用户的体验,就必然从这三个环节上做改动,尤其是 CDN 把 持了传输链路环节,然而 CDN 不是你想改就能改的。
基于这样的分析我们可以得出这样的结论:
1)视频 CDN 大大减少了开发人员的工作量;
2)你能做多好,取决于你控制的链路有多长;
3)CDN 侧不可控,所以等待 CDN 的改变也遥遥无期;
4)CDN 侧不可控,所以做一个和服务器交互的低延时播放器也没戏;
5)传统的解决方案是一张温柔而又可怕的温床。

三、蜕变之痛-低延时直播系统

针对上面的问题,我们解决方案简单粗暴:做一个全链路都可以控制的流媒体传输系统, 如下图:

image.png

1. 山重水复疑无路-项目挑战

想好就做,但是蛮干往往没有好结果。这个设计使用 CDN 的思想改造了整个实时通信系 统,既兼顾 CDN 的大并发分发,又兼顾实时通信的低延时。无论是谈实时通信系统还是谈 CDN 都不是个小题目,何况两个融合的系统,这里面“水很深”“坑很多”。

image.png

然而挑战还不止这些,实际的工程中,如何降低延时、如何保证流畅率往往有是相互矛盾 的话题,降低延时就要降低播放侧 buffer 和服务侧的 buffer,随之卡顿率就会上升;而想流畅率 上升就要增大 buffer,随之延时就变得更长;无论怎么调整 buffer,问题都这里,如何解决呢?

image.png

2.柳暗花明又一村-解决方案

低延时直播系统根据具体业务需求,融合 CDN、私有实时通信协议、WebRTC、云原生等 技术完美解决了项目的各类苛刻要求,把问题模型转换为技术角度看:

image.png

1)延时的产生及可控性分析:

image.png


从上图我们可以看出来,可控的唯二也就是传输层、播放器 buffer 两部分了。在低延时项 目中 RDN 系统控制了整个传输过程,优化了每一个细节,把延时降至 118ms 以内,低延时播 放器自适应动态控制 buffer 大小、严格控制音视频加减速,保证流畅率的基础上又使延时在 415ms 以内。通过控制播放侧目标延时实现流畅优先、延时优先两种策略,满足主播连麦互动、 粉丝互动两种业务场景。
2)CDN 进阶为 RDN 系统
传统的 CDN、视频会议系统可以自行查看网上的方案,RDN 系统是一个融合 CDN 架构, 并以视频会议媒体服务器为节点的系统。RDN 在进行媒体传输采用懒加载的方式进行,当主播 把流传输至接收的边缘节点,此时如果有观众播放流,会通过 GSLB 返回最近的边缘节点并进 行资源的索引把流快速的下发至播放侧的传输 SDK。媒体流的分发示意图如下:

image.png

3.唯快不破-传输延时如何降至最低

传输延时、播放侧延时是唯二可控的部分,且看我们如何把传输降到最低:

image.png

1)播放器进阶为低延时播放器 低延时播放器是系统中延时控制的重要环节,是系统中唯一延时可控且可调的部分。相比
于传统播放器功能既要满足流畅率、秒开率、音画同步等用户指标,又要保证延时足够低。低
延时播放器架构图:

image.png

4.用户体验第一-低延时场景下如何保证用户体验

低延时播放器通过定制优化后的 neteq,抵抗网络的抖动、丢包等问题,显著提升弱网情况 下的用户体验,通过滤波后的音画同步方案,保证在音视频快速加减速同时又能保证用户的体验。

image.png

1)扁鹊全链路监控系统 扁鹊系统收集端侧、服务器侧日志,不但整个链路的服务质量,也用于排查各类线上问题。

image.png

四、羽化之美-数据报告

在流畅率、秒开率不低于传统直播方案的场景下,互动延时指标大幅降低 86%。系统自 2017 年稳定运行至今,为直播用户提供了低延时互动、点击即见、清晰、流畅的高质量互动直播间。 并支撑了来疯秀场 PK,低延时直播各类场景,保证了来疯两年多的各类比赛顺利进行。

五、回顾历史-我的思考

低延时直播系统是由传统直播技术、实时通信技术、WebRTC 技术融合,专为互动直播而 生的系统。达到了文字和音视频同步的效果,像“欢迎大哥”“拉拉票”、“打他”这些欢迎、拉票 等直播互动再也不需要等待。回顾整个系统的诞生,我的技术思想也在逐渐的变化,回想初次 接触这三个技术:
1)传统直播技术 = RTMP、CDN、ijkplayer 2)实时通信技术 = MCU、SIP、RTP/RTCP
3)WebRTC 技术 = JSEP、P2P 、SFU、ICE、SDP、neteq 后来深入了解这些技术细节、互动直播业务的需求、开发过程中的痛点,开始思考可以用
这些技术再往前走一步,自研一套低延时直播系统一劳永逸的解决这些问题。经过前期详细论
证确定正确方向后,虽然过程困难重重,秉着“只要路对了就不怕远”“只要精神不滑坡,方法总 比困难多的”精神,最终还是安全的抵达了对岸。


本章内容出自《智慧文娱》电子书,118篇精选文章,900页丰富呈现,覆盖8大技术栈,纵览文娱技术全景。阿里文娱团队匠心出品,点击免费下载完整版!

相关文章
|
机器学习/深度学习 传感器 人工智能
物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT
物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT
物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT
|
人工智能 IDE 开发工具
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
Trae是字节跳动推出的一款免费的AI集成的开发环境,集成了Claude3.5与GPT-4o等主流AI模型,提供AI问答、智能代码生成、智能代码补全,多模态输入等功能。支持界面全中文化,为中文开发者提供了高效的开发体验
9085 11
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
|
6月前
|
JavaScript 前端开发 Java
基于springboot的美食食品商城系统
本项目研究美食食品商城系统的设计与实现,顺应数字化时代消费需求,结合SSM框架、Vue、Java与MySQL技术,构建功能完善、高效安全的电商平台,推动食品行业转型升级。
|
缓存 前端开发 JavaScript
React常见面试题(2024最新版)
React常见面试题(2024最新版)
464 1
|
存储 固态存储 测试技术
电脑性能的影响因素
电脑性能的影响因素【10月更文挑战第31天】
1128 2
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
1164 3
|
存储 运维 监控
运维.Linux下执行定时任务(中:Cron的常用替代方案)
本文是关于Linux下执行定时任务系列的第二部分,主要探讨除了Cron之外的常用替代方案。介绍了Systemd Timers、Anacron及at命令三种工具,它们分别适用于不同场景下的定时任务需求。文章详细分析了每种工具的特点、工作原理、基本使用方法及其高级功能,并对比了它们各自的优缺点,帮助读者根据实际情况选择最适合的定时任务解决方案。此外,还提供了指向具体实例和进一步阅读材料的链接。
934 4
运维.Linux下执行定时任务(中:Cron的常用替代方案)
|
编解码 流计算
直播推流的工作原理是什么
直播推流将视频和音频数据从设备实时传输到服务器并分发给观众,涉及采集、编码、推流、传输、拉流和显示六个关键步骤。首先通过摄像机或麦克风采集音视频,再利用编码器如OBS压缩数据,采用H.264等格式编码,接着通过RTMP等协议推流至服务器,服务器调整格式后通过HLS等协议分发给不同设备,观众即可实时观看。此流程确保了低延迟的全球内容传递。
|
人工智能 开发工具 git
【AI的未来 - AI Agent系列】【MetaGPT】5. 更复杂的Agent实战 - 实现技术文档助手
【AI的未来 - AI Agent系列】【MetaGPT】5. 更复杂的Agent实战 - 实现技术文档助手
707 0
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
990 0

热门文章

最新文章