课程 · 系列目录

RTC 实时音视频入门

从一通语音电话开始,逐步理解实时音视频的时间约束、声音处理、网络传输和弱网恢复,再进入连接建立与实际通话实验。

Hex4C59 3 分钟阅读 更新于 2026-10-15

软件工程·原创·概念与设计

7 章开始阅读 →

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

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

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

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

阅读第一篇:实时通话为什么不能一直等

当前文章 #

后续方向 #

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

一起讨论

选中正文中的文字,可以针对这段内容发起讨论。

正在读取讨论…

在 GitHub 查看与管理讨论 ↗

文章讨论