384cc661147dc022ebb06f87c5482c5a7bf6a99a
timeLocationDecode multiplied the minutes field of a %z token by 3600 instead of 60, and did not apply the sign to the minutes term. As a result, any non-whole-hour timezone offset (e.g. +0530, +0545, +0330, -0330) was decoded incorrectly: +0530 produced 126000s instead of 19800s. This broke the round-trip between Path.Encode and Path.Decode for fractional-hour timezones. The encode side already used off/60/60 and (off/60)%60 correctly, so this change makes the two consistent. Add round-trip test cases with fractional-hour offsets (+0530, +0545, -0330) to cover the previously untested code path.
MediaMTX is a ready-to-use and zero-dependency live media server and media proxy that allows to publish, read, proxy, record and playback real-time video and audio streams. It has been conceived as a "media router" that routes media streams from one end to the other, with a focus on efficiency and portability.
Features
- Publish live streams to the server with Media-over-QUIC, SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, web browsers, Raspberry Pi Cameras and more.
- Read live streams from the server with Media-over-QUIC, SRT, WebRTC, RTSP, RTMP, HLS, using FFmpeg, GStreamer, VLC, OBS Studio, Python , Golang, Unity, web browsers and more.
- Streams are automatically converted from a protocol to another
- Serve several streams at once in separate paths
- Reload the configuration without disconnecting existing clients (hot reloading)
- Serve always-available streams even when the publisher is offline
- Record streams to disk in fMP4 or MPEG-TS format
- Playback recorded streams
- Authenticate users with internal, HTTP or JWT authentication
- Forward streams to other servers
- Proxy requests to other servers
- Control the server through the Control API
- Extract metrics from the server in a Prometheus-compatible format
- Monitor performance to investigate CPU and RAM consumption
- Run hooks (external commands) when clients connect, disconnect, read or publish streams
- Compatible with Linux, Windows and macOS, does not require any dependency or interpreter, it's a single executable
- ...and many others.
Languages
Go
89.6%
JavaScript
5.8%
HTML
2.3%
Python
0.9%
CSS
0.7%
Other
0.7%