docs: prevent gaps in numbering (#6109)
This commit is contained in:
@@ -17,10 +17,10 @@ Main features:
|
|||||||
- [Authenticate](../2-features/06-authentication.md) users with internal, HTTP or JWT authentication
|
- [Authenticate](../2-features/06-authentication.md) users with internal, HTTP or JWT authentication
|
||||||
- [Forward streams](../2-features/11-forward.md) to other servers
|
- [Forward streams](../2-features/11-forward.md) to other servers
|
||||||
- [Proxy requests](../2-features/12-proxy.md) to other servers
|
- [Proxy requests](../2-features/12-proxy.md) to other servers
|
||||||
- [Control](../2-features/22-control-api.md) the server through the Control API
|
- [Control](../2-features/21-control-api.md) the server through the Control API
|
||||||
- [Extract metrics](../2-features/23-metrics.md) from the server in a Prometheus-compatible format
|
- [Extract metrics](../2-features/22-metrics.md) from the server in a Prometheus-compatible format
|
||||||
- [Monitor performance](../2-features/24-performance.md) to investigate CPU and RAM consumption
|
- [Monitor performance](../2-features/23-performance.md) to investigate CPU and RAM consumption
|
||||||
- [Run hooks](../2-features/21-hooks.md) (external commands) when clients connect, disconnect, read or publish streams
|
- [Run hooks](../2-features/20-hooks.md) (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
|
- Compatible with Linux, Windows and macOS, does not require any dependency or interpreter, it's a single executable
|
||||||
|
|
||||||
Use the menu to navigate through the documentation.
|
Use the menu to navigate through the documentation.
|
||||||
|
|||||||
@@ -4,28 +4,28 @@ Live streams can be published to the server with the following protocols:
|
|||||||
|
|
||||||
- [Media-over-QUIC clients](../3-publish/01-moq-clients.md)
|
- [Media-over-QUIC clients](../3-publish/01-moq-clients.md)
|
||||||
- [SRT clients](../3-publish/02-srt-clients.md)
|
- [SRT clients](../3-publish/02-srt-clients.md)
|
||||||
- [SRT cameras and servers](../3-publish/04-srt-cameras-and-servers.md)
|
- [SRT cameras and servers](../3-publish/03-srt-cameras-and-servers.md)
|
||||||
- [WebRTC clients](../3-publish/05-webrtc-clients.md)
|
- [WebRTC clients](../3-publish/04-webrtc-clients.md)
|
||||||
- [WebRTC servers](../3-publish/06-webrtc-servers.md)
|
- [WebRTC servers](../3-publish/05-webrtc-servers.md)
|
||||||
- [RTSP clients](../3-publish/07-rtsp-clients.md)
|
- [RTSP clients](../3-publish/06-rtsp-clients.md)
|
||||||
- [RTSP cameras and servers](../3-publish/08-rtsp-cameras-and-servers.md)
|
- [RTSP cameras and servers](../3-publish/07-rtsp-cameras-and-servers.md)
|
||||||
- [RTMP clients](../3-publish/09-rtmp-clients.md)
|
- [RTMP clients](../3-publish/08-rtmp-clients.md)
|
||||||
- [RTMP cameras and servers](../3-publish/10-rtmp-cameras-and-servers.md)
|
- [RTMP cameras and servers](../3-publish/09-rtmp-cameras-and-servers.md)
|
||||||
- [HLS cameras and servers](../3-publish/11-hls-cameras-and-servers.md)
|
- [HLS cameras and servers](../3-publish/10-hls-cameras-and-servers.md)
|
||||||
- [MPEG-TS](../3-publish/12-mpeg-ts.md)
|
- [MPEG-TS](../3-publish/11-mpeg-ts.md)
|
||||||
- [RTP](../3-publish/13-rtp.md)
|
- [RTP](../3-publish/12-rtp.md)
|
||||||
|
|
||||||
We provide instructions for publishing with the following devices:
|
We provide instructions for publishing with the following devices:
|
||||||
|
|
||||||
- [Raspberry Pi Cameras](../3-publish/14-raspberry-pi-cameras.md)
|
- [Raspberry Pi Cameras](../3-publish/13-raspberry-pi-cameras.md)
|
||||||
- [Generic webcams](../3-publish/15-generic-webcams.md)
|
- [Generic webcams](../3-publish/14-generic-webcams.md)
|
||||||
|
|
||||||
We provide instructions for publishing with the following software:
|
We provide instructions for publishing with the following software:
|
||||||
|
|
||||||
- [Web browsers](../3-publish/16-web-browsers.md)
|
- [Web browsers](../3-publish/15-web-browsers.md)
|
||||||
- [FFmpeg](../3-publish/17-ffmpeg.md)
|
- [FFmpeg](../3-publish/16-ffmpeg.md)
|
||||||
- [GStreamer](../3-publish/18-gstreamer.md)
|
- [GStreamer](../3-publish/17-gstreamer.md)
|
||||||
- [OBS Studio](../3-publish/19-obs-studio.md)
|
- [OBS Studio](../3-publish/18-obs-studio.md)
|
||||||
- [Python and OpenCV](../3-publish/20-python-opencv.md)
|
- [Python and OpenCV](../3-publish/19-python-opencv.md)
|
||||||
- [Golang](../3-publish/21-golang.md)
|
- [Golang](../3-publish/20-golang.md)
|
||||||
- [Unity](../3-publish/22-unity.md)
|
- [Unity](../3-publish/21-unity.md)
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ There are several ways to change configuration parameters:
|
|||||||
docker run --rm -it --network=host -e MTX_PATHS_TEST_SOURCE=rtsp://myurl bluenviron/mediamtx:1
|
docker run --rm -it --network=host -e MTX_PATHS_TEST_SOURCE=rtsp://myurl bluenviron/mediamtx:1
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Use the [Control API](22-control-api.md).
|
3. Use the [Control API](21-control-api.md).
|
||||||
|
|
||||||
## Encrypt the configuration
|
## Encrypt the configuration
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ paths:
|
|||||||
whipBearerToken: ""
|
whipBearerToken: ""
|
||||||
```
|
```
|
||||||
|
|
||||||
If the remote server is a _MediaMTX_ instance, remember to add a `/whip` suffix after the stream name, since in _MediaMTX_ [it's part of the WHIP URL](../3-publish/05-webrtc-clients.md).
|
If the remote server is a _MediaMTX_ instance, remember to add a `/whip` suffix after the stream name, since in _MediaMTX_ [it's part of the WHIP URL](../3-publish/04-webrtc-clients.md).
|
||||||
|
|
||||||
## RTSP
|
## RTSP
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Publishers are meant to publish to the origin instance.
|
|||||||
Read replicas must be configured in this way:
|
Read replicas must be configured in this way:
|
||||||
|
|
||||||
- Add one or more proxy paths, pointing to the MediaMTX origin instance, as described in [Proxy](12-proxy.md).
|
- Add one or more proxy paths, pointing to the MediaMTX origin instance, as described in [Proxy](12-proxy.md).
|
||||||
- If the protocol used by readers is WebRTC, disable `webrtcLocalUDPAddress` and `webrtcLocalTCPAddress` and enable a STUN server, as described in [Solving WebRTC connectivity issues](26-webrtc-specific-features.md#solving-webrtc-connectivity-issues).
|
- If the protocol used by readers is WebRTC, disable `webrtcLocalUDPAddress` and `webrtcLocalTCPAddress` and enable a STUN server, as described in [Solving WebRTC connectivity issues](25-webrtc-specific-features.md#solving-webrtc-connectivity-issues).
|
||||||
|
|
||||||
The load balancer has to behave differently depending on the protocol(s) readers are gonna use to read the stream:
|
The load balancer has to behave differently depending on the protocol(s) readers are gonna use to read the stream:
|
||||||
|
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# WebRTC-specific features
|
# WebRTC-specific features
|
||||||
|
|
||||||
WebRTC is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish with WebRTC clients](../3-publish/05-webrtc-clients.md) and [Read with WebRTC clients](../4-read/03-webrtc.md). Features in this page are shared among both tasks.
|
WebRTC is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish with WebRTC clients](../3-publish/04-webrtc-clients.md) and [Read with WebRTC clients](../4-read/03-webrtc.md). Features in this page are shared among both tasks.
|
||||||
|
|
||||||
## Codec support in browsers
|
## Codec support in browsers
|
||||||
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
# RTSP-specific features
|
# RTSP-specific features
|
||||||
|
|
||||||
RTSP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish with RTSP clients](../3-publish/07-rtsp-clients.md) and [Read with RTSP clients](../4-read/04-rtsp.md). Features in this page are shared among both tasks.
|
RTSP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish with RTSP clients](../3-publish/06-rtsp-clients.md) and [Read with RTSP clients](../4-read/04-rtsp.md). Features in this page are shared among both tasks.
|
||||||
|
|
||||||
## Transport protocols
|
## Transport protocols
|
||||||
|
|
||||||
@@ -107,4 +107,4 @@ There are also the `rtsps+http`, `rtsp+ws`, `rtsps+ws` schemes to handle any var
|
|||||||
|
|
||||||
## MPEG-TS inside RTSP
|
## MPEG-TS inside RTSP
|
||||||
|
|
||||||
read [MPEG-TS inside RTSP](../3-publish/07-rtsp-clients.md#mpeg-ts-inside-rtsp) in the "Publish with RTSP clients" page.
|
read [MPEG-TS inside RTSP](../3-publish/06-rtsp-clients.md#mpeg-ts-inside-rtsp) in the "Publish with RTSP clients" page.
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# RTMP-specific features
|
# RTMP-specific features
|
||||||
|
|
||||||
RTMP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish with RTMP clients](../3-publish/09-rtmp-clients.md) and [Read with RTMP clients](../4-read/05-rtmp.md). Features in this page are shared among both tasks.
|
RTMP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish with RTMP clients](../3-publish/08-rtmp-clients.md) and [Read with RTMP clients](../4-read/05-rtmp.md). Features in this page are shared among both tasks.
|
||||||
|
|
||||||
## Encryption
|
## Encryption
|
||||||
|
|
||||||
@@ -14,8 +14,8 @@ srt://localhost:8890?streamid=publish:mystream&pkt_size=1316
|
|||||||
|
|
||||||
Replace `mystream` with any name you want. The resulting stream will be available on path `/mystream`.
|
Replace `mystream` with any name you want. The resulting stream will be available on path `/mystream`.
|
||||||
|
|
||||||
If you need to use the standard stream ID syntax instead of the custom one in use by this server, read [Standard stream ID syntax](../2-features/25-srt-specific-features.md#standard-stream-id-syntax).
|
If you need to use the standard stream ID syntax instead of the custom one in use by this server, read [Standard stream ID syntax](../2-features/24-srt-specific-features.md#standard-stream-id-syntax).
|
||||||
|
|
||||||
If you want to publish a stream by using a client in listening mode (i.e. with `mode=listener` appended to the URL), read the next section.
|
If you want to publish a stream by using a client in listening mode (i.e. with `mode=listener` appended to the URL), read the next section.
|
||||||
|
|
||||||
Some clients that can publish with SRT are [FFmpeg](17-ffmpeg.md), [GStreamer](18-gstreamer.md), [OBS Studio](19-obs-studio.md).
|
Some clients that can publish with SRT are [FFmpeg](16-ffmpeg.md), [GStreamer](17-gstreamer.md), [OBS Studio](18-obs-studio.md).
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ WHIP is a WebRTC extension that allows to publish streams by using a URL, withou
|
|||||||
http://localhost:8889/mystream/whip
|
http://localhost:8889/mystream/whip
|
||||||
```
|
```
|
||||||
|
|
||||||
Be aware that not all browsers can publish tracks with any codec, check [Codec support in browsers](../2-features/26-webrtc-specific-features.md#codec-support-in-browsers).
|
Be aware that not all browsers can publish tracks with any codec, check [Codec support in browsers](../2-features/25-webrtc-specific-features.md#codec-support-in-browsers).
|
||||||
|
|
||||||
Depending on the network it might be difficult to establish a connection between server and clients, read [Solving WebRTC connectivity issues](../2-features/26-webrtc-specific-features.md#solving-webrtc-connectivity-issues).
|
Depending on the network it might be difficult to establish a connection between server and clients, read [Solving WebRTC connectivity issues](../2-features/25-webrtc-specific-features.md#solving-webrtc-connectivity-issues).
|
||||||
|
|
||||||
Some clients that can publish with WebRTC and WHIP are [FFmpeg](17-ffmpeg.md), [GStreamer](18-gstreamer.md), [OBS Studio](19-obs-studio.md), [Unity](22-unity.md) and [Web browsers](16-web-browsers.md).
|
Some clients that can publish with WebRTC and WHIP are [FFmpeg](16-ffmpeg.md), [GStreamer](17-gstreamer.md), [OBS Studio](18-obs-studio.md), [Unity](21-unity.md) and [Web browsers](15-web-browsers.md).
|
||||||
@@ -14,9 +14,9 @@ rtsp://localhost:8554/mystream
|
|||||||
|
|
||||||
The resulting stream will be available on path `/mystream`.
|
The resulting stream will be available on path `/mystream`.
|
||||||
|
|
||||||
Some clients that can publish with RTSP are [FFmpeg](17-ffmpeg.md), [GStreamer](18-gstreamer.md), [OBS Studio](19-obs-studio.md), [Python and OpenCV](20-python-opencv.md).
|
Some clients that can publish with RTSP are [FFmpeg](16-ffmpeg.md), [GStreamer](17-gstreamer.md), [OBS Studio](18-obs-studio.md), [Python and OpenCV](19-python-opencv.md).
|
||||||
|
|
||||||
Advanced RTSP features and settings are described in [RTSP-specific features](../2-features/27-rtsp-specific-features.md).
|
Advanced RTSP features and settings are described in [RTSP-specific features](../2-features/26-rtsp-specific-features.md).
|
||||||
|
|
||||||
## MPEG-TS inside RTSP
|
## MPEG-TS inside RTSP
|
||||||
|
|
||||||
+1
-1
@@ -27,4 +27,4 @@ The resulting stream will be available on path `/proxied`.
|
|||||||
|
|
||||||
It is possible to tune the connection by using several additional parameters, that are listed in the [configuration file](../5-references/1-configuration-file.md).
|
It is possible to tune the connection by using several additional parameters, that are listed in the [configuration file](../5-references/1-configuration-file.md).
|
||||||
|
|
||||||
Advanced RTSP features and settings are described in [RTSP-specific features](../2-features/27-rtsp-specific-features.md).
|
Advanced RTSP features and settings are described in [RTSP-specific features](../2-features/26-rtsp-specific-features.md).
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
| **video** | AV1, VP9, H265, H264 |
|
| **video** | AV1, VP9, H265, H264 |
|
||||||
| **audio** | Opus, FLAC, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
| **audio** | Opus, FLAC, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||||
|
|
||||||
RTMP is a protocol that allows to read and publish streams. It has been expanded to support modern codecs (Enhanced RTMP) and it supports encryption, read [RTMP-specific features](../2-features/28-rtmp-specific-features.md). Streams can be published to the server by using the URL:
|
RTMP is a protocol that allows to read and publish streams. It has been expanded to support modern codecs (Enhanced RTMP) and it supports encryption, read [RTMP-specific features](../2-features/27-rtmp-specific-features.md). Streams can be published to the server by using the URL:
|
||||||
|
|
||||||
```
|
```
|
||||||
rtmp://localhost/mystream
|
rtmp://localhost/mystream
|
||||||
@@ -13,4 +13,4 @@ rtmp://localhost/mystream
|
|||||||
|
|
||||||
The resulting stream will be available on path `/mystream`.
|
The resulting stream will be available on path `/mystream`.
|
||||||
|
|
||||||
Some clients that can publish with RTMP are [FFmpeg](17-ffmpeg.md), [GStreamer](18-gstreamer.md) and [OBS Studio](19-obs-studio.md).
|
Some clients that can publish with RTMP are [FFmpeg](16-ffmpeg.md), [GStreamer](17-gstreamer.md) and [OBS Studio](18-obs-studio.md).
|
||||||
@@ -40,7 +40,7 @@ paths:
|
|||||||
source: udp+mpegts://0.0.0.0:1234?source=192.168.3.5
|
source: udp+mpegts://0.0.0.0:1234?source=192.168.3.5
|
||||||
```
|
```
|
||||||
|
|
||||||
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](17-ffmpeg.md) and [GStreamer](18-gstreamer.md).
|
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](16-ffmpeg.md) and [GStreamer](17-gstreamer.md).
|
||||||
|
|
||||||
Unix sockets are more efficient than UDP packets and can be used as transport by specifying the `unix+mpegts` scheme:
|
Unix sockets are more efficient than UDP packets and can be used as transport by specifying the `unix+mpegts` scheme:
|
||||||
|
|
||||||
@@ -58,4 +58,4 @@ paths:
|
|||||||
a=rtpmap:96 H264/90000
|
a=rtpmap:96 H264/90000
|
||||||
```
|
```
|
||||||
|
|
||||||
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](17-ffmpeg.md) and [GStreamer](18-gstreamer.md).
|
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](16-ffmpeg.md) and [GStreamer](17-gstreamer.md).
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Web browsers
|
# Web browsers
|
||||||
|
|
||||||
Web browsers can publish a stream to the server by acting as a [Media-over-QUIC client](01-moq-clients.md) or a [WebRTC client](05-webrtc-clients.md).
|
Web browsers can publish a stream to the server by acting as a [Media-over-QUIC client](01-moq-clients.md) or a [WebRTC client](04-webrtc-clients.md).
|
||||||
|
|
||||||
## Media-over-QUIC
|
## Media-over-QUIC
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ http://localhost:8889/mystream/publish
|
|||||||
|
|
||||||
The resulting stream will be available on path `/mystream`.
|
The resulting stream will be available on path `/mystream`.
|
||||||
|
|
||||||
Be aware that not all browsers can publish tracks with any codec, check [Codec support in browsers](../2-features/26-webrtc-specific-features.md#codec-support-in-browsers).
|
Be aware that not all browsers can publish tracks with any codec, check [Codec support in browsers](../2-features/25-webrtc-specific-features.md#codec-support-in-browsers).
|
||||||
|
|
||||||
This web page can be embedded into another web page by using an iframe:
|
This web page can be embedded into another web page by using an iframe:
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# FFmpeg
|
# FFmpeg
|
||||||
|
|
||||||
FFmpeg can publish a stream to the server by acting as a [RTSP client](07-rtsp-clients.md), [RTMP client](09-rtmp-clients.md), [SRT client](02-srt-clients.md), [WebRTC client](05-webrtc-clients.md) or by sending [MPEG-TS packets](12-mpeg-ts.md) or [RTP packets](13-rtp.md). The recommended way is acting as a RTSP client.
|
FFmpeg can publish a stream to the server by acting as a [RTSP client](06-rtsp-clients.md), [RTMP client](08-rtmp-clients.md), [SRT client](02-srt-clients.md), [WebRTC client](04-webrtc-clients.md) or by sending [MPEG-TS packets](11-mpeg-ts.md) or [RTP packets](12-rtp.md). The recommended way is acting as a RTSP client.
|
||||||
|
|
||||||
## FFmpeg as a RTSP client
|
## FFmpeg as a RTSP client
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ ffmpeg -re -f lavfi -i testsrc=size=1280x720:rate=30 \
|
|||||||
|
|
||||||
## FFmpeg and RTP over UDP
|
## FFmpeg and RTP over UDP
|
||||||
|
|
||||||
In _MediaMTX_ configuration, add a path with `source: udp+rtp://238.0.0.1:1234` and a valid `rtpSDP` (read [RTP](13-rtp.md)). Then:
|
In _MediaMTX_ configuration, add a path with `source: udp+rtp://238.0.0.1:1234` and a valid `rtpSDP` (read [RTP](12-rtp.md)). Then:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
ffmpeg -re -f lavfi -i testsrc=size=1280x720:rate=30 \
|
ffmpeg -re -f lavfi -i testsrc=size=1280x720:rate=30 \
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# GStreamer
|
# GStreamer
|
||||||
|
|
||||||
GStreamer can publish a stream to the server by acting as a [RTSP client](07-rtsp-clients.md), [RTMP client](09-rtmp-clients.md), [SRT client](02-srt-clients.md), [WebRTC client](05-webrtc-clients.md) or by sending [MPEG-TS packets](12-mpeg-ts.md) or [RTP packets](13-rtp.md). The recommended way is acting as a RTSP client.
|
GStreamer can publish a stream to the server by acting as a [RTSP client](06-rtsp-clients.md), [RTMP client](08-rtmp-clients.md), [SRT client](02-srt-clients.md), [WebRTC client](04-webrtc-clients.md) or by sending [MPEG-TS packets](11-mpeg-ts.md) or [RTP packets](12-rtp.md). The recommended way is acting as a RTSP client.
|
||||||
|
|
||||||
## GStreamer as a RTSP client
|
## GStreamer as a RTSP client
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ audiotestsrc ! audioconvert ! avenc_aac ! mux.
|
|||||||
|
|
||||||
## GStreamer and RTP over UDP
|
## GStreamer and RTP over UDP
|
||||||
|
|
||||||
In _MediaMTX_ configuration, add a path with `source: udp+rtp://238.0.0.1:1234` and a valid `rtpSDP` (read [RTP](13-rtp.md)). Then:
|
In _MediaMTX_ configuration, add a path with `source: udp+rtp://238.0.0.1:1234` and a valid `rtpSDP` (read [RTP](12-rtp.md)). Then:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
gst-launch-1.0 -v \
|
gst-launch-1.0 -v \
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# OBS Studio
|
# OBS Studio
|
||||||
|
|
||||||
OBS Studio can publish streams to the server by acting as a [RTMP client](09-rtmp-clients.md) or a [WebRTC client](05-webrtc-clients.md) protocols. The recommended way is acting as a RTMP client.
|
OBS Studio can publish streams to the server by acting as a [RTMP client](08-rtmp-clients.md) or a [WebRTC client](04-webrtc-clients.md) protocols. The recommended way is acting as a RTMP client.
|
||||||
|
|
||||||
## OBS Studio as a RTMP client
|
## OBS Studio as a RTMP client
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ OBS Studio requires _MediaMTX_ to use a TLS certificate signed by a public certi
|
|||||||
|
|
||||||
### Standard
|
### Standard
|
||||||
|
|
||||||
Recent versions of OBS Studio can also publish streams to the server with the [WebRTC / WHIP protocol](05-webrtc-clients.md) Use the following parameters:
|
Recent versions of OBS Studio can also publish streams to the server with the [WebRTC / WHIP protocol](04-webrtc-clients.md) Use the following parameters:
|
||||||
|
|
||||||
- Service: `WHIP`
|
- Service: `WHIP`
|
||||||
- Server: `http://localhost:8889/mystream/whip`
|
- Server: `http://localhost:8889/mystream/whip`
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Python and OpenCV
|
# Python and OpenCV
|
||||||
|
|
||||||
Python-based software can publish streams to the server with the OpenCV library and its GStreamer plugin, acting as a [RTSP client](07-rtsp-clients.md). OpenCV must be compiled with support for GStreamer, by following this procedure:
|
Python-based software can publish streams to the server with the OpenCV library and its GStreamer plugin, acting as a [RTSP client](06-rtsp-clients.md). OpenCV must be compiled with support for GStreamer, by following this procedure:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-ugly gstreamer1.0-rtsp python3-dev python3-numpy
|
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-ugly gstreamer1.0-rtsp python3-dev python3-numpy
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Unity
|
# Unity
|
||||||
|
|
||||||
Software written with the Unity Engine can publish a stream to the server by acting as a [WebRTC client](05-webrtc-clients.md).
|
Software written with the Unity Engine can publish a stream to the server by acting as a [WebRTC client](04-webrtc-clients.md).
|
||||||
|
|
||||||
Create a new Unity project or open an existing one.
|
Create a new Unity project or open an existing one.
|
||||||
|
|
||||||
@@ -14,6 +14,6 @@ srt://localhost:8890?streamid=read:mystream
|
|||||||
|
|
||||||
Replace `mystream` with the path name.
|
Replace `mystream` with the path name.
|
||||||
|
|
||||||
If you need to use the standard stream ID syntax instead of the custom one in use by this server, read [Standard stream ID syntax](../2-features/25-srt-specific-features.md#standard-stream-id-syntax).
|
If you need to use the standard stream ID syntax instead of the custom one in use by this server, read [Standard stream ID syntax](../2-features/24-srt-specific-features.md#standard-stream-id-syntax).
|
||||||
|
|
||||||
Some clients that can read with SRT are [FFmpeg](08-ffmpeg.md), [GStreamer](09-gstreamer.md) and [VLC](10-vlc.md).
|
Some clients that can read with SRT are [FFmpeg](08-ffmpeg.md), [GStreamer](09-gstreamer.md) and [VLC](10-vlc.md).
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ WHEP is a WebRTC extension that allows to read streams by using a URL, without p
|
|||||||
http://localhost:8889/mystream/whep
|
http://localhost:8889/mystream/whep
|
||||||
```
|
```
|
||||||
|
|
||||||
Be aware that not all browsers can read tracks with any codec, check [Codec support in browsers](../2-features/26-webrtc-specific-features.md#codec-support-in-browsers).
|
Be aware that not all browsers can read tracks with any codec, check [Codec support in browsers](../2-features/25-webrtc-specific-features.md#codec-support-in-browsers).
|
||||||
|
|
||||||
Depending on the network it may be difficult to establish a connection between server and clients, read [Solving WebRTC connectivity issues](../2-features/26-webrtc-specific-features.md#solving-webrtc-connectivity-issues).
|
Depending on the network it may be difficult to establish a connection between server and clients, read [Solving WebRTC connectivity issues](../2-features/25-webrtc-specific-features.md#solving-webrtc-connectivity-issues).
|
||||||
|
|
||||||
Some clients that can read with WebRTC and WHEP are [web browsers](07-web-browsers.md), [GStreamer](09-gstreamer.md) and [Unity](14-unity.md).
|
Some clients that can read with WebRTC and WHEP are [web browsers](07-web-browsers.md), [GStreamer](09-gstreamer.md) and [Unity](14-unity.md).
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
| **audio** | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM |
|
| **audio** | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM |
|
||||||
| **other** | KLV, MPEG-TS, any RTP-compatible codec |
|
| **other** | KLV, MPEG-TS, any RTP-compatible codec |
|
||||||
|
|
||||||
RTSP is a protocol that allows to publish and read streams. It supports several underlying transport protocols and encryption (read [RTSP-specific features](../2-features/27-rtsp-specific-features.md)). 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 several underlying transport protocols and encryption (read [RTSP-specific features](../2-features/26-rtsp-specific-features.md)). In order to read a stream with the RTSP protocol, use this URL:
|
||||||
|
|
||||||
```
|
```
|
||||||
rtsp://localhost:8554/mystream
|
rtsp://localhost:8554/mystream
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
| **video** | AV1, VP9, H265, H264 |
|
| **video** | AV1, VP9, H265, H264 |
|
||||||
| **audio** | Opus, FLAC, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
| **audio** | Opus, FLAC, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||||
|
|
||||||
RTMP is a protocol that allows to read and publish streams. It has been expanded to support modern codecs (Enhanced RTMP) and it supports encryption, read [RTMP-specific features](../2-features/28-rtmp-specific-features.md). Streams can be read from the server by using the URL:
|
RTMP is a protocol that allows to read and publish streams. It has been expanded to support modern codecs (Enhanced RTMP) and it supports encryption, read [RTMP-specific features](../2-features/27-rtmp-specific-features.md). Streams can be read from the server by using the URL:
|
||||||
|
|
||||||
```
|
```
|
||||||
rtmp://localhost/mystream
|
rtmp://localhost/mystream
|
||||||
|
|||||||
@@ -22,4 +22,4 @@ Some clients that can read with HLS are [web browsers](07-web-browsers.md), [FFm
|
|||||||
|
|
||||||
_MediaMTX_ supports generating HLS in several variants (including Low-Latency mode), and provides various parameters to tune HLS generation. These are listed in the [configuration file](../5-references/1-configuration-file.md).
|
_MediaMTX_ supports generating HLS in several variants (including Low-Latency mode), and provides various parameters to tune HLS generation. These are listed in the [configuration file](../5-references/1-configuration-file.md).
|
||||||
|
|
||||||
HLS can also be used to [scale the server](../2-features/20-scalability.md) through a CDN.
|
HLS can also be used to [scale the server](../2-features/19-scalability.md) through a CDN.
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ http://localhost:8889/mystream
|
|||||||
|
|
||||||
Replace `mystream` with the path name.
|
Replace `mystream` with the path name.
|
||||||
|
|
||||||
Be aware that not all browsers can read tracks with any codec, check [Codec support in browsers](../2-features/26-webrtc-specific-features.md#codec-support-in-browsers).
|
Be aware that not all browsers can read tracks with any codec, check [Codec support in browsers](../2-features/25-webrtc-specific-features.md#codec-support-in-browsers).
|
||||||
|
|
||||||
### HLS
|
### HLS
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Control API reference
|
# Control API reference
|
||||||
|
|
||||||
This is the reference of the Control API of the latest _MediaMTX_ release ({version_tag}), generated automatically from the [OpenAPI / Swagger file](https://github.com/bluenviron/mediamtx/blob/{version_tag}/api/openapi.yaml) available in the repository. Check the [Control API usage page](../2-features/22-control-api.md) for instructions on how to use the API.
|
This is the reference of the Control API of the latest _MediaMTX_ release ({version_tag}), generated automatically from the [OpenAPI / Swagger file](https://github.com/bluenviron/mediamtx/blob/{version_tag}/api/openapi.yaml) available in the repository. Check the [Control API usage page](../2-features/21-control-api.md) for instructions on how to use the API.
|
||||||
|
|||||||
@@ -69,7 +69,13 @@ func TestDocsOrder(t *testing.T) {
|
|||||||
|
|
||||||
usesPadding := len(numbered) >= 10
|
usesPadding := len(numbered) >= 10
|
||||||
|
|
||||||
for _, nf := range numbered {
|
for i, nf := range numbered {
|
||||||
|
// Check for gaps. Expected number matches 1-based index (1, 2, 3...)
|
||||||
|
expectedNum := i + 1
|
||||||
|
if nf.num != expectedNum {
|
||||||
|
t.Errorf("docs/%s/%s: gap detected in sequence, expected number %d but got %d", entry.Name(), nf.name, expectedNum, nf.num)
|
||||||
|
}
|
||||||
|
|
||||||
if usesPadding {
|
if usesPadding {
|
||||||
if len(nf.numStr) != 2 {
|
if len(nf.numStr) != 2 {
|
||||||
t.Errorf("docs/%s/%s: expected zero-padded prefix, got %q", entry.Name(), nf.name, nf.numStr)
|
t.Errorf("docs/%s/%s: expected zero-padded prefix, got %q", entry.Name(), nf.name, nf.numStr)
|
||||||
|
|||||||
Reference in New Issue
Block a user