v1.17.0

bluenviron/mediamtxv1.17.0Mar 17, 2026by github-actions[bot]

AI Summary

This release introduces WebRTC simulcast support for multiple video/audio renditions, enhances the API with track details and user fields, and improves RTSP and HLS functionality.

Key Highlights

  • WebRTC support for multiple video/audio renditions (simulcast) via OBS Studio
  • API enhancements including track details, user field for connections, and new statistics
  • RTSP improvements: support for unwrapping MPEG-TS tracks and reporting lost RTP packets
  • General performance fix: avoid buffering HTTP response body in loggerWriter

New Features

  • WebRTC simulcast support
  • API track details
  • API user field for connections
  • RTSP MPEG-TS track unwrapping
  • RTSP reported lost packets

Full Release Notes

## New major features

WebRTC

* support publishing multiple video/audio renditions (https://github.com/bluenviron/mediamtx/issues/5573) this allows to receive multiple video tracks from OBS Studio with the new WebRTC Simulcast feature introduced in v32.1.0.

API

* provide track details (https://github.com/bluenviron/mediamtx/issues/5307) (https://github.com/bluenviron/mediamtx/issues/5333) (https://github.com/bluenviron/mediamtx/issues/1726) (https://github.com/bluenviron/mediamtx/issues/5585)
* add user field to RTSP, RTMP, SRT, WebRTC conns and sessions (https://github.com/bluenviron/mediamtx/issues/5104) (https://github.com/bluenviron/mediamtx/issues/5565)
* add RTSP reported lost packets (https://github.com/bluenviron/mediamtx/issues/5198) (https://github.com/bluenviron/mediamtx/issues/5579) The new outboundRtpPacketsReportedLost property allows to track RTP packets that have been reported lost by readers. Furthermore, stats now have a "inbound" or "outbound" prefix to improve readability.
* rename WebRTC stats to match RTSP ones (https://github.com/bluenviron/mediamtx/issues/5581)
* add new stats (https://github.com/bluenviron/mediamtx/issues/5582) - RTSPSession.outboundRTPPacketsDiscarded - Path.inboundFramesInError - SRTConn.outboundFramesDiscarded - WebRTCSession.outboundFramesDiscarded - RTMPConn.outboundFramesDiscarded - HLSMuxer.outboundFramesDiscarded

## Fixes and improvements

General

* avoid buffering HTTP response body in loggerWriter (https://github.com/bluenviron/mediamtx/issues/5552) loggerWriter was shadow-copying every response byte into a bytes.Buffer to report the body size, causing the entire response to be accumulated in memory for the lifetime of each request. Replace the buffer with a plain int counter since dump() only ever reported the byte count anyway.
* optionally validate JWT iss and aud claims (https://github.com/bluenviron/mediamtx/issues/5569)
* metrics: add two missing SRT stats (https://github.com/bluenviron/mediamtx/issues/5580)

API

* add deprecated fields to the OpenAPI definition (https://github.com/bluenviron/mediamtx/issues/5575)
* add missing enums and move all enums in dedicated components (https://github.com/bluenviron/mediamtx/issues/5576)

RTSP

* fix rtsps scheme not being used in requests (https://github.com/bluenviron/mediamtx/issues/5236) (https://github.com/bluenviron/mediamtx/issues/5544)
* support unwrapping MPEG-TS tracks (https://github.com/bluenviron/mediamtx/issues/5476) this allows to use MPEG-TS tracks with other protocols and with the recording system
* client: fix support for hostnames in source and dest headers (https://github.com/bluenviron/gortsplib/issues/1009) (https://github.com/bluenviron/mediamtx/issues/5304) (https://github.com/bluenviron/gortsplib/issues/1014)
* allocate a rtp sender for each server session (https://github.com/bluenviron/gortsplib/issues/1021) this produces more realistic statistics and in the future will allow to implement per-session statistics and packet retransmission.
* store reported lost RTP packets in stats (https://github.com/bluenviron/mediamtx/issues/5198) (https://github.com/bluenviron/gortsplib/issues/1023)

HLS

* muxer: support muxing KLS with MPEG-TS (https://github.com/bluenviron/gohlslib/issues/327)
* client: fix deadlock when processing fMP4s (https://github.com/bluenviron/gohlslib/issues/333) (https://github.com/bluenviron/gohlslib/issues/334)

WebRTC

* fix panic with WHIP POST authentication failures (https://github.com/bluenviron/mediamtx/issues/5566)

Dependencies

* code.cloudfoundry.org/bytefmt updated from v0.64.0 to v0.67.0
* github.com/abema/go-mp4 updated from v1.4.1 to v1.5.0
* github.com/bluenviron/gohlslib/v2 updated from v2.2.8 to v2.2.9
* github.com/bluenviron/gortsplib/v5 updated from v5.4.0 to v5.5.0
* github.com/bluenviron/mediacommon/v2 updated from v2.8.2 to v2.8.3
* golang.org/x/crypto updated from v0.48.0 to v0.49.0
* golang.org/x/sys updated from v0.41.0 to v0.42.0
* golang.org/x/term updated from v0.40.0 to v0.41.0
* golang.org/x/net updated from v0.51.0 to v0.52.0
* golang.org/x/text updated from v0.34.0 to v0.35.0


## Security

Binaries are compiled from source code by the [Release workflow](https://github.com/bluenviron/mediamtx/actions/workflows/release.yml), which is a fully-visible process that prevents any change or external interference in produced artifacts.

Checksums of binaries are also published in a public blockchain by using [GitHub Attestations](https://docs.github.com/en/actions/concepts/security/artifact-attestations), and they can be verified by running:

```
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
```

You can verify checksums of binaries by downloading `checksums.sha256` and running:

```
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
```