Update docs

This commit is contained in:
Alex X
2026-02-07 09:12:31 +03:00
parent f3ad4ad977
commit be4b6c3271
6 changed files with 123 additions and 63 deletions
+20 -5
View File
@@ -33,6 +33,7 @@ Ultimate camera streaming application with support for dozens formats and protoc
- [streaming audio](#stream-to-camera) to all cameras with [two-way audio](#two-way-audio) support
- mixing tracks from different sources to single stream
- [auto-match](www/README.md#javascript-api) client-supported streaming formats and codecs
- [streaming stats](#streaming-stats) for all active connections
- can be [integrated to any project](#projects-using-go2rtc) or be used as [standalone app](#go2rtc-binary)
#### Inspired by
@@ -64,6 +65,7 @@ Ultimate camera streaming application with support for dozens formats and protoc
- [Stream to camera](#stream-to-camera)
- [Publish stream](#publish-stream)
- [Preload stream](#preload-stream)
- [Streaming stats](#streaming-stats)
- [Codecs](#codecs)
- [Codecs filters](#codecs-filters)
- [Codecs madness](#codecs-madness)
@@ -82,9 +84,7 @@ Ultimate camera streaming application with support for dozens formats and protoc
2. Open web interface: `http://localhost:1984/`
3. Add [streams](#streaming-input) to [config](#configuration)
**Developers:**
- integrate [HTTP API](internal/api/README.md) into your smart home platform
**Developers:** integrate [HTTP API](internal/api/README.md) into your smart home platform.
### go2rtc: Binary
@@ -141,14 +141,16 @@ Latest, but maybe unstable version:
## Configuration
This is the `go2rtc.yaml` file in [YAML-format](https://en.wikipedia.org/wiki/YAML).
The configuration can be changed in the [web interface](www/README.md) at `http://localhost:1984`.
The configuration can be changed in the [WebUI](www/README.md) at `http://localhost:1984`.
The editor provides syntax highlighting and checking.
![go2rtc webui config](website/images/webui-config.png)
The simplest config looks like this:
```yaml
streams:
hall_camera: rtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=0
hall-camera: rtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=0
```
- by default go2rtc will search `go2rtc.yaml` in the current work directory
@@ -162,6 +164,12 @@ More information can be [found here](internal/app/README.md).
A summary table of all modules and features can be found [here](internal/README.md).
**Core modules**
- [`app`](internal/app/README.md) - Reading [configs](internal/app/README.md) and setting up [logs](internal/app/README.md#log).
- [`api`](internal/api/README.md) - Handle [HTTP](internal/api/README.md) and [WebSocket](internal/api/ws/README.md) API.
- [`streams`](internal/streams/README.md) - Handle a list of streams.
### Streaming input
#### public protocols
@@ -298,6 +306,13 @@ You can preload any stream on go2rtc start. This is useful for cameras that take
[read more](internal/streams/README.md#preload-stream)
### Streaming stats
[WebUI](www/README.md) provides detailed information about all active connections, including IP-addresses, formats, protocols, number of packets and bytes transferred.
Via the [HTTP API](internal/api/README.md) in [`json`](https://en.wikipedia.org/wiki/JSON) or [`dot`](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) format on an interactive connection map.
![go2rtc webui net](website/images/webui-net.png)
## Codecs
If you have questions about why video or audio is not displayed, you need to read the following sections.
+99 -55
View File
@@ -3,9 +3,9 @@
go2rtc tries to name formats, protocols and codecs the same way they are named in FFmpeg.
Some formats and protocols go2rtc supports exclusively. They have no equivalent in FFmpeg.
- The `echo`, `expr`, `hass` and `onvif` modules receive a link to a stream. They don't know the protocol in advance.
- The `exec` and `ffmpeg` modules support many formats. They are identical to the `http` module.
- The `api`, `app`, `debug`, `ngrok`, `pinggy`, `srtp`, `streams` are supporting modules.
- The [`echo`], [`expr`], [`hass`] and [`onvif`] modules receive a link to a stream. They don't know the protocol in advance.
- The [`exec`] and [`ffmpeg`] modules support many formats. They are identical to the [`http`] module.
- The [`api`], [`app`], [`debug`], [`ngrok`], [`pinggy`], [`srtp`], [`streams`] are supporting modules.
**Modules** implement communication APIs: authorization, encryption, command set, structure of media packets.
@@ -13,55 +13,99 @@ Some formats and protocols go2rtc supports exclusively. They have no equivalent
**Protocols** implement transport for data transmission.
| module | formats | protocols | input | output | ingest | two-way |
|--------------|-----------------|------------------|-------|--------|--------|---------|
| `alsa` | `pcm` | `ioctl` | yes | | | |
| `bubble` | - | `http` | yes | | | |
| `doorbird` | `mulaw` | `http` | yes | | | yes |
| `dvrip` | - | `tcp` | yes | | | yes |
| `echo` | * | * | yes | | | |
| `eseecloud` | `rtp` | `http` | yes | | | |
| `exec` | * | `pipe`, `rtsp` | yes | | | yes |
| `expr` | * | * | yes | | | |
| `ffmpeg` | * | `pipe`, `rtsp` | yes | | | |
| `flussonic` | `mp4` | `ws` | yes | | | |
| `gopro` | `mpegts` | `udp` | yes | | | |
| `hass` | * | * | yes | | | |
| `hls` | `mpegts`, `mp4` | `http` | | yes | | |
| `homekit` | `rtp` | `hap` | yes | yes | | no |
| `http` | `adts` | `http`, `tcp` | yes | | | |
| `http` | `flv` | `http`, `tcp` | yes | | | |
| `http` | `h264` | `http`, `tcp` | yes | | | |
| `http` | `hevc` | `http`, `tcp` | yes | | | |
| `http` | `hls` | `http`, `tcp` | yes | | | |
| `http` | `mjpeg` | `http`, `tcp` | yes | | | |
| `http` | `mpjpeg` | `http` | yes | | | |
| `http` | `mpegts` | `http`, `tcp` | yes | | | |
| `http` | `wav` | `http`, `tcp` | yes | | | |
| `http` | `yuv4mpegpipe` | `http`, `tcp` | yes | | | |
| `isapi` | `alaw`, `mulaw` | `http` | | | | yes |
| `ivideon` | `mp4` | `ws` | yes | | | |
| `mjpeg` | `ascii` | `http` | | yes | | |
| `mjpeg` | `jpeg` | `http` | | yes | | |
| `mjpeg` | `mpjpeg` | `http` | | yes | yes | |
| `mjpeg` | `yuv4mpegpipe` | `http` | | yes | | |
| `mp4` | `mp4` | `http`, `ws` | | yes | | |
| `mpegts` | `adts` | `http` | | yes | | |
| `mpegts` | `mpegts` | `http` | | yes | yes | |
| `multitrans` | `rtp` | `tcp` | | | | yes |
| `nest` | `srtp` | `rtsp`, `webrtc` | yes | | | no |
| `onvif` | `rtp` | * | yes | yes | | |
| `ring` | `srtp` | `webrtc` | yes | | | yes |
| `roborock` | `srtp` | `webrtc` | yes | | | yes |
| `rtmp` | `rtmp` | `rtmp` | yes | yes | yes | |
| `rtmp` | `flv` | `http` | | yes | yes | |
| `rtsp` | `rtsp` | `rtsp` | yes | yes | yes | yes |
| `tapo` | `mpegts` | `http` | yes | | | yes |
| `tuya` | `srtp` | `webrtc` | yes | | | yes |
| `v4l2` | `rawvideo` | `ioctl` | yes | | | |
| `webrtc` | `srtp` | `webrtc` | yes | yes | yes | yes |
| `webtorrent` | `srtp` | `webrtc` | yes | yes | | |
| `wyoming` | `pcm` | `tcp` | | yes | | |
| `wyze` | - | `tutk` | yes | | | yes |
| `xiaomi` | - | `cs2`, `tutk` | yes | | | yes |
| `yandex` | `srtp` | `webrtc` | yes | | | |
| module | formats | protocols | input | output | ingest | two-way |
|----------------|-----------------|------------------|-------|--------|--------|---------|
| [`alsa`] | `pcm` | `ioctl` | yes | | | |
| [`bubble`] | - | `http` | yes | | | |
| [`doorbird`] | `mulaw` | `http` | yes | | | yes |
| [`dvrip`] | - | `tcp` | yes | | | yes |
| [`echo`] | * | * | yes | | | |
| [`eseecloud`] | `rtp` | `http` | yes | | | |
| [`exec`] | * | `pipe`, `rtsp` | yes | | | yes |
| [`expr`] | * | * | yes | | | |
| [`ffmpeg`] | * | `pipe`, `rtsp` | yes | | | |
| [`flussonic`] | `mp4` | `ws` | yes | | | |
| [`gopro`] | `mpegts` | `udp` | yes | | | |
| [`hass`] | * | * | yes | | | |
| [`hls`] | `mpegts`, `mp4` | `http` | | yes | | |
| [`homekit`] | `srtp` | `hap` | yes | yes | | no |
| [`http`] | `adts` | `http`, `tcp` | yes | | | |
| [`http`] | `flv` | `http`, `tcp` | yes | | | |
| [`http`] | `h264` | `http`, `tcp` | yes | | | |
| [`http`] | `hevc` | `http`, `tcp` | yes | | | |
| [`http`] | `hls` | `http`, `tcp` | yes | | | |
| [`http`] | `mjpeg` | `http`, `tcp` | yes | | | |
| [`http`] | `mpjpeg` | `http` | yes | | | |
| [`http`] | `mpegts` | `http`, `tcp` | yes | | | |
| [`http`] | `wav` | `http`, `tcp` | yes | | | |
| [`http`] | `yuv4mpegpipe` | `http`, `tcp` | yes | | | |
| [`isapi`] | `alaw`, `mulaw` | `http` | | | | yes |
| [`ivideon`] | `mp4` | `ws` | yes | | | |
| [`mjpeg`] | `ascii` | `http` | | yes | | |
| [`mjpeg`] | `jpeg` | `http` | | yes | | |
| [`mjpeg`] | `mpjpeg` | `http` | | yes | yes | |
| [`mjpeg`] | `yuv4mpegpipe` | `http` | | yes | | |
| [`mp4`] | `mp4` | `http`, `ws` | | yes | | |
| [`mpegts`] | `adts` | `http` | | yes | | |
| [`mpegts`] | `mpegts` | `http` | | yes | yes | |
| [`multitrans`] | `rtp` | `tcp` | | | | yes |
| [`nest`] | `srtp` | `rtsp`, `webrtc` | yes | | | no |
| [`onvif`] | `rtp` | * | yes | yes | | |
| [`ring`] | `srtp` | `webrtc` | yes | | | yes |
| [`roborock`] | `srtp` | `webrtc` | yes | | | yes |
| [`rtmp`] | `flv` | `rtmp` | yes | yes | yes | |
| [`rtmp`] | `flv` | `http` | | yes | yes | |
| [`rtsp`] | `rtsp` | `rtsp` | yes | yes | yes | yes |
| [`tapo`] | `mpegts` | `http` | yes | | | yes |
| [`tuya`] | `srtp` | `webrtc` | yes | | | yes |
| [`v4l2`] | `rawvideo` | `ioctl` | yes | | | |
| [`webrtc`] | `srtp` | `webrtc` | yes | yes | yes | yes |
| [`webtorrent`] | `srtp` | `webrtc` | yes | yes | | |
| [`wyoming`] | `pcm` | `tcp` | | yes | | |
| [`wyze`] | - | `tutk` | yes | | | yes |
| [`xiaomi`] | - | `cs2`, `tutk` | yes | | | yes |
| [`yandex`] | `srtp` | `webrtc` | yes | | | |
[`alsa`]: alsa/README.md
[`api`]: api/README.md
[`app`]: app/README.md
[`bubble`]: bubble/README.md
[`debug`]: debug/README.md
[`doorbird`]: doorbird/README.md
[`dvrip`]: dvrip/README.md
[`echo`]: echo/README.md
[`eseecloud`]: eseecloud/README.md
[`exec`]: exec/README.md
[`expr`]: expr/README.md
[`ffmpeg`]: ffmpeg/README.md
[`flussonic`]: flussonic/README.md
[`gopro`]: gopro/README.md
[`hass`]: hass/README.md
[`hls`]: hls/README.md
[`homekit`]: homekit/README.md
[`http`]: http/README.md
[`isapi`]: isapi/README.md
[`ivideon`]: ivideon/README.md
[`mjpeg`]: mjpeg/README.md
[`mp4`]: mp4/README.md
[`mpegts`]: mpegts/README.md
[`multitrans`]: multitrans/README.md
[`nest`]: nest/README.md
[`ngrok`]: ngrok/README.md
[`onvif`]: onvif/README.md
[`pinggy`]: pinggy/README.md
[`ring`]: ring/README.md
[`roborock`]: roborock/README.md
[`rtmp`]: rtmp/README.md
[`rtsp`]: rtsp/README.md
[`srtp`]: srtp/README.md
[`streams`]: streams/README.md
[`tapo`]: tapo/README.md
[`tuya`]: tuya/README.md
[`v4l2`]: v4l2/README.md
[`webrtc`]: webrtc/README.md
[`webtorrent`]: webtorrent/README.md
[`wyoming`]: wyze/README.md
[`wyze`]: wyze/README.md
[`xiaomi`]: xiaomi/README.md
[`yandex`]: yandex/README.md
+3 -3
View File
@@ -1,6 +1,6 @@
# App
The application module is responsible for reading configuration files and running other modules.
The application module is responsible for reading configuration files, running other modules and setting up [logs](#log).
The configuration can be edited through the application's WebUI with code highlighting, syntax and specification checking.
@@ -60,10 +60,10 @@ api:
listen: ":1984" # default public port for WebUI and HTTP API
ffmpeg:
bin: "ffmpeg" # default binary path for FFmpeg
bin: "ffmpeg" # default binary path for FFmpeg
log:
level: "info" # default log level
level: "info" # default log level
output: "stdout"
time: "UNIXMS"
+1
View File
@@ -41,6 +41,7 @@ export default defineConfig({
{text: 'Stream to camera', link: '/#stream-to-camera'},
{text: 'Publish stream', link: '/#publish-stream'},
{text: 'Preload stream', link: '/#preload-stream'},
{text: 'Streaming stats', link: '/#streaming-stats'},
],
collapsed: false,
},
Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB