mediamtx v1.15.6 Latest 版本正式发布,本次更新为一个以修复和改进为主的版本,覆盖日志系统、RTSP、SRT 以及依赖库更新等多个关键方面,同时在安全和发布流程上进一步加强。以下为 v1.15.6 的完整更新内容中文详解说明。
一、通用改进
- 1. 新增结构化日志
新增结构化日志能力,引入更加规范和可机器解析的日志格式,方便在生产环境中进行日志分析、检索和集中式收集。
- 2. 修复 H264 WebRTC 轨道录制 1 分钟时间偏移问题
修复在录制 H264 WebRTC Track 时出现的 1 分钟时间偏移问题,保证录制时间轴与实际媒体时间一致。
- 3. macOS 上禁用 syslog 日志
在 macOS 系统上默认禁用 syslog 日志输出,避免与系统日志行为产生冲突。
- 4. 优化 syslog 日志级别处理
在向 syslog 写入日志时,直接将日志级别(如 WARN、INFO 等)传递给 syslog,不再在日志内容中重复写入级别和日期。
这样可以更好地与 syslog 生态集成,并方便使用 syslog 自带的搜索和过滤工具。
二、RTSP 相关改进
- 1. 避免错误设置反向通道
修复 RTSP 中错误设置 back channel(反向通道)的问题,避免产生不必要的通道配置。
- 2. 支持 HappyTime ONVIF 和 RTSP 客户端发送的 URI 格式
增强对部分 ONVIF 和 RTSP 客户端发送的 URI 格式的兼容性,提升设备接入成功率。
- 3. 修复媒体被错误标记为反向通道的问题
部分摄像头会将媒体错误地标记为 back channel。现在通过检测完整 SDP 内容来判断:
如果 SDP 中既存在反向通道又存在标准通道,则认为反向通道是有效的;
否则将取消反向通道标记,避免错误识别。
- 4. 存在反向通道时,为标准通道添加 recvonly 属性
当 RTSP 会话中存在 back channel 时,会为标准通道自动添加 recvonly 属性,从而保证 SDP 语义正确。
三、SRT 相关修复
- 1. 修复高延迟场景下连接异常断开的问题
在监听并接受传入连接请求时,如果由于网络延迟,连接响应被对端延迟接收,会导致对端再次发送连接请求。
此前实现中:
第一个连接请求在被接受后,已从用于检测重复请求的映射中移除;
第二个请求无法识别为重复请求,会被当作新的连接请求处理,从而破坏原有连接。
本次修复通过引入一个新的映射,用于检查连接请求是否已经关联到一个已接受的连接,从而正确识别重复请求,解决高延迟环境下连接不稳定的问题。
四、依赖库更新
以下为 v1.15.6 中依赖库的完整更新列表:
- 1. code.cloudfoundry.org/bytefmt 从 v0.58.0 更新到 v0.59.0
- 2. github.com/bluenviron/gortmplib 从 v0.1.2 更新到 v0.2.0
- 3. github.com/bluenviron/gortsplib/v5 从 v5.2.1 更新到 v5.2.2
- 4. github.com/bluenviron/mediacommon/v2 从 v2.5.3 更新到 v2.6.0
- 5. github.com/matthewhartstonge/argon2 从 v1.4.3 更新到 v1.4.4
- 6. github.com/pion/ice/v4 从 v4.0.13 更新到 v4.1.0
- 7. github.com/pion/rtp 从 v1.8.26 更新到 v1.9.0
- 8. github.com/pion/sdp/v3 从 v3.0.16 更新到 v3.0.17
- 9. github.com/pion/webrtc/v4 从 v4.1.7 更新到 v4.2.1
- 10. golang.org/x/crypto 从 v0.45.0 更新到 v0.46.0
- 11. golang.org/x/sys 从 v0.38.0 更新到 v0.39.0
- 12. golang.org/x/term 从 v0.37.0 更新到 v0.38.0
- 13. github.com/pion/dtls/v3 从 v3.0.8 更新到 v3.0.9
- 14. github.com/pion/sctp 从 v1.8.41 更新到 v1.9.0
- 15. github.com/pion/stun/v3 从 v3.0.1 更新到 v3.0.2
- 16. github.com/quic-go/qpack 从 v0.5.1 更新到 v0.6.0
- 17. github.com/quic-go/quic-go 从 v0.54.1 更新到 v0.57.0
- 18. go.uber.org/mock 已移除
- 19. golang.org/x/mod 已移除
- 20. golang.org/x/net 从 v0.47.0 更新到 v0.48.0
- 21. golang.org/x/sync 已移除
- 22. golang.org/x/text 从 v0.31.0 更新到 v0.32.0
- 23. golang.org/x/time 从 v0.9.0 更新到 v0.12.0
- 24. golang.org/x/tools 已移除
五、安全与发布说明
- 1. 构建安全性
所有二进制文件均通过 Release 工作流自动从源码编译完成,全过程无人为干预,有效防止外部篡改和供应链攻击。
- 2. 二进制文件来源验证
可以通过 GitHub Attestations 验证二进制文件确实由官方工作流生成,示例如下:
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
- 3. 校验和验证
可以下载 checksums.sha256 文件,并通过以下命令验证本地二进制文件的完整性:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
总结
mediamtx v1.15.6 是一个以稳定性、兼容性和可观测性为核心的更新版本。
从结构化日志到 RTSP 和 SRT 的关键问题修复,再到大量底层依赖升级,这个版本非常适合对生产环境稳定性有高要求的用户进行升级使用。
·
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。
欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
·