v1.15.4

bluenviron/mediamtxv1.15.4Nov 21, 2025by github-actions[bot]

AI Summary

Enhances configuration options for UDP buffers, adds multi-origin CORS support, and fixes FMP4 duration overflows in recorder and HLS.

Key Highlights

  • Support multiple CORS origins
  • Add `udpReadBufferSize` parameter for global and WebRTC UDP sockets
  • Fix FMP4 duration overflow in recorder and HLS
  • Reorder RTP packets before ingestion to improve reliability

New Features

  • Multiple CORS origins
  • UDP read buffer size parameter
  • FMP4 duration overflow fixes

Full Release Notes

## Fixes and improvements

General

* support multiple CORS origins (https://github.com/bluenviron/mediamtx/issues/5150)
* add udpReadBufferSize parameter (https://github.com/bluenviron/mediamtx/issues/5129) this allows to set a global UDP read buffer, applied to every UDP socket.
* extend udpReadBufferSize to WebRTC UDP sockets (https://github.com/bluenviron/mediamtx/issues/5130) this allows to decrease packet losses without touching system parameters.
* recorder: prevent FMP4 durations from overflowing (https://github.com/bluenviron/mediamtx/issues/4711) (https://github.com/bluenviron/mediamtx/issues/5126) the timestamp difference between two samples was put inside an unsigned integer that, when negative, caused an overflow.

RTP

* reorder packets before ingestion (https://github.com/bluenviron/mediamtx/issues/5194)

RTSP

* support RTSP responses with empty status message (https://github.com/bluenviron/gortsplib/issues/807) (https://github.com/bluenviron/gortsplib/issues/928)
* server: fix timeout when reading with Media Foundation (https://github.com/bluenviron/mediamtx/issues/5090) (https://github.com/bluenviron/gortsplib/issues/932)
* fix SP payload of MIKEY messages (https://github.com/bluenviron/gortsplib/issues/827) (https://github.com/bluenviron/gortsplib/issues/935) fill PayloadSPPolicyParamTypeAuthTagLen andPayloadSPPolicyParamTypeSessionAuthKeyLen properly.
* support formats with dynamic SSRC (https://github.com/bluenviron/gortsplib/issues/687) (https://github.com/bluenviron/gortsplib/issues/940)
* improve performance by decoding RTP header once (https://github.com/bluenviron/gortsplib/issues/941)

HLS

* muxer: prevent FMP4 durations from overflowing (https://github.com/bluenviron/mediamtx/issues/5126) (https://github.com/bluenviron/gohlslib/issues/290)

Dependencies

* code.cloudfoundry.org/bytefmt updated from v0.55.0 to v0.58.0
* github.com/alecthomas/kong updated from v1.12.1 to v1.13.0
* github.com/asticode/go-astits updated from v1.13.0 to v1.14.0
* github.com/bluenviron/gohlslib/v2 updated from v2.2.3 to v2.2.4
* github.com/bluenviron/gortsplib/v5 updated from v5.1.1 to v5.2.0
* github.com/matthewhartstonge/argon2 updated from v1.4.1 to v1.4.3
* github.com/pion/interceptor updated from v0.1.41 to v0.1.42
* github.com/pion/rtp updated from v1.8.23 to v1.8.25
* golang.org/x/crypto updated from v0.43.0 to v0.45.0
* golang.org/x/sys updated from v0.37.0 to v0.38.0
* golang.org/x/term updated from v0.36.0 to v0.37.0
* github.com/pion/transport/v3 updated from v3.0.8 to v3.1.1
* golang.org/x/mod updated from v0.29.0 to v0.30.0
* golang.org/x/net updated from v0.46.0 to v0.47.0
* golang.org/x/sync updated from v0.17.0 to v0.18.0
* golang.org/x/text updated from v0.30.0 to v0.31.0
* golang.org/x/tools updated from v0.38.0 to v0.39.0
* hls.js updated from v1.6.13 to v1.6.15

## Security

Binaries are compiled from source through the [Release workflow](https://github.com/bluenviron/mediamtx/actions/workflows/release.yml) without human intervention, preventing any external interference.

You can verify that binaries have been produced by the workflow by using [GitHub Attestations](https://docs.github.com/en/actions/concepts/security/artifact-attestations):

```
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
```