← 返回 PaperDaily 视觉与图像

10秒延迟吞吐量翻4倍!MoQ时间偏移ABR来了

MoQ 终于开始认真处理“人不想总盯着直播边缘”的现实需求了。本文不搞花活,直接拿时间偏移客户端做 ABR 实验,结果很实在:多给几秒缓冲,吞吐量能明显起飞。

10秒延迟吞吐量翻4倍!MoQ时间偏移ABR来了
🐉 龙哥读论文知识星球来了!
公众号每日8篇拆解不够看?星球无上限更AI领域论文、资讯、招聘、招博、开源代码,一站式干货,每日2分钟刷完即赚!
👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~ xingqiu_header

龙哥推荐理由:
MoQ 终于开始认真处理“人不想总盯着直播边缘”的现实需求了。本文不搞花活,直接拿时间偏移客户端做 ABR 实验,结果很实在:多给几秒缓冲,吞吐量能明显起飞。


原论文信息如下:
论文标题:
An Evaluation of ABR Switching for Time-Shifted Clients in MoQ
发表日期:
2026年06月
发表单位:
Baylor University, USA
原文链接:
https://arxiv.org/pdf/2606.26368v1.pdf
项目链接:
https://github.com/BaylorMultimediaLab/moqtail/

一、背景与问题:MoQ中时间偏移场景下的自适应切换需求

先把术语掰直白一点。MoQMedia over QUIC,中文可以理解成“跑在 QUIC 上的媒体传输”。它想解决的不是“能不能播”,而是“能不能又快又稳地播,而且还能像积木一样灵活切换”。这和传统的 DASH、HLS 很像,但 MoQ 更偏向推送式分发,不必老老实实一问一答地拉片段,理论上更适合低时延直播。
问题来了:直播用户并不总是执着于“必须贴着直播边缘”。有时候网络一抽风,播放器开始疯狂卡顿;有时候用户更在意连续观看,而不是那一点点延迟。此时如果 ABR(Adaptive Bitrate,自适应码率)还死守“直播边缘”,就容易出现一个很尴尬的局面:画质切得挺勤快,播放却像踩了刹车,缓冲一来,体验直接原地散步。
这篇论文盯住的就是这个“不那么追求极低时延”的现实场景。作者发现,MoQ 里现有的切换语义更像是给“贴边直播”准备的;一旦用户愿意接受几秒时间偏移,ABR 的行为空间就大多了。换句话说,多给客户端一点延迟,未必是退让,反而可能是给吞吐量和稳定性开后门。这听起来像反常识,但实验里还真有点东西。🤨
图1:基于 MoQ 的自适应流媒体整体设计。图里最关键的不是“谁发谁收”这么简单,而是中继缓存时间偏移客户端的配合:前者负责攒住最近的组,后者负责在合适的位置切换质量。
再往前捋一点,MoQ 的媒体单位并不是“一个视频文件”这种粗粒度,而是按对象、组、轨道来组织。论文里顺手把几个基础概念也讲清了:Object 可以理解成最小交付单元,Group 通常对应一段 GOP(Group of Pictures,图像组),而不同画质对应不同 Track。这样设计的好处是,切换质量时不需要“半帧半帧地硬掰”,而是尽量在组边界上完成,减少画面撕裂和时间线混乱。
但问题也很现实:如果客户端一边播放一边切轨道,旧轨道可能还在飞,新轨道又开始进,结果就是带宽像被“左右互搏”一样消耗掉。更麻烦的是,切换时如果没有把时间线对齐,客户端可能拿到的是“已经过去的内容”或者“未来还没到的内容”,播放器就会一脸懵。论文要解决的,正是这种时间偏移场景下的 ABR 切换:既要切得顺,又要切得准,还不能把网络资源搞成乱炖。

二、TSA-SWITCH机制:实现时间偏移感知的ABR切换

