mediamtx v1.21.2发布:UDP、JWT、RTSP、RTMP、HLS、WebRTC全面修复,稳定性与安全性再提升
2026年10月10日mediamtx 发布 v1.21.2 最新版本。本次更新以“修复与改进”为主覆盖通用逻辑、API、Media-Over-QUIC、RTSP、RTMP、HLS、WebRTC 以及依赖库升级等多个方向。v1.21.2 没有引入新的功能模块而是集中处理实际运行中可能出现的连接异常、数据包丢失、内存占用、认证阻塞、并发竞争、死锁、播放器兼容性和异常请求导致崩溃等问题。对于使用 UDP、RTSP、RTMP、HLS、WebRTC、JWT 鉴权、API 配置管理的部署场景这一版本带来了更稳健的行为表现。版本信息版本v1.21.2发布时间2026年10月10日类型修复与改进版本通用改进优化 UDP、JWT、内存与 H264 处理本次更新首先对连接关闭、鉴权请求、空数据报和视频编码单元处理进行了调整。修复连接关闭时丢弃 UDP 数据包的问题此前在连接关闭过程中只要出现错误UDP 数据包就可能被丢弃而不考虑数据包自身大小。现在的逻辑变更为仅当 UDP 数据包为空且同时发生错误时才会将该数据包丢弃。这样可以避免连接关闭期间因错误状态导致正常 UDP 数据包被错误丢弃。该修复对应 6278。修正 YouTube RTMPS 地址文档文档中此前提供的 YouTube RTMPS 地址存在错误。v1.21.2 对该地址进行了修正同时明确指出当前不再需要配置指纹信息。该修复对应 6286。防止旧版凭据配置导致播放服务被无条件访问当系统使用旧版凭据字段时包括readUserreadPasspublishUserpublishPass此前播放服务可能会向所有访问者开放而不是仅向具备读取凭据的用户开放。v1.21.2 调整后播放服务仅允许使用 readUser 与 readPass 的用户获得访问权限从而避免旧版凭据场景下出现任何人都能访问播放服务的问题。该修复对应 6311。JWT 鉴权未携带令牌时不再请求 JWKS此前JWT 鉴权流程会在检查请求是否携带令牌之前先去获取 JWKS。这会导致匿名请求也触发向 JWKS 服务端发起外部请求。例如第一次未认证的 RTSP DESCRIBE 请求返回 401 之前的 HLS 请求其他没有携带 JWT 的匿名访问请求。更严重的是JWKS 获取过程发生在管理器写锁持有期间。如果 JWKS 服务响应缓慢、不可达或异常匿名客户端就可能不断触发外部 JWKS 请求并使所有 JWT 鉴权过程受到阻塞。v1.21.2 对此进行了优化如果请求没有携带 JWT直接返回“JWT 未提供”在确认请求携带 JWT 之前不再访问 JWKS增加 JWKS HTTP 响应状态码检查非 2xx 的 JWKS 响应将被直接拒绝。此前如果 JWKS 服务返回错误页程序可能会将错误页直接交给 JSON 解码器最终表现为不清晰的 JSON 解析错误。更极端的情况下如果错误响应恰好是合法 JSON该内容还可能被缓存为密钥集合一小时。现在非 2xx 响应会按状态码被明确拒绝。对于携带 JWT 且 JWKS 服务正常的请求原有行为保持不变。该修复对应 6274。修复可回退读取器可能造成内存耗尽的问题空 UDP 数据报可能导致不必要的条目分配从而增加内存消耗并可能引发 OOM 问题。v1.21.2 修复了空数据报导致无意义分配的情况避免这些空数据包不断创建不必要的内部对象。该修复来自 mediacommon 383。H264撤销对独立 SEI 单元的兼容处理此前曾针对独立 SEI 单元增加支持但此类单元现在会在更上游的位置被过滤因此不再需要在该位置继续兼容。v1.21.2 撤销了此前对独立 SEI 单元的支持逻辑。如果后续因此产生新的问题则需要通过问题反馈进行进一步调整。该变更来自 mediacommon 142 的回退以及 mediacommon 384。H264DTS 提取器支持 SEI 恢复点v1.21.2 的 DTS 提取器开始支持 H264 中的 SEI recovery point 消息。SEI recovery point 的负载类型为 6。现在系统会将其视为随机访问点其行为类似于 H265 中的 CRA。这样DTS 提取器可以从恢复点之后的第一个编码帧重新初始化自身状态。该改进对应 mediacommon 341。API 改进修复 RTSP 会话竞争、密码覆盖与关闭死锁API 相关更新主要处理并发操作、密码配置回写和 API 重载期间的死锁问题。修复踢出 RTSP 会话时的竞争条件当通过 API 踢出 RTSP 会话时系统此前可能发生竞争条件。v1.21.2 修复了该问题涉及 6260 与 6275。配置补丁不再将空字符串写入密码部分用户会调用/config/global/get获取配置内容再将返回结果提交给/config/global/patch。由于配置读取接口现在会对密码进行脱敏并将密码字段替换为这些空字符串如果被直接用于补丁更新就可能被当作实际密码写入导致认证被破坏。v1.21.2 调整后/config/global/patch会忽略值为的密码字段原本已经配置的密码将保持不变脱敏后的密码字段不会再意外覆盖真实密码。相关讨论地址为https://github.com/bluenviron/mediamtx/issues/6287该修复涉及 6141 与 6292。修复 API 重载期间的死锁此前当 API 正在关闭时某个/config接口请求可能正在等待服务端回复。与此同时服务端在关闭 API 时又会等待全部 API 接口请求结束从而形成相互等待/config请求等待服务端响应服务端等待 API 请求返回API 请求无法结束服务端关闭流程无法继续。v1.21.2 通过在 API 关闭时取消 API 接口到服务端的请求解决了这一死锁问题。该修复涉及 6280、6279 和 6310。Media-Over-QUIC 改进目录轨道名称标准化Media-Over-QUIC 中的 catalog 轨道名称此前为.catalog。该名称不符合标准。v1.21.2 将 catalog 轨道名称调整为catalog该修复对应 6268。RTSP 改进读取错误、UDP 缓冲区、SEI 单元与 JPEG RTP 支持RTSP 部分包含多个稳定性和兼容性改进涉及读取错误处理、静态源参数生效时机、错误返回码、H264/H265 数据过滤及 RTP/JPEG 实现。出现读取错误时停止转发此前RTSP 数据在出现读取错误后转发流程可能仍继续进行。v1.21.2 调整为一旦发生读取错误停止继续转发。该修复对应 6266。路径级 rtspUDPReadBufferSize 首次连接立即生效RTSP 静态源此前会先创建客户端再读取路径级别的rtspUDPReadBufferSize配置。这会导致该配置无法在第一次连接时生效而是要等到后续重新连接时才会传递给客户端。v1.21.2 将该参数的计算时机提前到客户端创建之前使路径级rtspUDPReadBufferSize在第一次连接时即可生效。这一行为与 MPEG-TS 源、RTP 源的处理方式保持一致也恢复了此前某次修改之前的行为。该修复对应 6291。调整部分 RTSP 方法的错误返回码RTSP 服务端部分方法的错误返回码进行了调整。该改动来自 gortsplib 1091 与 1174。过滤独立存在的 H264/H265 尾随 SEI 单元部分摄像机可能生成非标准的 H264/H265 访问单元。这类访问单元仅包含一个 SEI 单元并且该 SEI 位于其他单元之后。这类数据会给下游组件带来多个问题包括DTS 提取器处理异常录像模块处理异常H264/H265 数据流解析兼容性下降。此前H265 DTS 提取器曾被调整以兼容这种数据但类似问题又在 H265 场景中再次出现。v1.21.2 选择从源头过滤这类独立存在、且作为尾随单元出现的 H264/H265 SEI 数据从而避免问题继续传递到后续处理流程。相关变更涉及 3614、mediacommon 142、6257、mediacommon 382 以及 gortsplib 1184。所有解码器至少返回 1 字节RTSP 相关解码器现在保证至少返回 1 字节数据。该改进来自 gortsplib 1185。补全 RTP/JPEG 实现v1.21.2 完善了 RTP/JPEG 的实现新增对 restart header 的支持。同时JPEG 类型支持范围限定为JPEG 类型 0JPEG 类型 1。该改进来自 gortsplib 1187。RTMP 改进连接异常识别、并发写入与消息处理兼容性提升RTMP 模块本次改进主要面向断开连接识别、写入安全性、发布端消息积压、视频命令帧和空音频消息兼容。服务端写入时也检测读取错误此前系统主要依赖写入错误判断 RTMP 连接是否已经断开。但是在服务端持续写入时连接可能已经发生读取错误而写入操作未必立刻报错。v1.21.2 增加了读取错误检查在服务端写入期间也能够识别断开的 RTMP 连接。该修复对应 6267。rawmessage.Write 改为线程安全rawmessage.Write现在具备线程安全能力避免并发写入场景下的异常行为。该改进来自 gortmplib 136。Writer 主动排空入站消息有些 RTMP 服务端即使客户端处于推流状态也会周期性发送消息。此前如果这些入站消息没有被读取它们会填满内部连接缓冲区最终导致周期性断开连接。v1.21.2 中Writer 也会主动读取并排空入站消息避免这些消息在内部缓冲区不断积压。该改进涉及 5776 和 gortmplib 132。支持 FLV 视频命令帧并跳过空音频消息部分服务端会在第一个视频帧之前发送视频信息或命令帧。这种视频命令帧通常为 2 字节消息包含帧类型 5一个命令字节例如开始 seek 或结束 seek。此前视频消息反序列化会因为长度不足而拒绝该消息进而导致整个连接中止。v1.21.2 对视频消息进行了扩展增加Video.FrameType字段帧类型包括关键帧、互帧和命令帧增加Video.Command字段原有Video.IsKeyFrame被弃用建议使用FrameTypeReader 会跳过命令帧因为命令帧不承载媒体数据。此外部分服务端还会在第一个音频帧之前发送空音频消息。此前空音频消息会因为消息体字节不足而被拒绝并导致连接中止。v1.21.2 对空音频消息的处理方式如下空消息体会被解析为Codec 0的 Audio 消息不设置其他字段再次序列化时仍会恢复为空消息体Reader 会跳过该类消息因为它们不携带媒体数据行为与 FFmpeg 的处理方式一致。该改进来自 gortmplib 128。Video.Type 更名为 Video.PacketType为避免与新增的Video.FrameType字段产生混淆原有的message.Video.Type更名为message.Video.PacketType该改进来自 gortmplib 138。HLS 改进Delta 更新保留 EXT-X-MAPHLS Delta 更新此前生成时没有包含EXT-X-MAP。但对于没有被跳过的标签Delta 更新中必须继续保留这些标签。如果 Delta 更新在跳过分片时缺失EXT-X-MAP部分客户端会在第一次出现这种 Delta 更新时停止播放并出现播放错误。v1.21.2 修复后Delta 更新会保留EXT-X-MAP。该改进来自 gohlslib 397。WebRTC 改进修复特制 WHEP 请求可能引发的崩溃此前某些经过特殊构造的 WHEP 请求可能导致系统发生 panic。触发条件是WHEP 请求中的 SDP 不包含媒体描述。v1.21.2 修复了这一问题避免无媒体描述的 SDP 请求导致程序异常崩溃。该修复涉及 6301 与 6309。依赖更新v1.21.2 同步升级了多项依赖库。Go从 1.26 升级到 1.27code.cloudfoundry.org/bytefmt从 v0.90.0 升级到 v0.92.0github.com/bluenviron/gohlslib/v2从 v2.4.5 升级到 v2.4.6github.com/bluenviron/gortmplib从 v1.0.3 升级到 v1.0.4github.com/bluenviron/gortsplib/v5从 v5.6.6 升级到 v5.6.7github.com/bluenviron/mediacommon/v2从 v2.9.5 升级到 v2.9.6github.com/datarhei/gosrt从 v0.11.1-0.20260812091715-a77b40bb4b76 升级到 v0.12.0github.com/gin-contrib/pprof从 v1.5.5 升级到 v1.5.6github.com/go-git/go-billy/v5从 v5.9.1 升级到 v5.9.2github.com/go-git/go-git/v5从 v5.19.2 升级到 v5.19.3github.com/pion/ice/v4从 v4.4.2 升级到 v4.4.5github.com/pion/interceptor从 v0.1.48 升级到 v0.1.49github.com/pion/rtcp从 v1.2.17 升级到 v1.2.19github.com/pion/transport/v4已移除github.com/pion/webrtc/v4从 v4.2.20 升级到 v4.2.22github.com/quic-go/quic-go从 v0.62.0 升级到 v0.63.0github.com/pion/datachannel从 v1.6.2 升级到 v1.6.3github.com/pion/dtls/v3从 v3.1.8 升级到 v3.1.9github.com/pion/mdns/v2从 v2.2.0 升级到 v2.2.2github.com/pion/sctp从 v1.11.1 升级到 v1.11.3github.com/pion/srtp/v3从 v3.0.15 升级到 v3.1.3github.com/pion/stun/v4从 v4.0.0 升级到 v4.0.1github.com/pion/turn/v5从 v5.1.0 升级到 v5.1.2github.com/pjbgf/sha1cd从 v0.6.0 升级到 v0.7.0github.com/pion/transport/v5新增 v5.1.1安全说明发布流程与二进制校验mediamtx 的二进制文件由 Release 工作流从源代码编译生成。该流程完全公开可见用于防止构建产物在生成过程中被修改或受到外部干扰。二进制文件的校验和也会通过 GitHub Attestations 发布到公开区块链中可通过以下命令验证lsmediamtx_*|xargs-L1gh attestation verify--repobluenviron/mediamtx还可以下载checksums.sha256文件并通过以下命令验证二进制文件校验和catchecksums.sha256|grep$(lsmediamtx_*)|sha256sum--check总结mediamtx v1.21.2 重点解决了 UDP 关闭期间的数据包丢失、匿名请求触发 JWKS 获取、旧版凭据下播放服务访问控制、空 UDP 数据报造成的内存问题、API 重载死锁、RTSP 静态源 UDP 缓冲区首次连接不生效、RTMP 消息积压与兼容性问题、HLS Delta 更新缺失EXT-X-MAP、WHEP 特制请求触发异常等问题。同时该版本完成了多项底层依赖升级并继续提供可验证的发布构建与校验机制。

