You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[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 |
19
-
|[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 |
18
+
|[MPEG-TS](#mpeg-ts)| MPEG-TS over UDP, MPEG-TS over Unix socket| H265, H264, MPEG-4 Video (H263, Xvid), MPEG-1/2 Video | Opus, MPEG-4 Audio (AAC), MPEG-1/2 Audio (MP3), AC-3 |
19
+
|[RTP](#rtp)| RTP over UDP, RTP over Unix socket| 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 |
20
20
21
21
We provide instructions for publishing with the following devices:
22
22
@@ -48,7 +48,7 @@ If you need to use the standard stream ID syntax instead of the custom one in us
48
48
49
49
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.
50
50
51
-
Known clients that can publish with SRT are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio).
51
+
Some clients that can publish with SRT are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio).
52
52
53
53
### SRT cameras and servers
54
54
@@ -81,7 +81,7 @@ Be aware that not all browsers can read any codec, check [Supported browsers](we
81
81
82
82
Depending on the network it might be difficult to establish a connection between server and clients, read [Solving WebRTC connectivity issues](webrtc-specific-features#solving-webrtc-connectivity-issues).
83
83
84
-
Known clients that can publish with WebRTC and WHIP are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio), [Unity](#unity) and [Web browsers](#web-browsers).
84
+
Some clients that can publish with WebRTC and WHIP are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio), [Unity](#unity) and [Web browsers](#web-browsers).
The resulting stream is available in path `/mystream`.
106
106
107
-
Known clients that can publish with RTSP are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio).
107
+
Some clients that can publish with RTSP are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio), [OpenCV](#opencv).
108
108
109
109
### RTSP cameras and servers
110
110
111
-
Most IP cameras expose their video stream by using a RTSP server that is embedded into the camera itself. In particular, cameras that are compliant with ONVIF profile S or T meet this requirement. You can use _MediaMTX_ to connect to one or several existing RTSP servers and read their video streams:
111
+
Most IP cameras expose their video stream by using a RTSP server that is embedded into the camera itself. In particular, cameras that are compliant with ONVIF profile S or T meet this requirement. You can use _MediaMTX_ to connect to one or several existing RTSP servers and read their media streams:
112
112
113
113
```yml
114
114
paths:
@@ -140,11 +140,11 @@ rtmp://localhost/mystream
140
140
141
141
The resulting stream is available in path `/mystream`.
142
142
143
-
Known clients that can publish with RTMP are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio).
143
+
Some clients that can publish with RTMP are [FFmpeg](#ffmpeg), [GStreamer](#gstreamer), [OBS Studio](#obs-studio).
144
144
145
145
### RTMP cameras and servers
146
146
147
-
You can use _MediaMTX_ to connect to one or several existing RTMP servers and read their video streams:
147
+
You can use _MediaMTX_ to connect to one or several existing RTMP servers and read their media streams:
148
148
149
149
```yml
150
150
paths:
@@ -157,7 +157,7 @@ The resulting stream is available in path `/proxied`.
157
157
158
158
### HLS cameras and servers
159
159
160
-
HLS is a streaming protocol that works by splitting streams into segments, and by serving these segments and a playlist with the HTTP protocol. You can use _MediaMTX_ to connect to one or several existing HLS servers and read their video streams:
160
+
HLS is a streaming protocol that works by splitting streams into segments, and by serving these segments and a playlist with the HTTP protocol. You can use _MediaMTX_ to connect to one or several existing HLS servers and read their media streams:
161
161
162
162
```yml
163
163
paths:
@@ -182,24 +182,6 @@ paths:
182
182
183
183
Where `238.0.0.1` is the IP for listening packets, in this case a multicast IP.
184
184
185
-
You can generate a UDP multicast MPEG-TS stream with GStreamer:
The resulting stream is available in path `/mypath`.
202
-
203
185
If the listening IP is a multicast IP, _MediaMTX_ will listen for incoming packets on the default multicast interface, picked by the operating system. It is possible to specify the interface manually by using the `interface` parameter:
@@ -458,23 +414,79 @@ The resulting stream is available in path `/cam`.
458
414
459
415
### FFmpeg
460
416
461
-
FFmpeg can publish a stream to the server in several ways (SRT client, SRT server, RTSP client, RTMP client, MPEG-TS over UDP, MPEG-TS over Unix sockets, WebRTC with WHIP, RTP over UDP, rtp over Unix sockets). The recommended one consists in publishing as a [RTSP client](#rtsp-clients):
417
+
FFmpeg can publish a stream to the server in several ways. The recommended one consists in publishing with RTSP.
The RTSP protocol supports several underlying transport protocols, each with its own characteristics (see [RTSP-specific features](rtsp-specific-features)). You can set the transport protocol by using the `rtsp_transport` flag, for instance, in order to use TCP:
425
+
The resulting stream is available in path `/mystream`.
WARNING: in case of FFmpeg 8.0, both a video track and an audio track must be present.
474
484
475
485
### GStreamer
476
486
477
-
GStreamer can publish a stream to the server in several ways (SRT client, SRT server, RTSP client, RTMP client, MPEG-TS over UDP, WebRTC with WHIP, RTP over UDP). The recommended one consists in publishing as a [RTSP client](#rtsp-clients):
487
+
FFmpeg can publish a stream to the server in several ways. The recommended one consists in publishing with RTSP.
The RTSP protocol supports several underlying transport protocols, each with its own characteristics (see [RTSP-specific features](rtsp-specific-features)). You can set the transport protocol by using the `protocols` flag:
505
+
The resulting stream is available in path `/mystream`.
The resulting stream is available in path `/mystream`.
523
+
#### GStreamer and WebRTC
508
524
509
-
GStreamer can also publish a stream by using the [WebRTC / WHIP protocol](#webrtc-clients). Make sure that GStreamer version is at least 1.22, and that if the codec is H264, the profile is baseline. Use the `whipclientsink` element:
525
+
Make sure that GStreamer version is at least 1.22, and that if the codec is H264, the profile is baseline. Use the `whipclientsink` element:
OBS Studio can publish to the server in several ways (SRT client, RTMP client, WebRTC client). The recommended one consists in publishing as a [RTMP client](#rtmp-clients). In `Settings -> Stream` (or in the Auto-configuration Wizard), use the following parameters:
537
+
OBS Studio can publish to the server in several ways. The recommended one consists in publishing with RTMP.
538
+
539
+
#### OBS Studio and RTMP
540
+
541
+
In `Settings -> Stream` (or in the Auto-configuration Wizard), use the following parameters:
522
542
523
543
- Service: `Custom...`
524
544
- Server: `rtmp://localhost/mystream`
@@ -539,6 +559,8 @@ If you want to generate a stream that can be read with WebRTC, open `Settings ->
539
559
540
560
Then use the button `Start Recording` (instead of `Start Streaming`) to start streaming.
541
561
562
+
#### OBS Studio and WebRTC
563
+
542
564
Recent versions of OBS Studio can also publish to the server with the [WebRTC / WHIP protocol](#webrtc-clients) Use the following parameters:
543
565
544
566
- Service: `WHIP`
@@ -550,7 +572,7 @@ The resulting stream is available in path `/mystream`.
550
572
551
573
### OpenCV
552
574
553
-
Software which uses the OpenCV library can publish to the server through its GStreamer plugin, as a [RTSP client](#rtsp-clients). It must be compiled with GStreamer support, by following this procedure:
575
+
Software which uses the OpenCV library can publish to the server through its GStreamer plugin, as a [RTSP client](#rtsp-clients). It must be compiled with support for GStreamer, by following this procedure:
Copy file name to clipboardExpand all lines: docs/2-usage/22-webrtc-specific-features.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
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).
4
4
5
-
## Supported browsers
5
+
## Codec support in browsers
6
6
7
7
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.
0 commit comments