From 4194ac91442b796fa3e264eb5cf334e03cd5be6b Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Fri, 8 May 2026 16:50:56 +0300 Subject: [PATCH] doc: updated uri.md and sub.md to add transport payload support using syntax after the transport name --- docs/sub.md | 3 +- docs/uri.md | 118 +++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 104 insertions(+), 17 deletions(-) diff --git a/docs/sub.md b/docs/sub.md index 2e48df9..4ac5669 100644 --- a/docs/sub.md +++ b/docs/sub.md @@ -93,6 +93,7 @@ olcrtc://... ```text olcrtc://?@#%$ +olcrtc://?@#%$ ``` Одна строка = один сервер/одна запись подписки. @@ -140,7 +141,7 @@ olcrtc://?@#%$ #used: 10mb/10gb #available: 9.99gb -olcrtc://wbstream?seichannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$RU / olcng free sub / IPv6 +olcrtc://wbstream?seichannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$RU / olcng free sub / IPv6 ##name: RU-1 ##icon: 🇷🇺 ##color: #4A90E2 diff --git a/docs/uri.md b/docs/uri.md index 410ac6c..cf3be90 100644 --- a/docs/uri.md +++ b/docs/uri.md @@ -20,10 +20,13 @@ ```text olcrtc://?@#%$ +olcrtc://?@#%$ ``` Все поля после `olcrtc://` считаются частью клиентского соглашения. +Блок `` — payload параметров транспорта в угловых скобках, идёт сразу после имени транспорта. Если параметры транспорту не нужны или используются defaults — блок опускается целиком. + --- ## Поля @@ -32,6 +35,7 @@ olcrtc://?@#%$ |------|----------| | `` | Имя carrier, например `telemost`, `jazz`, `wbstream` | | `` | Имя транспорта, например `datachannel`, `vp8channel`, `seichannel`, `videochannel` | +| payload | Параметры транспорта в ``. Ключи совпадают с CLI-флагами без дефиса. Блок опускается если используются defaults | | `` | Идентификатор комнаты или carrier-specific room URL/ID | | `` | Ключ шифрования в hex, обычно 64 символа (`32` байта) | | `` | Идентификатор клиента. Должен совпадать с ожидаемым значением на сервере | @@ -39,14 +43,52 @@ olcrtc://?@#%$ --- -## Соответствие параметрам olcrtc +## Параметры payload по транспортам -URI-поля сопоставляются с обычными параметрами так: +### datachannel + +Payload не используется. + +### vp8channel + +| Ключ | CLI-флаг | Описание | +|------|----------|----------| +| `vp8-fps` | `-vp8-fps` | FPS VP8 потока | +| `vp8-batch` | `-vp8-batch` | Кадров за тик | + +### seichannel + +| Ключ | CLI-флаг | Описание | +|------|----------|----------| +| `fps` | `-fps` | FPS H264 потока | +| `batch` | `-batch` | Кадров за тик | +| `frag` | `-frag` | Размер фрагмента в байтах | +| `ack-ms` | `-ack-ms` | Таймаут ACK в миллисекундах | + +### videochannel + +| Ключ | CLI-флаг | Описание | +|------|----------|----------| +| `video-w` | `-video-w` | Ширина в пикселях | +| `video-h` | `-video-h` | Высота в пикселях | +| `video-fps` | `-video-fps` | FPS | +| `video-bitrate` | `-video-bitrate` | Битрейт, например `5000k` или `2M` | +| `video-hw` | `-video-hw` | Аппаратное ускорение: `none` или `nvenc` | +| `video-codec` | `-video-codec` | `qrcode` или `tile` | +| `video-qr-size` | `-video-qr-size` | Размер фрагмента QR в байтах | +| `video-qr-recovery` | `-video-qr-recovery` | Коррекция ошибок: `low` / `medium` / `high` / `highest` | +| `video-tile-module` | `-video-tile-module` | Размер тайла в пикселях 1..270 (только `tile`) | +| `video-tile-rs` | `-video-tile-rs` | Reed-Solomon паритет % 0..200 (только `tile`) | + +--- + +## Соответствие параметрам olcrtc | URI поле | Параметр / значение | |----------|---------------------| | `` | `-carrier` | | `` | `-transport` | +| payload | соответствующие флаги транспорта | | `` | `-id` | | `` | `-key` | | `` | `-client-id` | @@ -58,12 +100,11 @@ URI-поля сопоставляются с обычными параметра ## Разделители -Строка использует фиксированные разделители: - | Разделитель | После него идёт | |-------------|-----------------| | `://` | начало полезной нагрузки после схемы `olcrtc` | | `?` | `` | +| `<...>` | payload параметров транспорта | | `@` | `` | | `#` | `` | | `%` | `` | @@ -81,16 +122,7 @@ URI-поля сопоставляются с обычными параметра olcrtc://wbstream?datachannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$RU / olc free sub / IPv6 ``` -Разбор: - -| Поле | Значение | -|------|----------| -| `Carrier` | `wbstream` | -| `Transport` | `datachannel` | -| `RoomID` | `room-01` | -| `EncryptionKey` | `d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799` | -| `ClientID` | `android-01` | -| `MIMO` | `RU / olc free sub / IPv6` | +Payload не нужен — datachannel параметров не имеет. ### Эквивалент CLI @@ -105,10 +137,64 @@ olcrtc://wbstream?datachannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e29 -data data ``` -### wbstream + seichannel (альтернатива) +### wbstream + vp8channel ```text -olcrtc://wbstream?seichannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$RU / olc free sub / IPv6 +olcrtc://wbstream?vp8channel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$RU / olc free sub / IPv6 +``` + +### Эквивалент CLI + +```sh +./olcrtc -mode cnc \ + -carrier wbstream \ + -transport vp8channel \ + -id room-01 \ + -client-id android-01 \ + -key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \ + -link direct \ + -data data \ + -vp8-fps 60 -vp8-batch 64 +``` + +### jazz + seichannel + +```text +olcrtc://jazz?seichannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$DE / olc free sub +``` + +### Эквивалент CLI + +```sh +./olcrtc -mode cnc \ + -carrier jazz \ + -transport seichannel \ + -id room-01 \ + -client-id android-01 \ + -key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \ + -link direct \ + -data data \ + -fps 60 -batch 64 -frag 900 -ack-ms 2000 +``` + +### telemost + videochannel + +```text +olcrtc://telemost?videochannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$MIMO +``` + +### Эквивалент CLI + +```sh +./olcrtc -mode cnc \ + -carrier telemost \ + -transport videochannel \ + -id room-01 \ + -client-id android-01 \ + -key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \ + -link direct \ + -data data \ + -video-w 1080 -video-h 1080 -video-fps 60 -video-bitrate 5000k -video-hw none -video-codec qrcode ``` ---