docs: various updates (#4946)

This commit is contained in:
Alessandro Ros
2025-09-12 13:13:09 +02:00
committed by GitHub
parent 57021467e9
commit ccbfafd55b
7 changed files with 23 additions and 8 deletions

View File

@@ -69,4 +69,4 @@ pkg install mediamtx
If the architecture of the OpenWrt device is amd64, armv6, armv7 or arm64, use the [standalone binary method](#standalone-binary) and download a Linux binary that corresponds to your architecture. If the architecture of the OpenWrt device is amd64, armv6, armv7 or arm64, use the [standalone binary method](#standalone-binary) and download a Linux binary that corresponds to your architecture.
Otherwise, [compile the server from source](/docs/compile). Otherwise, [compile the server from source](/docs/other/compile).

View File

@@ -17,7 +17,6 @@ Live streams can be published to the server with the following protocols and cod
| [HLS cameras and servers](#hls-cameras-and-servers) | Low-Latency HLS, MP4-based HLS, legacy HLS | AV1, VP9, H265, H264 | Opus, MPEG-4 Audio (AAC) | | [HLS cameras and servers](#hls-cameras-and-servers) | Low-Latency HLS, MP4-based HLS, legacy HLS | AV1, VP9, H265, H264 | Opus, MPEG-4 Audio (AAC) |
| [MPEG-TS](#mpeg-ts) | MPEG-TS over UDP, MPEG-TS over Unix sockets | H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3 | | [MPEG-TS](#mpeg-ts) | MPEG-TS over UDP, MPEG-TS over Unix sockets | H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3 |
| [RTP](#rtp) | RTP over UDP, RTP over Unix sockets | AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, M-JPEG and any RTP-compatible codec | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM and any RTP-compatible codec | | [RTP](#rtp) | RTP over UDP, RTP over Unix sockets | AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, M-JPEG and any RTP-compatible codec | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM and any RTP-compatible codec |
| [Raspberry Pi Cameras](#raspberry-pi-cameras) | | H264 | |
We provide instructions for publishing with the following devices: We provide instructions for publishing with the following devices:
@@ -26,7 +25,7 @@ We provide instructions for publishing with the following devices:
We provide instructions for publishing with the following software: We provide instructions for publishing with the following software:
- [FFmpeg](#ffmeg) - [FFmpeg](#ffmpeg)
- [GStreamer](#gstreamer) - [GStreamer](#gstreamer)
- [OBS Studio](#obs-studio) - [OBS Studio](#obs-studio)
- [OpenCV](#opencv) - [OpenCV](#opencv)
@@ -97,7 +96,7 @@ paths:
### RTSP clients ### RTSP clients
RTSP is a protocol that allows to publish and read streams. It supports several underlying transport protocols and allows to encrypt streams in transit (see [RTSP-specific features](rtsp-specific-features)). In order to publish a stream to the server with the RTSP protocol, use this URL: RTSP is a protocol that allows to publish and read streams. It supports several underlying transport protocols and encryption (see [RTSP-specific features](rtsp-specific-features)). In order to publish a stream to the server with the RTSP protocol, use this URL:
``` ```
rtsp://localhost:8554/mystream rtsp://localhost:8554/mystream
@@ -335,7 +334,7 @@ docker run --rm -it \
bluenviron/mediamtx:latest-rpi bluenviron/mediamtx:latest-rpi
``` ```
Be aware that precompiled binaries and Docker images are not compatible with cameras that require a custom `libcamera` (like some ArduCam products), since they come with a bundled `libcamera`. If you want to use a custom one, you can [compile from source](/docs/compile#custom-libcamera). Be aware that precompiled binaries and Docker images are not compatible with cameras that require a custom `libcamera` (like some ArduCam products), since they come with a bundled `libcamera`. If you want to use a custom one, you can [compile from source](/docs/other/compile#custom-libcamera).
Camera settings can be changed by using the `rpiCamera*` parameters: Camera settings can be changed by using the `rpiCamera*` parameters:

View File

@@ -1,5 +1,7 @@
# SRT-specific features # SRT-specific features
SRT is a protocol that can be used for publishing and reading streams. Features in these page are shared among both tasks. Regarding specific tasks, see [Publish](publish) and [Read](read).
## Standard stream ID syntax ## Standard stream ID syntax
In SRT, the stream ID is a string that is sent to the remote part in order to advertise what action the caller is gonna do (publish or read), the path and the credentials. All these informations have to be encoded into a single string. This server supports two stream ID syntaxes, a custom one (that is the one reported in rest of the README) and also a [standard one](https://github.com/Haivision/srt/blob/master/docs/features/access-control.md) proposed by the authors of the protocol and enforced by some hardware. The standard syntax can be used in this way: In SRT, the stream ID is a string that is sent to the remote part in order to advertise what action the caller is gonna do (publish or read), the path and the credentials. All these informations have to be encoded into a single string. This server supports two stream ID syntaxes, a custom one (that is the one reported in rest of the README) and also a [standard one](https://github.com/Haivision/srt/blob/master/docs/features/access-control.md) proposed by the authors of the protocol and enforced by some hardware. The standard syntax can be used in this way:

View File

@@ -1,5 +1,7 @@
# WebRTC-specific features # WebRTC-specific features
WebRTC is a protocol that can be used for publishing and reading streams. Features in these page are shared among both tasks. Regarding specific tasks, see [Publish](publish) and [Read](read).
## Supported browsers ## Supported browsers
The server can ingest and broadcast with WebRTC a wide variety of video and audio codecs (that are listed at the beginning of the README), but not all browsers can publish and read all codecs due to internal limitations that cannot be overcome by this or any other server. The server can ingest and broadcast with WebRTC a wide variety of video and audio codecs (that are listed at the beginning of the README), but not all browsers can publish and read all codecs due to internal limitations that cannot be overcome by this or any other server.

View File

@@ -1,5 +1,7 @@
# RTSP-specific features # RTSP-specific features
RTSP is a protocol that can be used for publishing and reading streams. Features in these page are shared among both tasks. Regarding specific tasks, see [Publish](publish) and [Read](read).
## Transport protocols ## Transport protocols
The RTSP protocol supports several underlying transport protocols, that are chosen by clients during the handshake with the server: The RTSP protocol supports several underlying transport protocols, that are chosen by clients during the handshake with the server:
@@ -12,7 +14,7 @@ The default transport protocol is UDP. To change the transport protocol, you hav
## Encryption ## Encryption
Incoming and outgoing RTSP streams can be encrypted with TLS, obtaining the RTSPS protocol. A TLS certificate is needed and can be generated with OpenSSL: Incoming and outgoing RTSP streams can be encrypted by using a secure protocol variant, called RTSPS, that replaces all the subprotocols that are normally used in RTSP with their secure variant (TLS, MIKEY, SRTP). A TLS certificate is needed and can be generated with OpenSSL:
```sh ```sh
openssl genrsa -out server.key 2048 openssl genrsa -out server.key 2048

View File

@@ -1,5 +1,7 @@
# RTMP-specific features # RTMP-specific features
RTMP is a protocol that can be used for publishing and reading streams. Features in these page are shared among both tasks. Regarding specific tasks, see [Publish](publish) and [Read](read).
## Encryption ## Encryption
RTMP connections can be encrypted with TLS, obtaining the RTMPS protocol. A TLS certificate is needed and can be generated with OpenSSL: RTMP connections can be encrypted with TLS, obtaining the RTMPS protocol. A TLS certificate is needed and can be generated with OpenSSL:
@@ -23,4 +25,12 @@ Streams can be published and read with the rtmps scheme and the 1937 port:
rtmps://localhost:1937/... rtmps://localhost:1937/...
``` ```
Be aware that RTMPS is currently unsupported by all major players. However, you can use a proxy like [stunnel](https://www.stunnel.org) or [nginx](https://nginx.org/) or a dedicated _MediaMTX_ instance to decrypt streams before reading them. Be aware that RTMPS is currently unsupported by all major players. However, you can use a local _MediaMTX_ instance to decrypt streams before reading them, or alternatively a proxy like [stunnel](https://www.stunnel.org) or [nginx](https://nginx.org/). For instance, you can launch a local MediaMTX instance with this configuration:
```yml
paths:
decrypted:
source: rtmps://original-stream
```
And then read `rtmp://localhost/decrypted` instead of `rtmps://original-stream`.

View File

@@ -59,7 +59,7 @@ Known clients that can read with WebRTC and WHEP are [FFmpeg](#ffmpeg), [GStream
### RTSP ### RTSP
RTSP is a protocol that allows to publish and read streams. It supports different underlying transport protocols and allows to encrypt streams in transit (see [RTSP-specific features](rtsp-specific-features)). In order to read a stream with the RTSP protocol, use this URL: RTSP is a protocol that allows to publish and read streams. It supports different underlying transport protocols and encryption (see [RTSP-specific features](rtsp-specific-features)). In order to read a stream with the RTSP protocol, use this URL:
``` ```
rtsp://localhost:8554/mystream rtsp://localhost:8554/mystream