mirror of
https://github.com/aler9/rtsp-simple-server
synced 2026-04-22 15:07:19 +08:00
docs: reorganize documentation (#5639)
This commit is contained in:
@@ -27,20 +27,20 @@ _MediaMTX_ is a ready-to-use and zero-dependency real-time media server and medi
|
||||
|
||||
<h3>Features</h3>
|
||||
|
||||
- [Publish](https://mediamtx.org/docs/usage/publish) live streams to the server with SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, web browsers, Raspberry Pi Cameras and more.
|
||||
- [Read](https://mediamtx.org/docs/usage/read) live streams from the server with SRT, WebRTC, RTSP, RTMP, HLS, using FFmpeg, GStreamer, VLC, OBS Studio, Python , Golang, Unity, web browsers and more.
|
||||
- [Publish](https://mediamtx.org/docs/features/publish) live streams to the server with SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, web browsers, Raspberry Pi Cameras and more.
|
||||
- [Read](https://mediamtx.org/docs/features/read) live streams from the server with 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](https://mediamtx.org/docs/usage/always-available) even when the publisher is offline
|
||||
- [Record](https://mediamtx.org/docs/usage/record) streams to disk in fMP4 or MPEG-TS format
|
||||
- [Playback](https://mediamtx.org/docs/usage/playback) recorded streams
|
||||
- [Authenticate](https://mediamtx.org/docs/usage/authentication) users with internal, HTTP or JWT authentication
|
||||
- [Forward](https://mediamtx.org/docs/usage/forward) streams to other servers
|
||||
- [Proxy](https://mediamtx.org/docs/usage/proxy) requests to other servers
|
||||
- [Control](https://mediamtx.org/docs/usage/control-api) the server through the Control API
|
||||
- [Extract metrics](https://mediamtx.org/docs/usage/metrics) from the server in a Prometheus-compatible format
|
||||
- [Monitor performance](https://mediamtx.org/docs/usage/performance) to investigate CPU and RAM consumption
|
||||
- [Run hooks](https://mediamtx.org/docs/usage/hooks) (external commands) when clients connect, disconnect, read or publish streams
|
||||
- [Serve always-available streams](https://mediamtx.org/docs/features/always-available) even when the publisher is offline
|
||||
- [Record](https://mediamtx.org/docs/features/record) streams to disk in fMP4 or MPEG-TS format
|
||||
- [Playback](https://mediamtx.org/docs/features/playback) recorded streams
|
||||
- [Authenticate](https://mediamtx.org/docs/features/authentication) users with internal, HTTP or JWT authentication
|
||||
- [Forward](https://mediamtx.org/docs/features/forward) streams to other servers
|
||||
- [Proxy](https://mediamtx.org/docs/features/proxy) requests to other servers
|
||||
- [Control](https://mediamtx.org/docs/features/control-api) the server through the Control API
|
||||
- [Extract metrics](https://mediamtx.org/docs/features/metrics) from the server in a Prometheus-compatible format
|
||||
- [Monitor performance](https://mediamtx.org/docs/features/performance) to investigate CPU and RAM consumption
|
||||
- [Run hooks](https://mediamtx.org/docs/features/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](https://mediamtx.org/docs/kickoff/introduction).
|
||||
|
||||
@@ -6,21 +6,21 @@ _MediaMTX_ is a ready-to-use and zero-dependency live media server and media pro
|
||||
|
||||
Main features:
|
||||
|
||||
- [Publish](../2-publish/01-overview.md) live streams to the server with SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, Web browsers, Raspberry Pi Cameras and more.
|
||||
- [Read](../3-read/01-overview.md) live streams from the server with SRT, WebRTC, RTSP, RTMP, HLS, using FFmpeg, GStreamer, VLC, OBS Studio, Python , Golang, Unity, Web browsers and more.
|
||||
- [Publish](../2-features/03-publish.md) live streams to the server with SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, Web browsers, Raspberry Pi Cameras and more.
|
||||
- [Read](../2-features/04-read.md) live streams from the server with 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](../4-other/04-always-available.md) even when the publisher is offline
|
||||
- [Record](../4-other/05-record.md) streams to disk in fMP4 or MPEG-TS format
|
||||
- [Playback](../4-other/06-playback.md) recorded streams
|
||||
- [Authenticate](../4-other/02-authentication.md) users with internal, HTTP or JWT authentication
|
||||
- [Forward](../4-other/07-forward.md) streams to other servers
|
||||
- [Proxy](../4-other/08-proxy.md) requests to other servers
|
||||
- [Control](../4-other/17-control-api.md) the server through the Control API
|
||||
- [Extract metrics](../4-other/18-metrics.md) from the server in a Prometheus-compatible format
|
||||
- [Monitor performance](../4-other/19-performance.md) to investigate CPU and RAM consumption
|
||||
- [Run hooks](../4-other/16-hooks.md) (external commands) when clients connect, disconnect, read or publish streams
|
||||
- [Serve always-available streams](../2-features/08-always-available.md) even when the publisher is offline
|
||||
- [Record](../2-features/09-record.md) streams to disk in fMP4 or MPEG-TS format
|
||||
- [Playback](../2-features/10-playback.md) recorded streams
|
||||
- [Authenticate](../2-features/06-authentication.md) users with internal, HTTP or JWT authentication
|
||||
- [Forward](../2-features/11-forward.md) streams to other servers
|
||||
- [Proxy](../2-features/12-proxy.md) requests to other servers
|
||||
- [Control](../2-features/21-control-api.md) the server through the Control API
|
||||
- [Extract metrics](../2-features/22-metrics.md) from the server in a Prometheus-compatible format
|
||||
- [Monitor performance](../2-features/23-performance.md) to investigate CPU and RAM consumption
|
||||
- [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
|
||||
|
||||
Use the menu to navigate through the documentation.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Basic usage
|
||||
|
||||
1. [Publish](../2-publish/01-overview.md) a stream. For instance, you can publish a stream from a MP4 file with _FFmpeg_:
|
||||
1. [Publish](../2-features/03-publish.md) a stream. For instance, you can publish a stream from a MP4 file with _FFmpeg_:
|
||||
|
||||
```sh
|
||||
ffmpeg -re -stream_loop -1 -i file.mp4 -c copy \
|
||||
@@ -14,7 +14,7 @@
|
||||
! qtdemux name=d d.video_0 ! queue ! s.sink_0 d.audio_0 ! queue ! s.sink_1
|
||||
```
|
||||
|
||||
2. [Read](../3-read/01-overview.md) the stream. For instance, you can read the stream with _VLC_:
|
||||
2. [Read](../2-features/04-read.md) the stream. For instance, you can read the stream with _VLC_:
|
||||
|
||||
```sh
|
||||
vlc --network-caching=50 rtsp://localhost:8554/mystream
|
||||
@@ -11,7 +11,7 @@ In order to provide its features, _MediaMTX_ performs the following network inte
|
||||
|
||||
Internally, the service revolves around these components:
|
||||
|
||||
- A path manager, is in charge of managing paths, performing authentication and linking clients to paths.
|
||||
- A path manager, that is in charge of managing paths, performing authentication and linking clients to paths.
|
||||
- Paths. Each path contains a stream, which is provided by a single publisher or by a single external source, and is then broadcasted to any reader.
|
||||
- A recorder, in charge of storing streams to disks.
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# Publish a stream
|
||||
|
||||
Live streams can be published to the server with the following protocols and codecs:
|
||||
|
||||
| protocol | variants | codecs |
|
||||
| ----------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [SRT clients](../3-publish/01-srt-clients.md) | | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [SRT cameras and servers](../3-publish/02-srt-cameras-and-servers.md) | | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [WebRTC clients](../3-publish/03-webrtc-clients.md) | WHIP | **Video**: AV1, VP9, VP8, H265, H264<br/>**Audio**: Opus, G722, G711 (PCMA, PCMU) |
|
||||
| [WebRTC servers](../3-publish/04-webrtc-servers.md) | WHEP | **Video**: AV1, VP9, VP8, H265, H264<br/>**Audio**: Opus, G722, G711 (PCMA, PCMU) |
|
||||
| [RTSP clients](../3-publish/05-rtsp-clients.md) | UDP, TCP, RTSPS | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, MJPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
| [RTSP cameras and servers](../3-publish/06-rtsp-cameras-and-servers.md) | UDP, UDP-Multicast, TCP, RTSPS | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, MJPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
| [RTMP clients](../3-publish/07-rtmp-clients.md) | RTMP, RTMPS, Enhanced RTMP | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||
| [RTMP cameras and servers](../3-publish/08-rtmp-cameras-and-servers.md) | RTMP, RTMPS, Enhanced RTMP | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||
| [HLS cameras and servers](../3-publish/09-hls-cameras-and-servers.md) | Low-Latency HLS, MP4-based HLS, legacy HLS | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC) |
|
||||
| [MPEG-TS](../3-publish/10-mpeg-ts.md) | MPEG-TS over UDP, MPEG-TS over Unix socket | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [RTP](../3-publish/11-rtp.md) | RTP over UDP | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, M-JPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
|
||||
We provide instructions for publishing with the following devices:
|
||||
|
||||
- [Raspberry Pi Cameras](../3-publish/12-raspberry-pi-cameras.md)
|
||||
- [Generic webcams](../3-publish/13-generic-webcams.md)
|
||||
|
||||
We provide instructions for publishing with the following software:
|
||||
|
||||
- [FFmpeg](../3-publish/14-ffmpeg.md)
|
||||
- [GStreamer](../3-publish/15-gstreamer.md)
|
||||
- [OBS Studio](../3-publish/16-obs-studio.md)
|
||||
- [Python and OpenCV](../3-publish/17-python-opencv.md)
|
||||
- [Golang](../3-publish/18-golang.md)
|
||||
- [Unity](../3-publish/19-unity.md)
|
||||
- [Web browsers](../3-publish/20-web-browsers.md)
|
||||
@@ -0,0 +1,22 @@
|
||||
# Read a stream
|
||||
|
||||
Live streams can be read from the server with the following protocols and codecs:
|
||||
|
||||
| protocol | variants | codecs |
|
||||
| ---------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [SRT clients](../4-read/01-srt.md) | | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [WebRTC clients](../4-read/02-webrtc.md) | WHEP | **Video**: AV1, VP9, VP8, H265, H264<br/>**Audio**: Opus, G722, G711 (PCMA, PCMU)<br/>**Other**: KLV |
|
||||
| [RTSP clients](../4-read/03-rtsp.md) | UDP, UDP-Multicast, TCP, RTSPS | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, M-JPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
| [RTMP clients](../4-read/04-rtmp.md) | RTMP, RTMPS, Enhanced RTMP | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||
| [HLS](../4-read/05-hls.md) | Low-Latency HLS, MP4-based HLS, legacy HLS | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC) |
|
||||
|
||||
We provide instructions for reading with the following software:
|
||||
|
||||
- [FFmpeg](../4-read/06-ffmpeg.md)
|
||||
- [GStreamer](../4-read/07-gstreamer.md)
|
||||
- [VLC](../4-read/08-vlc.md)
|
||||
- [OBS Studio](../4-read/09-obs-studio.md)
|
||||
- [Python and OpenCV](../4-read/10-python-opencv.md)
|
||||
- [Golang](../4-read/11-golang.md)
|
||||
- [Unity](../4-read/12-unity.md)
|
||||
- [Web browsers](../4-read/13-web-browsers.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
|
||||
```
|
||||
|
||||
3. Use the [Control API](17-control-api.md).
|
||||
3. Use the [Control API](21-control-api.md).
|
||||
|
||||
## Encrypt the configuration
|
||||
|
||||
@@ -297,7 +297,7 @@ Username and password can be passed through the `Authorization: Basic` HTTP head
|
||||
Authorization: Basic base64(user:pass)
|
||||
```
|
||||
|
||||
When using a web browser, a dialog is first shown to users, asking for credentials, and then the header is automatically inserted into every request. If you need to automatically fill credentials from a parent web page, read [Embed streams in a website](13-embed-streams-in-a-website.md).
|
||||
When using a web browser, a dialog is first shown to users, asking for credentials, and then the header is automatically inserted into every request. If you need to automatically fill credentials from a parent web page, read [Embed streams in a website](17-embed-streams-in-a-website.md).
|
||||
|
||||
If the `Authorization: Basic` header cannot be used (for instance, in software like OBS Studio, which only allows to provide a "Bearer Token"), credentials can be passed through the `Authorization: Bearer` header (i.e. the "Bearer Token" in OBS), where the value is the concatenation of username and password, separated by a colon:
|
||||
|
||||
@@ -349,4 +349,4 @@ In OBS Studio, this is the "Bearer Token" field.
|
||||
|
||||
If the `Authorization: Bearer` token cannot be directly provided (for instance, with web browsers that directly access _MediaMTX_ and show a credential dialog), you can pass the token as password, using an arbitrary user.
|
||||
|
||||
In web browsers, if you need to automatically fill credentials from a parent web page, read [Embed streams in a website](13-embed-streams-in-a-website.md).
|
||||
In web browsers, if you need to automatically fill credentials from a parent web page, read [Embed streams in a website](17-embed-streams-in-a-website.md).
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# Embed streams in a website
|
||||
|
||||
Live streams can be embedded into an external website by using the WebRTC or HLS protocol. Before embedding, check that the stream is ready and can be accessed with intended protocol by using URLs mentioned in [Read a stream](../3-read/01-overview.md).
|
||||
Live streams can be embedded into an external website by using the WebRTC or HLS protocol. Before embedding, check that the stream is ready and can be accessed with intended protocol by using URLs mentioned in [Read a stream](../2-features/04-read.md).
|
||||
|
||||
## WebRTC in iframe
|
||||
|
||||
@@ -37,7 +37,7 @@ Log entries can be queried by using:
|
||||
journalctl SYSLOG_IDENTIFIER=mediamtx
|
||||
```
|
||||
|
||||
If _MediaMTX_ is also running as a [system service](14-start-on-boot.md), log entries can be queried by using:
|
||||
If _MediaMTX_ is also running as a [system service](18-start-on-boot.md), log entries can be queried by using:
|
||||
|
||||
```sh
|
||||
journalctl -u mediamtx
|
||||
@@ -14,4 +14,4 @@ curl http://127.0.0.1:9997/v3/paths/list
|
||||
|
||||
The control API is documented in the [Control API Reference page](../5-references/2-control-api.md) and in the [OpenAPI / Swagger file](https://github.com/bluenviron/mediamtx/blob/{version_tag}/api/openapi.yaml).
|
||||
|
||||
Be aware that by default the Control API is accessible by localhost only; to increase visibility or enforce authentication, check [Authentication](02-authentication.md).
|
||||
Be aware that by default the Control API is accessible by localhost only; to increase visibility or enforce authentication, check [Authentication](06-authentication.md).
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# SRT-specific features
|
||||
|
||||
SRT is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish](../2-publish/02-srt-clients.md) and [Read](../3-read/02-srt.md). Features in this page are shared among both tasks.
|
||||
SRT is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish](../3-publish/01-srt-clients.md) and [Read](../4-read/01-srt.md). Features in this page are shared among both tasks.
|
||||
|
||||
## Standard stream ID syntax
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
# WebRTC-specific features
|
||||
|
||||
WebRTC is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish](../2-publish/04-webrtc-clients.md) and [Read](../3-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](../3-publish/03-webrtc-clients.md) and [Read](../4-read/02-webrtc.md). Features in this page are shared among both tasks.
|
||||
|
||||
## Codec support in browsers
|
||||
|
||||
WebRTC can be used to publish and read streams encoded with a wide variety of video and audio codecs, that are listed in [Publish a stream](../2-publish/01-overview.md) and [Read a stream](../3-read/01-overview.md), but not every browser can publish and read streams with every codec due to internal limitations that cannot be overcome by this or any other server.
|
||||
WebRTC can be used to publish and read streams encoded with a wide variety of video and audio codecs, that are listed in [Publish a stream](../2-features/03-publish.md) and [Read a stream](../2-features/04-read.md), but not every browser can publish and read streams with every codec due to internal limitations that cannot be overcome by this or any other server.
|
||||
|
||||
You can check what codecs your browser supports by [using this tool](https://jsfiddle.net/v24s8q1f/).
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# RTSP-specific features
|
||||
|
||||
RTSP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish](../2-publish/06-rtsp-clients.md) and [Read](../3-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](../3-publish/05-rtsp-clients.md) and [Read](../4-read/03-rtsp.md). Features in this page are shared among both tasks.
|
||||
|
||||
## Transport protocols
|
||||
|
||||
@@ -107,4 +107,4 @@ There are also the `rtsps+http`, `rtsp+ws`, `rtsps+ws` schemas to handle any var
|
||||
|
||||
## MPEG-TS inside RTSP
|
||||
|
||||
read [MPEG-TS inside RTSP](../2-publish/06-rtsp-clients.md#mpeg-ts-inside-rtsp) in the "Publish with RTSP clients" page.
|
||||
read [MPEG-TS inside RTSP](../3-publish/05-rtsp-clients.md#mpeg-ts-inside-rtsp) in the "Publish with RTSP clients" page.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# RTMP-specific features
|
||||
|
||||
RTMP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, check out [Publish](../2-publish/08-rtmp-clients.md) and [Read](../3-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](../3-publish/07-rtmp-clients.md) and [Read](../4-read/04-rtmp.md). Features in this page are shared among both tasks.
|
||||
|
||||
## Encryption
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1 @@
|
||||
# Features
|
||||
@@ -1,32 +0,0 @@
|
||||
# Publish a stream
|
||||
|
||||
Live streams can be published to the server with the following protocols and codecs:
|
||||
|
||||
| protocol | variants | codecs |
|
||||
| ---------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [SRT clients](02-srt-clients.md) | | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [SRT cameras and servers](03-srt-cameras-and-servers.md) | | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [WebRTC clients](04-webrtc-clients.md) | WHIP | **Video**: AV1, VP9, VP8, H265, H264<br/>**Audio**: Opus, G722, G711 (PCMA, PCMU) |
|
||||
| [WebRTC servers](05-webrtc-servers.md) | WHEP | **Video**: AV1, VP9, VP8, H265, H264<br/>**Audio**: Opus, G722, G711 (PCMA, PCMU) |
|
||||
| [RTSP clients](06-rtsp-clients.md) | UDP, TCP, RTSPS | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, MJPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
| [RTSP cameras and servers](07-rtsp-cameras-and-servers.md) | UDP, UDP-Multicast, TCP, RTSPS | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, MJPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
| [RTMP clients](08-rtmp-clients.md) | RTMP, RTMPS, Enhanced RTMP | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||
| [RTMP cameras and servers](09-rtmp-cameras-and-servers.md) | RTMP, RTMPS, Enhanced RTMP | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||
| [HLS cameras and servers](10-hls-cameras-and-servers.md) | Low-Latency HLS, MP4-based HLS, legacy HLS | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC) |
|
||||
| [MPEG-TS](11-mpeg-ts.md) | MPEG-TS over UDP, MPEG-TS over Unix socket | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [RTP](12-rtp.md) | RTP over UDP | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, M-JPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
|
||||
We provide instructions for publishing with the following devices:
|
||||
|
||||
- [Raspberry Pi Cameras](13-raspberry-pi-cameras.md)
|
||||
- [Generic webcams](14-generic-webcams.md)
|
||||
|
||||
We provide instructions for publishing with the following software:
|
||||
|
||||
- [FFmpeg](15-ffmpeg.md)
|
||||
- [GStreamer](16-gstreamer.md)
|
||||
- [OBS Studio](17-obs-studio.md)
|
||||
- [Python and OpenCV](18-python-opencv.md)
|
||||
- [Golang](19-golang.md)
|
||||
- [Unity](20-unity.md)
|
||||
- [Web browsers](21-web-browsers.md)
|
||||
@@ -1,11 +0,0 @@
|
||||
# RTMP clients
|
||||
|
||||
RTMP is a protocol that allows to read and publish streams. It supports encryption, read [RTMP-specific features](../4-other/23-rtmp-specific-features.md). Streams can be published to the server by using the URL:
|
||||
|
||||
```
|
||||
rtmp://localhost/mystream
|
||||
```
|
||||
|
||||
The resulting stream will be available on path `/mystream`.
|
||||
|
||||
Some clients that can publish with RTMP are [FFmpeg](15-ffmpeg.md), [GStreamer](16-gstreamer.md), [OBS Studio](17-obs-studio.md).
|
||||
@@ -8,8 +8,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`.
|
||||
|
||||
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](../4-other/20-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.
|
||||
|
||||
Some clients that can publish with SRT are [FFmpeg](15-ffmpeg.md), [GStreamer](16-gstreamer.md), [OBS Studio](17-obs-studio.md).
|
||||
Some clients that can publish with SRT are [FFmpeg](14-ffmpeg.md), [GStreamer](15-gstreamer.md), [OBS Studio](16-obs-studio.md).
|
||||
@@ -14,8 +14,8 @@ WHIP is a WebRTC extension that allows to publish streams by using a URL, withou
|
||||
http://localhost:8889/mystream/whip
|
||||
```
|
||||
|
||||
Be aware that not all browsers can read any codec, check [Codec support in browsers](../4-other/21-webrtc-specific-features.md#codec-support-in-browsers).
|
||||
Be aware that not all browsers can read 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](../4-other/21-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](15-ffmpeg.md), [GStreamer](16-gstreamer.md), [OBS Studio](17-obs-studio.md), [Unity](20-unity.md) and [Web browsers](21-web-browsers.md).
|
||||
Some clients that can publish with WebRTC and WHIP are [FFmpeg](14-ffmpeg.md), [GStreamer](15-gstreamer.md), [OBS Studio](16-obs-studio.md), [Unity](19-unity.md) and [Web browsers](20-web-browsers.md).
|
||||
@@ -9,7 +9,7 @@ paths:
|
||||
source: wheps://host:port/path
|
||||
```
|
||||
|
||||
If the remote server is a _MediaMTX_ instance, remember to add a `/whep` suffix after the stream name, since in _MediaMTX_ [it's part of the WHEP URL](../3-read/03-webrtc.md):
|
||||
If the remote server is a _MediaMTX_ instance, remember to add a `/whep` suffix after the stream name, since in _MediaMTX_ [it's part of the WHEP URL](../4-read/02-webrtc.md):
|
||||
|
||||
```yml
|
||||
paths:
|
||||
@@ -8,9 +8,9 @@ rtsp://localhost:8554/mystream
|
||||
|
||||
The resulting stream will be available on path `/mystream`.
|
||||
|
||||
Some clients that can publish with RTSP are [FFmpeg](15-ffmpeg.md), [GStreamer](16-gstreamer.md), [OBS Studio](17-obs-studio.md), [Python and OpenCV](18-python-opencv.md).
|
||||
Some clients that can publish with RTSP are [FFmpeg](14-ffmpeg.md), [GStreamer](15-gstreamer.md), [OBS Studio](16-obs-studio.md), [Python and OpenCV](17-python-opencv.md).
|
||||
|
||||
Advanced RTSP features and settings are described in [RTSP-specific features](../4-other/22-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
|
||||
|
||||
+1
-1
@@ -44,4 +44,4 @@ paths:
|
||||
|
||||
All available parameters are listed in the [configuration file](../5-references/1-configuration-file.md).
|
||||
|
||||
Advanced RTSP features and settings are described in [RTSP-specific features](../4-other/22-rtsp-specific-features.md).
|
||||
Advanced RTSP features and settings are described in [RTSP-specific features](../2-features/26-rtsp-specific-features.md).
|
||||
@@ -0,0 +1,11 @@
|
||||
# RTMP clients
|
||||
|
||||
RTMP is a protocol that allows to read and publish streams. 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
|
||||
```
|
||||
|
||||
The resulting stream will be available on path `/mystream`.
|
||||
|
||||
Some clients that can publish with RTMP are [FFmpeg](14-ffmpeg.md), [GStreamer](15-gstreamer.md), [OBS Studio](16-obs-studio.md).
|
||||
@@ -28,7 +28,7 @@ paths:
|
||||
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](15-ffmpeg.md) and [GStreamer](16-gstreamer.md).
|
||||
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](14-ffmpeg.md) and [GStreamer](15-gstreamer.md).
|
||||
|
||||
Unix sockets are more efficient than UDP packets and can be used as transport by specifying the `unix+mpegts` scheme:
|
||||
|
||||
@@ -21,4 +21,4 @@ paths:
|
||||
|
||||
`rtpSDP` must contain a valid SDP, that is a description of the RTP session.
|
||||
|
||||
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](15-ffmpeg.md) and [GStreamer](16-gstreamer.md).
|
||||
Some clients that can publish with UDP and MPEG-TS are [FFmpeg](14-ffmpeg.md) and [GStreamer](15-gstreamer.md).
|
||||
@@ -36,7 +36,7 @@ ffmpeg -re -f lavfi -i testsrc=size=1280x720:rate=30 \
|
||||
|
||||
## 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](12-rtp.md)). Then:
|
||||
In _MediaMTX_ configuration, add a path with `source: udp+rtp://238.0.0.1:1234` and a valid `rtpSDP` (read [RTP](11-rtp.md)). Then:
|
||||
|
||||
```sh
|
||||
ffmpeg -re -f lavfi -i testsrc=size=1280x720:rate=30 \
|
||||
@@ -20,7 +20,7 @@ d.video_0 ! rtspclientsink location=rtsp://localhost:8554/mystream
|
||||
|
||||
The resulting stream will be available on path `/mystream`.
|
||||
|
||||
For advanced options, read [RTSP-specific features](../4-other/22-rtsp-specific-features.md).
|
||||
For advanced options, read [RTSP-specific features](../2-features/26-rtsp-specific-features.md).
|
||||
|
||||
## GStreamer and RTMP
|
||||
|
||||
@@ -38,7 +38,7 @@ videotestsrc ! video/x-raw,width=1280,height=720,format=I420 ! x264enc speed-pre
|
||||
audiotestsrc ! audioconvert ! avenc_aac ! mux.
|
||||
```
|
||||
|
||||
For advanced options, read [RTSP-specific features](../4-other/22-rtsp-specific-features.md).
|
||||
For advanced options, read [RTSP-specific features](../2-features/26-rtsp-specific-features.md).
|
||||
|
||||
## GStreamer and WebRTC
|
||||
|
||||
@@ -177,7 +177,7 @@ OBS Studio requires _MediaMTX_ to use a TLS certificate signed by a public certi
|
||||
|
||||
### Standard
|
||||
|
||||
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:
|
||||
Recent versions of OBS Studio can also publish streams to the server with the [WebRTC / WHIP protocol](03-webrtc-clients.md) Use the following parameters:
|
||||
|
||||
- Service: `WHIP`
|
||||
- Server: `http://localhost:8889/mystream/whip`
|
||||
@@ -1,6 +1,6 @@
|
||||
# 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](06-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](05-rtsp-clients.md). OpenCV must be compiled with support for GStreamer, by following this procedure:
|
||||
|
||||
```sh
|
||||
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
|
||||
|
||||
Software written with the Unity Engine can publish a stream to the server by using the [WebRTC protocol](04-webrtc-clients.md).
|
||||
Software written with the Unity Engine can publish a stream to the server by using the [WebRTC protocol](03-webrtc-clients.md).
|
||||
|
||||
Create a new Unity project or open an existing one.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Web browsers
|
||||
|
||||
Web browsers can publish a stream to the server by using the [WebRTC protocol](04-webrtc-clients.md). Start the server and open the web page:
|
||||
Web browsers can publish a stream to the server by using the [WebRTC protocol](03-webrtc-clients.md). Start the server and open the web page:
|
||||
|
||||
```
|
||||
http://localhost:8889/mystream/publish
|
||||
@@ -1,22 +0,0 @@
|
||||
# Read a stream
|
||||
|
||||
Live streams can be read from the server with the following protocols and codecs:
|
||||
|
||||
| protocol | variants | codecs |
|
||||
| ------------------------------ | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [SRT clients](02-srt.md) | | **Video**: H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3<br/>**Other**: KLV |
|
||||
| [WebRTC clients](03-webrtc.md) | WHEP | **Video**: AV1, VP9, VP8, H265, H264<br/>**Audio**: Opus, G722, G711 (PCMA, PCMU)<br/>**Other**: KLV |
|
||||
| [RTSP clients](04-rtsp.md) | UDP, UDP-Multicast, TCP, RTSPS | **Video**: AV1, VP9, VP8, H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video, M-JPEG<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G726, G722, G711 (PCMA, PCMU), LPCM<br/>**Other**: KLV, MPEG-TS, any RTP-compatible codec |
|
||||
| [RTMP clients](05-rtmp.md) | RTMP, RTMPS, Enhanced RTMP | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3, G711 (PCMA, PCMU), LPCM |
|
||||
| [HLS](06-hls.md) | Low-Latency HLS, MP4-based HLS, legacy HLS | **Video**: AV1, VP9, H265, H264<br/>**Audio**: Opus, MPEG-4 Audio (AAC) |
|
||||
|
||||
We provide instructions for reading with the following software:
|
||||
|
||||
- [FFmpeg](07-ffmpeg.md)
|
||||
- [GStreamer](08-gstreamer.md)
|
||||
- [VLC](09-vlc.md)
|
||||
- [OBS Studio](10-obs-studio.md)
|
||||
- [Python and OpenCV](11-python-opencv.md)
|
||||
- [Golang](12-golang.md)
|
||||
- [Unity](13-unity.md)
|
||||
- [Web browsers](14-web-browsers.md)
|
||||
@@ -1,9 +0,0 @@
|
||||
# RTSP clients
|
||||
|
||||
RTSP is a protocol that allows to publish and read streams. It supports several underlying transport protocols and encryption (read [RTSP-specific features](../4-other/22-rtsp-specific-features.md)). In order to read a stream with the RTSP protocol, use this URL:
|
||||
|
||||
```
|
||||
rtsp://localhost:8554/mystream
|
||||
```
|
||||
|
||||
Some clients that can read with RTSP are [FFmpeg](07-ffmpeg.md), [GStreamer](08-gstreamer.md) and [VLC](09-vlc.md).
|
||||
@@ -1,9 +0,0 @@
|
||||
# RTMP clients
|
||||
|
||||
RTMP is a protocol that allows to read and publish streams. It supports encryption, read [RTMP-specific features](../4-other/23-rtmp-specific-features.md). Streams can be read from the server by using the URL:
|
||||
|
||||
```
|
||||
rtmp://localhost/mystream
|
||||
```
|
||||
|
||||
Some clients that can read with RTMP are [FFmpeg](07-ffmpeg.md), [GStreamer](08-gstreamer.md) and [VLC](09-vlc.md).
|
||||
@@ -1 +0,0 @@
|
||||
# Other features
|
||||
@@ -8,6 +8,6 @@ srt://localhost:8890?streamid=read:mystream
|
||||
|
||||
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](../4-other/20-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](07-ffmpeg.md), [GStreamer](08-gstreamer.md) and [VLC](09-vlc.md).
|
||||
Some clients that can read with SRT are [FFmpeg](06-ffmpeg.md), [GStreamer](07-gstreamer.md) and [VLC](08-vlc.md).
|
||||
@@ -12,8 +12,8 @@ WHEP is a WebRTC extension that allows to read streams by using a URL, without p
|
||||
http://localhost:8889/mystream/whep
|
||||
```
|
||||
|
||||
Be aware that not all browsers can read any codec, check [Codec support in browsers](../4-other/21-webrtc-specific-features.md#codec-support-in-browsers).
|
||||
Be aware that not all browsers can read 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](../4-other/21-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 [FFmpeg](07-ffmpeg.md), [GStreamer](08-gstreamer.md), [Unity](13-unity.md) and [web browsers](14-web-browsers.md).
|
||||
Some clients that can read with WebRTC and WHEP are [FFmpeg](06-ffmpeg.md), [GStreamer](07-gstreamer.md), [Unity](12-unity.md) and [web browsers](13-web-browsers.md).
|
||||
@@ -0,0 +1,9 @@
|
||||
# RTSP clients
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
Some clients that can read with RTSP are [FFmpeg](06-ffmpeg.md), [GStreamer](07-gstreamer.md) and [VLC](08-vlc.md).
|
||||
@@ -0,0 +1,9 @@
|
||||
# RTMP clients
|
||||
|
||||
RTMP is a protocol that allows to read and publish streams. 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
|
||||
```
|
||||
|
||||
Some clients that can read with RTMP are [FFmpeg](06-ffmpeg.md), [GStreamer](07-gstreamer.md) and [VLC](08-vlc.md).
|
||||
@@ -12,4 +12,4 @@ and can also be accessed without using the browsers, by software that supports t
|
||||
http://localhost:8888/mystream/index.m3u8
|
||||
```
|
||||
|
||||
Some clients that can read with HLS are [FFmpeg](07-ffmpeg.md), [GStreamer](08-gstreamer.md), [VLC](09-vlc.md) and [web browsers](14-web-browsers.md).
|
||||
Some clients that can read with HLS are [FFmpeg](06-ffmpeg.md), [GStreamer](07-gstreamer.md), [VLC](08-vlc.md) and [web browsers](13-web-browsers.md).
|
||||
@@ -8,7 +8,7 @@ GStreamer can read a stream from the server in several ways. The recommended one
|
||||
gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/mystream latency=0 ! decodebin ! autovideosink
|
||||
```
|
||||
|
||||
For advanced options, read [RTSP-specific features](../4-other/22-rtsp-specific-features.md).
|
||||
For advanced options, read [RTSP-specific features](../2-features/26-rtsp-specific-features.md).
|
||||
|
||||
## GStreamer and WebRTC
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# OBS Studio
|
||||
|
||||
OBS Studio can read streams from the server by using the [RTSP protocol](04-rtsp.md).
|
||||
OBS Studio can read streams from the server by using the [RTSP protocol](03-rtsp.md).
|
||||
|
||||
Open OBS, click on _Add Source_, _Media source_, _OK_, uncheck _Local file_, insert in _Input_:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Python and OpenCV
|
||||
|
||||
Python-based software can read streams from the server with the OpenCV library, acting as a [RTSP client](04-rtsp.md).
|
||||
Python-based software can read streams from the server with the OpenCV library, acting as a [RTSP client](03-rtsp.md).
|
||||
|
||||
```python
|
||||
import cv2
|
||||
@@ -1,6 +1,6 @@
|
||||
# Unity
|
||||
|
||||
Software written with the Unity Engine can read a stream from the server by using the [WebRTC protocol](03-webrtc.md).
|
||||
Software written with the Unity Engine can read a stream from the server by using the [WebRTC protocol](02-webrtc.md).
|
||||
|
||||
Create a new Unity project or open an existing one.
|
||||
|
||||
@@ -4,20 +4,20 @@ Web browsers can read a stream from the server in several ways.
|
||||
|
||||
## Web browsers and WebRTC
|
||||
|
||||
You can read a stream by using the [WebRTC protocol](03-webrtc.md) by visiting the web page:
|
||||
You can read a stream by using the [WebRTC protocol](02-webrtc.md) by visiting the web page:
|
||||
|
||||
```
|
||||
http://localhost:8889/mystream
|
||||
```
|
||||
|
||||
See [Embed streams in a website](../4-other/13-embed-streams-in-a-website.md) for instructions on how to embed the stream into an external website.
|
||||
See [Embed streams in a website](../2-features/17-embed-streams-in-a-website.md) for instructions on how to embed the stream into an external website.
|
||||
|
||||
## Web browsers and HLS
|
||||
|
||||
Web browsers can also read a stream with the [HLS protocol](06-hls.md). Latency is higher but there are fewer problems related to connectivity between server and clients, furthermore the server load can be balanced by using a common HTTP CDN (like Cloudflare or CloudFront), and this allows to handle an unlimited amount of readers. Visit the web page:
|
||||
Web browsers can also read a stream with the [HLS protocol](05-hls.md). Latency is higher but there are fewer problems related to connectivity between server and clients, furthermore the server load can be balanced by using a common HTTP CDN (like Cloudflare or CloudFront), and this allows to handle an unlimited amount of readers. Visit the web page:
|
||||
|
||||
```
|
||||
http://localhost:8888/mystream
|
||||
```
|
||||
|
||||
See [Embed streams in a website](../4-other/13-embed-streams-in-a-website.md) for instructions on how to embed the stream into an external website.
|
||||
See [Embed streams in a website](../2-features/17-embed-streams-in-a-website.md) for instructions on how to embed the stream into an external website.
|
||||
@@ -1,3 +1,3 @@
|
||||
# Configuration file reference
|
||||
|
||||
This is a copy of the configuration file (`mediamtx.yml`) of the latest _MediaMTX_ release ({version_tag}), that contains all available parameters. Check the [Configuration usage page](../4-other/01-configuration.md) for instructions on how to change it.
|
||||
This is a copy of the configuration file (`mediamtx.yml`) of the latest _MediaMTX_ release ({version_tag}), that contains all available parameters. Check the [Configuration usage page](../2-features/05-configuration.md) for instructions on how to change it.
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# 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](../4-other/17-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.
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
kickoff/installation: kickoff/install
|
||||
kickoff/basic-usage: features/basic-usage
|
||||
kickoff/architecture: features/architecture
|
||||
|
||||
usage/publish: publish/overview
|
||||
usage/read: read/overview
|
||||
@@ -29,9 +31,38 @@ usage/rtsp-specific-features: other/rtsp-specific-features
|
||||
usage/rtmp-specific-features: other/rtmp-specific-features
|
||||
usage/decrease-packet-loss: other/decrease-packet-loss
|
||||
|
||||
other/configuration: features/configuration
|
||||
other/authentication: features/authentication
|
||||
other/remuxing-reencoding-compression: features/remuxing-reencoding-compression
|
||||
other/always-available: features/always-available
|
||||
other/record: features/record
|
||||
other/playback: features/playback
|
||||
other/forward: features/forward
|
||||
other/proxy: features/proxy
|
||||
other/extract-snapshots: features/extract-snapshots
|
||||
other/on-demand-publishing: features/on-demand-publishing
|
||||
other/absolute-timestamps: features/absolute-timestamps
|
||||
other/expose-the-server-in-a-subfolder: features/expose-the-server-in-a-subfolder
|
||||
other/embed-streams-in-a-website: features/embed-streams-in-a-website
|
||||
other/start-on-boot: features/start-on-boot
|
||||
other/logging: features/logging
|
||||
other/hooks: features/hooks
|
||||
other/control-api: features/control-api
|
||||
other/metrics: features/metrics
|
||||
other/performance: features/performance
|
||||
other/srt-specific-features: features/srt-specific-features
|
||||
other/webrtc-specific-features: features/webrtc-specific-features
|
||||
other/rtsp-specific-features: features/rtsp-specific-features
|
||||
other/rtmp-specific-features: features/rtmp-specific-features
|
||||
other/decrease-packet-loss: features/decrease-packet-loss
|
||||
other/index: features/index
|
||||
other/compile: misc/compile
|
||||
other/license: misc/license
|
||||
other/security: misc/security
|
||||
other/specifications: misc/specifications
|
||||
other/related-projects: misc/related-projects
|
||||
other/route-absolute-timestamps: other/absolute-timestamps
|
||||
|
||||
publish/overview: features/publish
|
||||
|
||||
read/overview: features/read
|
||||
|
||||
Reference in New Issue
Block a user