论文提出的方案叫TSA-SWITCH,全称是Time Shift-Aware SWITCH,中文可以叫“时间偏移感知切换”。它不是另起炉灶发明一套 ABR,而是把原来 MoQ 里偏向直播边缘的切换流程,改造成能照顾“落后直播边缘几秒”的客户端。这个思路很务实:先别急着改算法本体,先把切换语义理顺,很多问题就能少一半。
这套机制的核心有两步,名字听着像程序员给系统打补丁,但逻辑其实挺清楚。第一步是延迟订阅:客户端在订阅时直接告诉中继,自己想落后直播边缘多少个 Group。第二步是时间线到组映射:客户端维护一个 TimeMap,把播放时间戳和 Group ID 对上号。这样一来,切换时就不是“我感觉差不多了”,而是“我知道现在该落到哪个组上”。
图2:系统架构与时间偏移播放示意
图2:系统架构与时间偏移播放示意。上半部分展示发布者、带缓存的中继和客户端如何协作;下半部分则说明客户端如何落后直播边缘若干组进行播放。这个图的价值在于,它把“直播”与“时间偏移”这两个看似矛盾的状态放进了同一条时间轴里。
先看延迟订阅。客户端在 SUBSCRIBE 请求里带上一个参数,论文里叫 DELAY_GROUPS,意思是“我要比直播边缘晚 D 个组开始播”。中继拿到后,会根据当前直播边缘 L 计算目标组:gtarget = L - D。如果这个组还在缓存里,就直接从这里开始送;如果目标组太老,缓存已经没了,那就只能从最老的可用组开始;如果直播流还没长到这么多组,中继就先把订阅挂起,等时间到了再发。这个设计很像“先占座,菜还没上,等等就行”。
再看 TimeMap。播放器在前台播放时,能拿到当前播放时间 currentTime,但时间戳本身并不等于 Group ID。于是客户端维护一个稀疏映射,把 Presentation Timestamp(PTS,呈现时间戳)和 Group 对上。切换时,ABR 控制器根据当前播放位置找到对应组,再把这个组号作为 START_LOCATION_GROUP 发给中继。这样,中继就知道从哪个组开始给新轨道喂数据,避免切到一半还要靠猜。
这套机制的关键,不是“让中继变聪明”,而是把质量选择时间线同步拆开。对于直播边缘客户端,切换动作必须很快,不然就会撞上下一段 GOP;对于时间偏移客户端,切换动作可以稍微慢一点,但必须稳,不然缓存优势白给。论文甚至明确承认:这不是最终版 SWITCH 设计,而是一个用于评估 ABR 行为的实验性扩展。这个态度很对,不装大尾巴狼。👍
表1:评估的ABR配置
表1:评估的 ABR 配置。论文没有只盯着单一算法,而是把 dash.js 里常见的 ThroughputRule、BolaRule、SwitchHistoryRule,以及 LoL+、L2A-LL 等配置都拉出来一起测。这样做的好处是,能看出“时间偏移”到底对哪类策略更友好,而不是只证明某个特定配置好看。
顺手提一下缩写。BOLABuffer Occupancy-based Lyapunov Algorithm,中文常译为“基于缓冲占用的李雅普诺夫算法”;LoL+ 是低时延直播场景下的 ABR 策略;L2A-LL 则是面向低时延自适应流媒体的在线学习方法。论文引用这些方法,不是为了堆名词,而是为了证明 TSA-SWITCH 并不依赖某个“神奇算法”,而是对一类现有 ABR 都有效。

三、实验结果:10秒延迟使吞吐量提升4倍

