在这里插入图片描述

近日,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 支持和更高的兼容性,推荐尽快升级以获得最佳性能与稳定性。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