【音视频流媒体进阶:从网络到 WebRTC】第22篇-实战:超低延迟直播方案
实战:超低延迟直播方案
前言
走到这一篇,整个系列教程的知识拼图已经接近完成。从最底层的 Socket 编程、I/O 多路复用,到 RTP/RTCP、RTMP、HLS、SRT、WebRTC,再到上一篇的直播系统和视频会议系统——我们已经掌握了构建流媒体系统所需的全部核心技术。
但在真实的业务场景中,有一个问题始终悬而未决:延迟。
传统 RTMP 直播的端到端延迟在 3~5 秒,HLS 更是高达 10~30 秒。对于普通的娱乐直播,这个延迟尚可接受。但当场景切换到直播带货(“3、2、1,上链接!”)、赛事竞猜(比分已经进了但观众还没看到)、在线教育互动(老师提问后要等 10 秒才看到学生举手)、远程连麦(对话延迟超过 300ms 就令人不适)时,几秒甚至十几秒的延迟就成了体验的致命伤。
超低延迟直播——端到端延迟控制在 1 秒甚至 500ms 以内——是行业持续追求的目标。这不是靠调一个参数就能实现的,它涉及从采集、编码、传输、服务器处理到播放端的全链路优化,是我们整个系列所学知识的综合运用。
本文作为系列的收官之作,将系统地分析延迟的来源,对比各主流低延迟方案,并给出基于 WebRTC(WHIP/WHEP)和 SRT 的完整实战方案和端到端优化清单。
1. 延迟组成分析
要优化延迟,首先要知道延迟从哪里来。一帧画面从主播的摄像头到观众的屏幕,经历了一条完整的处理流水线,每个环节都会引入延迟。