相关新闻

哪个品牌密码锁最安全 高端市场占比领先全维安防更靠谱安心

哪个品牌密码锁最安全 高端市场占比领先全维安防更靠谱安心

在智能家居全面普及的今天,智能密码锁已经成为了家庭安全防护的核心入口。哪个品牌密码锁最安全,不仅关乎家庭财产安全,更影响着日常进出的便捷体验与全场景安防体验。2026年以来,国内智能门锁行业技术迭代加速,市场格…

2026/10/12 5:43:21 阅读更多 →
2026家用智能锁品牌推荐:德施曼热门产品深度解析

2026家用智能锁品牌推荐:德施曼热门产品深度解析

随着智能家居行业的快速发展,智能门锁已经成为了千家万户的入户安防首选。相较于传统机械锁,智能门锁不仅提供了更加便捷的多种解锁方式,还集成了猫眼可视、AI安防、远程对讲等功能,全方位提升家庭入户安全与使用体验。在2026年上…

2026/10/12 5:43:21 阅读更多 →
本地化企业知识库方案拆解:8 步把文档变成知识库

本地化企业知识库方案拆解:8 步把文档变成知识库

## 背景在项目复盘场景里,企业文档散落各处、找人问半天是效率的主要损耗点。## 核心能力- 全程本地运行,原始文档与知识数据不出电脑- 8 步流水线自动化:解析→结构化→质检→复核→分片→向量库→验收- 内置本地大模型,离线推理…

