


2025 年 12 月 5 日,pion/webrtc 发布了最新版本 v4.1.7。该版本在稳定性、性能和协议兼容性方面都有明显提升,同时对多个依赖模块进行了更新。本次更新的重点包括对 RTP、ICE、DTLS、SRTP 等模块的升级与新特性支持,以及对测试稳定性的改进。
主要更新内容
1. 新功能与选项支持
-
增加忽略 rid 暂停的选项
新增了在
a=simulcast:recv中可选择忽略 rid 暂停的功能,使得在多码流接收场景下更加灵活。 -
精准 RTP 时间戳支持
引入
WithDirectPTS选项,可实现更精确的 RTP 时间戳处理,提升音视频同步效果。 -
ICE 候选 Trickling 能力检测
新增
CanTrickleICECandidates方法,用于判断是否支持 ICE trickling,这对于减少连接建立时间非常有用。 -
支持广播 ICE trickling 信息
增强 SDP 中 ICE trickling 的能力声明。
-
DTLS Cipher Suites 可配置
新增了配置 DTLS 密码套件的选项,让用户可根据安全性需求选择不同的加密算法。
2. 协议与流处理改进
-
Simulcast 改进
- 在探测过程中不再丢弃数据包,提高多码流切换的平滑度。
- 考虑首个数据包读取 Simulcast IDs,改善媒体流识别性能。
-
NACK/RTX 重传测试优化
- 增加了确定性 NACK/RTX 重现测试,提高重传机制的可预测性。
3. 模块更新
本次版本升级同步更新了多个依赖模块,确保性能与兼容性:
- RTP 升级至 v1.8.26
- ICE/v4 升级至 v4.0.13,并在此版本中多次小更新至 v4.0.12 与 v4.0.11
- DTLS/v3 升级至 v3.0.8
- SRTP/v3 升级至 v3.0.9
- SCTP 升级至 v1.8.41
- Interceptor 升级至 v0.1.42
- TURN/v4 升级至 v4.1.3,以及 v4.1.2
- Transport/v3 升级至 v3.1.1 与 v3.1.0
- STUN/v3 升级至 v3.0.1
- RTCP 升级至 v1.2.16
4. 测试与稳定性提升
- 修复多个测试用例的竞争条件问题,减少测试过程中的偶发失败。
- 改进 Trickling-ICE 示例代码,提升演示效果。
- 增加简单的 datachannel 示例(含 demo.html),方便开发者快速上手。
- 改进 datachannel 示例性能。
- 增加自定义日志示例说明。
- 多项 CI 配置更新,确保持续集成环境的稳定。
总结
pion/webrtc v4.1.7 在多媒体传输稳定性和协议兼容性上有显著提升,尤其是 Simulcast 优化、ICE trickling 支持、精准 RTP 时间戳以及可配置 DTLS 密码套件,为开发者提供了更多控制和优化的可能性。同时,此次更新同步维护了依赖库版本,保障了整体系统的安全与性能。