8fcbd0a796ef939d11a4d752b68ce99f1fefae7d
Since #4866, hostnames in webrtcAdditionalHosts are resolved server-side via net.LookupIP, and a resolution failure aborts the entire WHEP/WHIP session. A single entry that can't be resolved on the server (e.g. air-gapped networks without DNS, or a name that only resolves on the client) therefore takes down all WebRTC playback, even when the other entries are valid. Log a warning and skip the unresolvable entry instead of returning an error, so the remaining valid candidates are still offered. Signed-off-by: suMin <sumin77123@gmail.com>
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%