# RTC 实时音视频入门：系列目录

作者：Hex4C59 · 发布于 2026-10-14

原文：https://hex4c59.cc/articles/rtc-from-zero/


这个系列面向第一次学习实时音视频的读者，不要求先掌握网络协议或编解码。每篇围绕一个完整问题，把相关机制、数据计算和处理过程放在一起，再用可复现实验检查结论。纯模型的结果与真实编解码输出会分别注明，避免把教学参数当作产品表现。

阅读正文只需要基本的加减乘除。先按顺序理解例子，再合上答案做每篇的新条件练习。遇到报头字节、位运算或编解码接口时，可以按文中的提示稍后回看；它们用于进一步理解实现，不是完成基础判断的前提。

可复现实验需要另外准备运行环境：前六篇的基础实验脚本使用 Python 3.9+；第二篇可选的真实编解码需要 FFmpeg，第四篇则需要可单独加载的 libopus。没有这些环境，也可以先完成正文与纸面练习。当前七篇先学习语音链路中的时间、数据、恢复、发送预算和收发记录，再理解连接建立。第七篇的浏览器实验只传测试文本，后续再加入真正的媒体轨道。

| 读完哪一篇 | 应当能够独立完成什么 |
| --- | --- |
| 01 | 根据到达、处理和播放时刻，算出还能等多久，并解释增加缓冲的代价 |
| 02 | 从时长和 PCM 格式计算样本数、字节数，分清原始声音与压缩负载 |
| 03 | 对一段新收包记录分别判断重复、乱序、迟到和到期缺失 |
| 04 | 检查可用信息与剩余时间，说明重传、FEC、PLC 各自能做什么 |
| 05 | 统一发送预算，判断队列增长与回落，分清减少产出和发送平滑 |
| 06 | 计算收发间隔差，区分相邻变化、持续增长与未知的绝对延迟 |
| 07 | 分清信令、候选、已选路径和实际数据，用连接记录确定下一步检查位置 |

[阅读第一篇：实时通话为什么不能一直等](https://hex4c59.cc/articles/rtc-01-why-real-time/)

## 当前文章

- [01：实时通话为什么不能一直等](https://hex4c59.cc/articles/rtc-01-why-real-time/)：沿声音路径计算延迟预算，用时间图比较缓冲、迟到与恢复的取舍。
- [02：声音从麦克风到扬声器](https://hex4c59.cc/articles/rtc-02-audio-path/)：跟踪同一段声音的样本、字节和块长变化，用合成音运行真实 Opus 编解码实验。
- [03：从一段收包记录读懂 RTP](https://hex4c59.cc/articles/rtc-03-sequence-gap/)：从乱序声音引出序号和时间戳，先判断收包与播放，再读报头、统计与打包开销。
- [04：丢包后，重传、FEC 和 PLC 怎么选](https://hex4c59.cc/articles/rtc-04-loss-recovery/)：先理解冗余恢复与替代输出，比较同一期限下的恢复路径，再用真实 libopus 正反例核对。
- [05：带宽没跟上，声音为什么越排越晚](https://hex4c59.cc/articles/rtc-05-send-queue/)：算完整包预算，比较排队增长、停止和回落，用交互曲线与逐包模型检查发送等待。
- [06：怎样从收发记录看出延迟在增长](https://hex4c59.cc/articles/rtc-06-delay-trend/)：配对收发记录，计算间隔差和相对变化，检查尖峰、发送前排队、时钟误差与乱序。
- [07：两端怎样找到能通话的网络路径](https://hex4c59.cc/articles/rtc-07-connection-setup/)：从地址与 NAT 讲到信令、ICE 和中继，再用本机浏览器观察候选、已选路径和数据回传。

## 后续方向

接下来进入双端通话实验，把媒体轨道接到已建立的路径上，分别核对采集、收发、解码与实际输出。后续再把接收反馈、发送调整和实际队列变化放到一起核对，继续讨论视频编码、音画同步与多人通信。篇章会按实际写作进展拆分，完成的文章再加入目录。

