近日,开源 WebRTC 项目 LiveKit 正式发布了 v1.9.1 版本。该版本在稳定性、功能扩展和协议支持等方面进行了多项重要更新,进一步提升了实时音视频通信的可靠性和性能。以下是本次更新的详细内容解析:
修复(Fixed)
• 修复 pub/sub 轨道指标(track metrics)交换的问题
• 修复 SDP rid 的 bug,只清除溢出的部分
• 在
downtrack.Bind
时不要检查bindState
• 当请求的画质高于最大可用层时,返回最高可用层
• 修复
participant.go
中数据包ParticipantIdentity
覆盖逻辑的问题• 修复 iOS 上 Chrome 移动版的 SVC 编码问题
• 迁移时
offer
可能为nil
• 修复依赖:更新
github.com/livekit/protocol
模块到 v1.39.3• 为图层索引增加边界检查
• 如果是旧客户端且为
nil
,不要发送leave
• 修复
transferParticipant
时RingingTimeout
被跳过的问题• 处理 track info 中无编码器(codec)的情况
• 修复遗漏的解锁
• 修复
StopEgress
的超时处理• 修复:在刷新 token 时确保参与者类型被设置
• 不要为 RED 广告 NACK
• 不要同时发送
abs-send-time
和twcc
• 防止在确定 BWE 类型时的竞争条件
• 将 Devin 加入 readme,使其每周自动更新 DeepWiki
• 允许向 RTC 端点传递额外属性
• 当在 token 中使用凭据时发出警告
• 为 webhook 的统计桶添加协议依赖
• 真正拾取 webhook 队列长度统计的协议更改
• 实现房间指标的可观测性
• 数据通道的端到端可靠性
• 为 WHIP 添加多码流(simulcast)支持
• 在 SDP 信令消息中添加 ID
• 在 TrackInfo 中设置并使用 rid/spatial layer
• 添加丢弃乱序可靠消息的日志
• chore: 在作业创建时设置 workerid
• 在移动 egress/agent 参与者时返回错误
• SVC 中通过 RID 映射到空间层
• feat(cli-flags): 添加 CPU 性能分析选项
• 默认启用 H265
• 开始实现 Signalling V2 协议
• Signal v2:使用封装和分片作为传输消息格式
• 将所有信令消息分组到
participant_signal
中• 开始实现信号接收器接口
• 信号处理接口以及参与者特定的 HTTP PATCH
• 拆分信令分段器与重组器
• 填充 v2 中不太可能更改的消息
• 使用来自 protocol 的信令工具
• v2 信令验证端点
• 更多 v2 信令更改
• 小改动:保持 RPC 类型在服务级别
• 在边缘 Prometheus 统计中添加国家标签
• HTTP DELETE 参与者会话
• 实现可建立订阅者 PeerConnection
• 实现可连接发布者 PeerConnection 并用于异步信令
• 支持将加入请求作为 proto + Base64 编码的查询参数
• 使用包装的加入请求以同时支持压缩和非压缩
• 在加入请求中处理
SyncState
• 支持基于编码器的每码流多层
• 支持从客户端传入视频层模式并使代码更好地识别 MIME 类型
• 当参与者会话被关闭时发送
participant_connection_aborted
• 支持 G.711 A-law 和 U-law
• 从媒体流中提取视频分辨率
• 更新 mediatransport 工具以支持 3478 端口
• 单一 PeerConnection 模式
• 在 SVC 中处理帧号回绕(wrap back)
• 使用来自房间预设的离开(departure)超时
• 使用
RequestResponse
报告协议处理错误
• 在声明联合排队区域之前添加趋势检查
• 小改动:添加/使用长度检查的辅助函数
• 删除未使用的 ws 信令读取循环
• 在关闭时刷新统计
• 不再要求为 WHIP 参与者提供创建权限
• 在房间管理器构造函数中创建客户端配置管理器
• 删除未发布的层的默认 rids
• 如果 SDP 中不存在 rid,则清除 rids
• 还原清除 RIDs 的改动
• 从请求中获取 ClientInfo
• 删除未使用代码
• 复用已编译的客户端配置脚本
• feat(cli): 升级到
urfave/cli/v3
• 将 egress roomID 加载移至启动器
• 记录之前的分配以查看变化
• 不仅仅是清理接收器——移除该接口
•
ClearAllReceivers
接口现在用于暂停中继轨道• 临时更改:使用预定义的 rids
• 还原 "临时更改:使用预定义的 rids"
• 记录 SDP rids 以更好理解其映射
• 限制仅在 WHIP 路径中从 SDP 提取 rids
• 为所有编码器设置 rids
• 对于无效的 rid + track info 组合,返回默认层
• 规范化已知的 rids
• 将 agent id 转发到作业状态
• 在
StopEgress
中将ErrNoResponse
映射到ErrRequestTimedOut
,避免返回 503• 当 PeerConnection 已连接时将参与者标记为活动
• 处理
RoomConfig
中的 Metadata 字段• [ readme-manager] 更新 README
• 将
RTCRest
重命名为 WHIP• 删除 v2 信令
• 清理遗漏的 v2 代码
• 更新 Go 依赖
• 当可用时,将 SDP cid 填入 track info
• 将信令消息记录为调试级别
• 在媒体节点上记录信令消息
• 增加轨道设置信息的日志
• 更新 pion 依赖
• 更新 golang Docker 版本到 v1.25
• 更新
github.com/livekit/protocol
到 v1.40.0• 删除不必要的检查
• 分块房间更新
• 将已知的 rids 从
012
切换为210
,用于 OBS• 初始化 UA(User-Agent)解析器只执行一次
• 在迁移场景中恢复使用 answer
• 在单一 PeerConnection 模式下更好地处理迁移
LiveKit v1.9.1 版本在稳定性、功能丰富性和协议支持方面均有显著提升,尤其针对移动端兼容性、音频编码支持和信令传输效率进行了重点优化。建议所有用户升级至该版本,以获得更稳定、高效的 WebRTC 通信体验。
下载与文档:
项目地址:https://github.com/livekit/livekit
官方文档:https://docs.livekit.io
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.