pion/webrtc v4.1.5 更新详情与改动说明
近日,WebRTC Go 实现库 pion/webrtc 发布了 v4.1.5 版本(2025年10月4日),本次更新在功能、性能和兼容性方面进行了多项改进,同时修复了一些潜在问题。以下是具体更新内容说明:
1. 新增功能
- 新增接口:增加了获取 media-playout 统计信息的接口,可用于监控媒体播放的状态和性能指标。
- 新增 inbound-rtp 统计:完善了对接收端 RTP 的统计信息支持,便于开发者分析接收端性能。
- IVFWriter 新特性
- 支持修改帧率(Framerate)。
- 支持修改视频宽度(Width)与高度(Height)。
- 添加示例:
examples/data-channels-detach-create
用于展示数据通道的创建与分离操作。 - 新增选项:允许在
recvonly
模式下控制 transceiver 的复用行为。 - 支持部分匹配(partialMatch):在从远端获取 transceiver 时支持部分匹配 codec。
2. 模块与依赖更新
- pion/transport/v3 更新至 v3.0.8
- pion/interceptor 更新至 v0.1.41
- pion/srtp/v3 更新至 v3.0.8
- pion/rtp 更新至 v1.8.22
- pion/sdp/v3 更新至 v3.0.16
- @roamhq/wrtc 更新至 v0.9.1
- stretchr/testify 更新至 v1.11.1(同时有 v1.11.0 的更新记录)
- actions/setup-node 更新至 v5
- actions/checkout 更新至 v5
- CI 配置多次更新至 v0.11.29、v0.11.26、v0.11.25、v0.11.24
3. 性能与稳定性改进
-
代码优化:
- 优先使用
makezero
方式创建并设定容量(cap)。 - 清理在 peer 关闭后 statsGetter 的残留。
- 代码现代化建议应用到多个模块。
- 移除未使用的文件,提升代码整洁度。
- 优先使用
-
测试改进:
TestPeerConnection_SessionID
现在可在 WASM 环境运行。- 新增测试确保 SDP 中的方向(direction)处理正确。
4. Bug 修复
- 修复 RTPSender.SetReadDeadline 引发的崩溃问题。
- 在 goroutine 中触发 OnBufferedAmountLow 避免阻塞问题。
- 修复在 rtcp-fb 无参数时出现的尾随空格问题。
- 过滤未关联的 RTX codec,避免错误匹配。
- 匹配远端 peer 的 codec 顺序,提升兼容性。
- 考虑远端设置的 direction 以确保添加 track 时方向正确。
- 禁止不兼容的 transceiver 方向组合。
- 如果没有主 codec,则移除 RTX codec。
5. 总结
pion/webrtc v4.1.5 版本在 WebRTC 的使用中不仅提升了统计信息获取能力,对视频文件写入有了更灵活的参数调整,还修复了多项潜在的稳定性和方向匹配问题。对于依赖此库进行音视频实时通信的开发者而言,该版本提供了更完善的 API 支持和更高的兼容性,推荐尽快升级以获得最佳性能与稳定性。