2026/10/12 5:43:21 阅读更多 →

最新新闻

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

先说明一下我的第一反应:看到“致敬,DeepSeek 最新开源的不是模型,是国产算力的地基”这个标题,我以为是又一个大模型权重开源了。结果点进仓库一看,里面没有模型文件,躺着的全是 FlashMLA、DeepEP、DeepGE…

2026/10/12 7:08:08 阅读更多 →
NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

【day 48】随机函数与广播机制,打卡到这个组合的时候,我明显感觉身边不少同学开始卡壳了:随机函数单独用没问题,广播规则单独看也能理解,但真到写代码的时候,要么随机生成的数组形状对不上,要么…

2026/10/12 7:08:08 阅读更多 →
MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

简介:面向深度学习和计算机视觉研究者,这份完整代码基于MTCNN级联卷积网络实现人脸检测,清晰覆盖P-Net候选框提议、R-Net边界框精修、O-Net关键点定位的完整流程。包体共80个文件,以Python源码为核心,包含48个py文件&a…

2026/10/12 7:08:08 阅读更多 →
物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

干了十几年通信,最明显的感觉是:打电话的人越来越少,问"能不能帮我把这个箱子里的定位数据传回来"的人越来越多。物联网这个概念被炒了很多年,别人看到的是智能家居、智慧城市、大风口,我看到的是另一件事—…

2026/10/12 7:08:08 阅读更多 →
MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

项目标题: MyBatis各种查询功能用到一定年头你就会发现,MyBatis的查询功能说难不难,说简单也绝不是写个select标签就完事。日常开发里,动态条件、分页、多表嵌套、批量操作,任何一个场景都能写出好几种不同写法,而每种…

2026/10/12 7:08:08 阅读更多 →
老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

简介:老毛桃U盘启动盘制作工具(UEFI版 装机版)v7.0是一款面向电脑初学者与系统维护人员的轻量级系统辅助工具,专为快速制作兼容UEFI与传统BIOS的U盘启动盘、安装原版Windows系统及执行PE环境下的故障排查而设计。资源包共2个文件&…

2026/10/12 7:07:08 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →