diff --git a/docs/1-kickoff/2-installation.md b/docs/1-kickoff/2-installation.md index a0ee0f7a..b705555e 100644 --- a/docs/1-kickoff/2-installation.md +++ b/docs/1-kickoff/2-installation.md @@ -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. -Otherwise, [compile the server from source](/docs/compile). +Otherwise, [compile the server from source](/docs/other/compile). diff --git a/docs/2-usage/2-publish.md b/docs/2-usage/2-publish.md index d49594d5..2ec73482 100644 --- a/docs/2-usage/2-publish.md +++ b/docs/2-usage/2-publish.md @@ -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) | | [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 | -| [Raspberry Pi Cameras](#raspberry-pi-cameras) | | H264 | | 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: -- [FFmpeg](#ffmeg) +- [FFmpeg](#ffmpeg) - [GStreamer](#gstreamer) - [OBS Studio](#obs-studio) - [OpenCV](#opencv) @@ -97,7 +96,7 @@ paths: ### 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 @@ -335,7 +334,7 @@ docker run --rm -it \ 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: diff --git a/docs/2-usage/21-srt-specific-features.md b/docs/2-usage/21-srt-specific-features.md index f39805f5..2b7425d0 100644 --- a/docs/2-usage/21-srt-specific-features.md +++ b/docs/2-usage/21-srt-specific-features.md @@ -1,5 +1,7 @@ # 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 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: diff --git a/docs/2-usage/22-webrtc-specific-features.md b/docs/2-usage/22-webrtc-specific-features.md index 13a993a2..f17e5d67 100644 --- a/docs/2-usage/22-webrtc-specific-features.md +++ b/docs/2-usage/22-webrtc-specific-features.md @@ -1,5 +1,7 @@ # 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 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. diff --git a/docs/2-usage/23-rtsp-specific-features.md b/docs/2-usage/23-rtsp-specific-features.md index f0e02a1e..9f17e32a 100644 --- a/docs/2-usage/23-rtsp-specific-features.md +++ b/docs/2-usage/23-rtsp-specific-features.md @@ -1,5 +1,7 @@ # 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 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 -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 openssl genrsa -out server.key 2048 diff --git a/docs/2-usage/24-rtmp-specific-features.md b/docs/2-usage/24-rtmp-specific-features.md index 6bab84f6..6a981d80 100644 --- a/docs/2-usage/24-rtmp-specific-features.md +++ b/docs/2-usage/24-rtmp-specific-features.md @@ -1,5 +1,7 @@ # 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 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/... ``` -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`. diff --git a/docs/2-usage/3-read.md b/docs/2-usage/3-read.md index f022f24d..f74b7ddd 100644 --- a/docs/2-usage/3-read.md +++ b/docs/2-usage/3-read.md @@ -59,7 +59,7 @@ Known clients that can read with WebRTC and WHEP are [FFmpeg](#ffmpeg), [GStream ### 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