实验这部分比较像“把系统拖到真实网络里挨一顿打,再看它能不能站起来”。作者没有直接上大规模线上测试,而是在 Mininet 里搭建可复现的网络环境,使用预编码的《Tears of Steel》前 60 秒视频,做了五档 HEVC 码率阶梯。这样做的好处很明显:实验条件可控,结论更容易复现;坏处也明显:场景还不够大,离真实直播平台还有距离。
网络侧设置也挺“讲究挨打方式”:他们设计了三类带宽曲线。Stable 是稳定低带宽,Step 是先高后低再恢复,Sinusoidal 则是周期波动。换句话说,作者不是只测“风平浪静”的情况,而是故意把 ABR 最怕的几个情形都安排上了。如果一套切换机制只在平稳网络里好看,那基本属于纸上谈兵
图3:Live-SWITCH 在直播边缘的平均结果
图3:Live-SWITCH 在直播边缘的平均结果。这个图是对照组,核心信息很直接:贴着直播边缘跑的时候,整体吞吐量并不漂亮,而且不同 ABR 配置之间差异很大。某些配置虽然切得积极,但缓冲不足时会频繁卡顿,导致“想追直播边缘,结果先被直播边缘甩飞”。
更扎眼的是,直播边缘模式下的 rebuffering(重新缓冲)并不轻松。论文里提到,某些配置的卡顿时间甚至能到播放时长的 24%。这说明一个朴素但容易被忽略的事实:“不许落后”本身就是一种高风险策略。一旦网络波动,播放器只能靠频繁跳转和短缓冲硬顶,体验自然不稳定。相对来说,LoL 和 All 这两类配置表现更均衡,说明在直播边缘场景里,保守一点反而更像“成熟的工程选择”。
图4:TSA-SWITCH 从直播边缘开始时的平均结果
图4:TSA-SWITCH 从直播边缘开始时的平均结果。这里就开始有意思了:客户端仍然从直播边缘起播,但一旦发生卡顿,它不再强行“硬追直播”,而是允许自己进入时间偏移状态。结果是,吞吐量显著上升,因为播放器获得了更多缓冲和选择空间;代价是,重缓冲时间也可能增加。
但这里的“增加”不是纯坏事。论文的观察是:对于 Stable 这类稳定带宽,All 配置下的平均重缓冲时长不到 4 秒,却能换来约 4 倍吞吐量提升。这就很像开车时稍微松一点油门,车速不一定更快,但整体更顺,少急刹,少折腾。对于视频播放来说,连续性往往比“死守某个时间点”更值钱。
图5:TSA-SWITCH 以10秒延迟开始时的平均结果
图5:TSA-SWITCH 以 10 秒延迟开始时的平均结果。这张图基本就是论文最亮眼的地方。客户端一开始就离直播边缘有 10 秒缓冲,结果在多个带宽配置下都能拿到更高、更稳定的吞吐量,部分场景下播放码率能更接近 4000 kbps 的上限。简单说就是:时间上不那么“赶”,画质上反而更“敢”
尤其在 Sinusoidal 这种持续波动的带宽下,10 秒延迟给了 ABR 更大回旋余地,质量切换次数减少,码率曲线也更平滑。Step 场景则没那么讨喜,因为带宽跳变太猛,ABR 再聪明也得先挨一下现实的耳光。不过即便如此,时间偏移带来的“缓冲垫”仍然能缓解一部分抖动。论文的结论很克制:不是说时间偏移能解决一切,而是说它确实能给 MoQ 的 ABR 切换提供更大的操作空间
为了让结果更直观,论文还给出了一条时间序列图,展示代表性实验中码率如何随时间变化。Sinusoidal 场景下,时间偏移越大,系统越容易稳定在较高码率附近,说明缓存和延迟容忍度确实给了 ABR 更多“喘气空间”。这类图很适合说明一个工程事实:ABR 不是会算就行,它还得有足够的时间和缓冲去做决定
图6:正弦带宽下代表性实验的时间序列
图6:正弦带宽下代表性实验的时间序列。它展示的不是某个单点指标,而是切换过程本身如何演化:码率上上下下,缓冲时长跟着波动,时间偏移越大,曲线越容易“站稳”。对理解 TSA-SWITCH 的价值来说,这张图比单独看平均值更有说服力。

四、优势与局限:填补空白但实验规模有限

这篇工作的优点很明确:它没有把 MoQ ABR 只理解成“直播边缘的极限冲刺”,而是认真考虑了一个更接近真实用户行为的场景——用户愿意接受一点延迟,换来更少卡顿和更高画质。这个视角非常工程化,也很符合流媒体系统的现实逻辑。很多时候,系统不是缺一个更炫的算法,而是缺一个能把“时间关系”说清楚的机制。
另一个优点是可复现性。作者把实现放进开源 MOQtail 里,还配了 Mininet 测试框架。对流媒体研究来说,这很重要,因为很多论文的“效果很好”只存在于作者的实验室里,一换机器就开始表演失忆。这里的做法至少让后续工作有了可继续往下接的地基。再加上他们明确指出 SWITCH 还在演进中,这种“先把问题测出来”的姿态,比空喊协议愿景更靠谱。
不过局限也不小。第一,实验规模偏小,视频只取了 60 秒片段,网络条件也主要是三类带宽曲线。对于 MoQ 这种面向更广泛实时媒体场景的协议来说,这还只是“先摸一把脉”。第二,切换时延仍然偏高,尤其是 live-oriented 客户端;论文自己也指出,如果 SWITCH 执行慢于一个 GOP 周期,客户端就会收到一些已经过期的数据,然后再被播放器丢掉。这个现象说明瓶颈很可能不在 ABR 选择本身,而在中继侧的切换执行开销。
第三,论文目前还没有把“中继协同决策”做深。作者在结尾提到,未来可以让中继根据自己和上游发布者的连接情况,给客户端提供参数建议,甚至发展成混合式 ABR。这个方向很有意思,因为它意味着 ABR 不再只是播放器的单机决策,而是可能变成客户端、 relay(中继)和上游链路共同参与的协同控制。一旦做成,MoQ 的“智能切换”就不只是切画质,而是切一种更完整的媒体传输策略。

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:

这篇论文到底解决了什么问题?它研究的是 MoQ 场景里“时间偏移客户端”的 ABR 切换问题。也就是:用户不一定非要贴着直播边缘看,允许自己落后几秒后,系统能不能切得更稳、码率更高、卡顿更少。

TSA-SWITCH 里的 DELAY_GROUPS 和 START_LOCATION_GROUP 是什么意思?前者是订阅时告诉中继“我要比直播边缘晚多少个组开始播”;后者是切换时告诉中继“新轨道从哪个组开始接”。一个管起点延迟,一个管切换落点,俩参数配合起来,时间线才不会乱。

为什么多等几秒,吞吐量反而可能更高?因为时间偏移给了客户端更多缓冲和更大的选择空间。ABR 不用每次都在“快饿死”的边缘做决定,可以更从容地选更高码率,减少频繁切换和抖动,所以整体吞吐量和画质都有机会提升。

如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★☆☆

创新点不算“天降神兵”,但切中了 MoQ 里一个很实际、也很容易被忽视的空白:时间偏移客户端的 ABR 切换。

实验合理度:★★★★☆

Mininet、预编码视频、三类带宽曲线、多个 ABR 配置,组合得比较完整;就是规模还偏小,离大规模真实部署还差一步。

学术研究价值:★★★★☆

它为 MoQ 的切换语义和时间偏移播放提供了可验证的实验依据,后续做协议设计、播放器策略和中继协同都能拿来接着用。

稳定性:★★★☆☆

思路是稳的,但切换时延和缓存命中还受实现细节影响,离“拿来就能大规模商用”还有距离。

适应性以及泛化能力:★★★★☆

它不依赖单一 ABR 策略,对多种 dash.js 配置都能工作,说明方法层面有一定通用性。

硬件需求及成本:★★★★☆

实验依赖 Mininet 和常规浏览器/中继环境,计算成本不夸张;真正成本主要在协议栈和缓存实现的工程复杂度。

复现难度:★★★★☆

开源项目和测试框架都给了,复现友好;但要把整套 MoQ 堆栈跑顺,还是得有点工程耐心。

产品化成熟度:★★★☆☆

适合做原型验证和协议演进参考,离成熟产品还需要更低切换时延、更大规模验证和更强的异常处理。

可能的问题:实验规模偏小,切换时延仍高,且主要验证了“能工作”,还没证明“在复杂真实网络里始终最好”。


主要参考文献

[9] S. Nandakumar, V. Vasiliev, I. Swett, and M. Thomson, “Media over QUIC Transport.” IETF Internet-Draft draft-ietf-moq-transport, 2026. Work in Progress, rev. 17.
[13] Z. Gurel, D. Ugur, and A. C. Begen, “Moqtail: Open-source, ietf-compliant moqt protocol libraries,” in Proceedings of the ACM Multimedia Systems Conference 2026, MMSys ’26.
[22] DASH Industry Forum, “dash.js: Reference MPEG-DASH player.” 2025.
[25] K. Spiteri, R. Urgaonkar, and R. K. Sitaraman, “BOLA: Near-Optimal Bitrate Adaptation for Online Videos,” IEEE/ACM Transactions on Networking, 2020.
[29] A. Bentaleb, M. N. Akcay, M. Lim, A. C. Begen, and R. Zimmermann, “Catching the Moment With LoL+ in Twitch-Like Low-Latency Live Streaming Platforms,” IEEE Transactions on Multimedia, 2022.
论文原文:https://arxiv.org/pdf/2606.26368v1.pdf
开源项目:https://github.com/BaylorMultimediaLab/moqtail/

*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

end
欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群
想追 MoQ、视频流媒体、ABR 和系统实现的前沿解读,进群一起把论文拆成大白话,少走弯路多看门道。🚀
wechat_helperdianzan
转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。