mirror of
https://github.com/openlibrecommunity/olcrtc.git
synced 2026-05-26 07:08:11 +00:00
doc: add base documentation to olcrtc
This commit is contained in:
229
docs/fast.md
Normal file
229
docs/fast.md
Normal file
@@ -0,0 +1,229 @@
|
||||
# Быстрый старт (через скрипты)
|
||||
|
||||
Этот способ самый простой. Тебе не нужен Go, не нужно ничего компилировать.
|
||||
Скрипт всё сделает сам: скачает исходники, соберёт в контейнере, запустит.
|
||||
|
||||
Проект в бете. По проблемам: t.me/openlibrecommunity
|
||||
|
||||
---
|
||||
|
||||
## Что нужно установить
|
||||
|
||||
### git
|
||||
|
||||
```sh
|
||||
apt install git # Debian / Ubuntu
|
||||
pacman -S git # Arch
|
||||
dnf install git # Fedora / RHEL / CentOS
|
||||
```
|
||||
|
||||
### podman
|
||||
|
||||
Скрипт попробует установить podman сам, но лучше поставить заранее.
|
||||
|
||||
```sh
|
||||
apt install podman # Debian / Ubuntu
|
||||
pacman -S podman # Arch
|
||||
dnf install podman # Fedora / RHEL / CentOS
|
||||
```
|
||||
|
||||
### curl (опционально, только для проверки)
|
||||
|
||||
```sh
|
||||
apt install curl # Debian/Ubuntu
|
||||
pacman -S curl # Arch
|
||||
dnf install curl # Fedora
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 1: Скачать репозиторий
|
||||
|
||||
```sh
|
||||
git clone https://github.com/openlibrecommunity/olcrtc --recurse-submodules
|
||||
cd olcrtc
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 2: Запустить сервер
|
||||
|
||||
На машине, через которую должен идти трафик (VPS, сервер за рубежом, домашний ПК):
|
||||
|
||||
```sh
|
||||
./script/srv.sh
|
||||
```
|
||||
|
||||
Скрипт задаст несколько вопросов. Отвечай Enter если устраивает значение по умолчанию.
|
||||
|
||||
### Carrier (на каком сервисе передавать трафик)
|
||||
|
||||
```
|
||||
Select carrier:
|
||||
1) telemost
|
||||
2) jazz
|
||||
3) wbstream
|
||||
Enter choice [1-3, default: 1]:
|
||||
```
|
||||
|
||||
Выбери сервис. Смотри матрицу в [settings.md](settings.md) какой транспорт с каким carrier работает.
|
||||
|
||||
### Transport (как именно передавать данные)
|
||||
|
||||
```
|
||||
Select transport:
|
||||
1) datachannel
|
||||
2) videochannel
|
||||
3) seichannel
|
||||
4) vp8channel
|
||||
Enter choice [1-4, default: 1]:
|
||||
```
|
||||
|
||||
Рекомендации:
|
||||
- **datachannel** - самый быстрый (~6 МБ/с), работает везде кроме telemost
|
||||
- **vp8channel** - работает везде включая telemost, вводи FPS=60, batch=64
|
||||
- **seichannel** - для wbstream/sber, всё по умолчанию
|
||||
- **videochannel** - медленный (~200 КБ/с), только в крайнем случае
|
||||
|
||||
### Room ID
|
||||
|
||||
```
|
||||
Enter Room ID:
|
||||
```
|
||||
|
||||
Для **telemost** - создай руму через сайт [телемоста](https://telemost.yandex.ru/) и вставь его.
|
||||
|
||||
Для **jazz** и **wbstream** можно нажать Enter - ID сгенерируется автоматически,
|
||||
скрипт сам его вытащит из логов и покажет.
|
||||
|
||||
### DNS
|
||||
|
||||
```
|
||||
DNS server [default: 1.1.1.1:53]:
|
||||
```
|
||||
|
||||
Нажми Enter. Менять не нужно если нет причин, на всякий можно поставить 77.88.8.8.
|
||||
|
||||
### SOCKS5 прокси для исходящего трафика
|
||||
|
||||
```
|
||||
Use SOCKS5 proxy for egress? (y/N):
|
||||
```
|
||||
|
||||
Если нет - просто Enter. Если хочешь чтобы сервер сам ходил через прокси - введи `y`.
|
||||
|
||||
### Параметры транспорта (только для vp8channel)
|
||||
|
||||
```
|
||||
VP8 FPS [default: 25]: 60
|
||||
VP8 batch size (frames per tick) [default: 1]: 64
|
||||
```
|
||||
|
||||
Введи `60` и `64` - это оптимальные значения.
|
||||
|
||||
### Результат
|
||||
|
||||
После запуска скрипт выведет:
|
||||
|
||||
```
|
||||
[+] Server started successfully!
|
||||
|
||||
Container name: olcrtc-server
|
||||
Carrier: telemost
|
||||
Transport: vp8channel
|
||||
Room ID: 75587919855134
|
||||
Encryption key: 4fc9ab159c0268a12766be00c0a85138df5905f72c5eb5780c380507ebe0174d
|
||||
```
|
||||
|
||||
**Сохрани Room ID и Encryption key** - они нужны для клиента.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 3: Запустить клиент
|
||||
|
||||
На своей машине (домашний ПК, ноутбук):
|
||||
|
||||
```sh
|
||||
git clone https://github.com/openlibrecommunity/olcrtc --recurse-submodules
|
||||
cd olcrtc
|
||||
./script/cnc.sh
|
||||
```
|
||||
|
||||
Отвечай на те же вопросы что на сервере - **carrier, transport, room ID должны совпадать**.
|
||||
|
||||
Когда спросит ключ:
|
||||
|
||||
```
|
||||
Enter Encryption Key (hex): 4fc9ab159c0268a12766be00c0a85138df5905f72c5eb5780c380507ebe0174d
|
||||
```
|
||||
|
||||
Вставь ключ с сервера.
|
||||
|
||||
### SOCKS5 адрес и порт
|
||||
|
||||
```
|
||||
SOCKS5 ip [default: 127.0.0.1]:
|
||||
SOCKS5 port [default: 8808]:
|
||||
```
|
||||
|
||||
Нажми Enter оба раза. Прокси поднимется на `127.0.0.1:8808`.
|
||||
|
||||
### Результат
|
||||
|
||||
```
|
||||
[+] Client started successfully!
|
||||
|
||||
Container name: olcrtc-client
|
||||
SOCKS5 proxy: 127.0.0.1:8808
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 4: Проверить
|
||||
|
||||
```sh
|
||||
curl --socks5-hostname 127.0.0.1:8808 https://icanhazip.com
|
||||
```
|
||||
|
||||
Должен вернуть IP твоего сервера, а не домашний IP.
|
||||
|
||||
Или выставить переменную окружения чтобы всё шло через прокси:
|
||||
|
||||
```sh
|
||||
export all_proxy=socks5h://127.0.0.1:8808
|
||||
curl https://icanhazip.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Управление
|
||||
|
||||
### Логи
|
||||
|
||||
```sh
|
||||
podman logs -f olcrtc-server # на сервере
|
||||
podman logs -f olcrtc-client # на клиенте
|
||||
```
|
||||
|
||||
### Остановить
|
||||
|
||||
```sh
|
||||
podman stop olcrtc-server
|
||||
podman stop olcrtc-client
|
||||
```
|
||||
|
||||
### Перезапустить (просто запусти скрипт снова)
|
||||
|
||||
Скрипт сам останавливает старый контейнер перед стартом нового.
|
||||
|
||||
---
|
||||
|
||||
## Частые проблемы
|
||||
|
||||
**`podman: command not found`** - установи podman (см. начало документа).
|
||||
|
||||
**`git: command not found`** - установи git.
|
||||
|
||||
**Контейнер запустился но curl возвращает домашний IP** - подожди 10-15 секунд после старта, соединение устанавливается не мгновенно.
|
||||
|
||||
**Ключ уже есть в `~/.olcrtc_key`** - скрипт не генерирует новый, использует старый. Если хочешь новый - удали файл: `rm ~/.olcrtc_key`.
|
||||
275
docs/manual.md
Normal file
275
docs/manual.md
Normal file
@@ -0,0 +1,275 @@
|
||||
# Мануальная сборка
|
||||
|
||||
Этот способ для тех кто хочет собрать бинарник руками без Docker/Podman.
|
||||
Нужен Go 1.26+, mage, git.
|
||||
|
||||
Проект в бете. По проблемам: t.me/openlibrecommunity
|
||||
|
||||
---
|
||||
|
||||
## Шаг 1: Установить git
|
||||
|
||||
```sh
|
||||
apt install git # Debian / Ubuntu
|
||||
pacman -S git # Arch
|
||||
dnf install git # Fedora / RHEL / CentOS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 2: Установить Go 1.26+
|
||||
|
||||
### Arch / Fedora (всё просто)
|
||||
|
||||
```sh
|
||||
pacman -S go # Arch
|
||||
dnf install go # Fedora
|
||||
```
|
||||
|
||||
### Debian / Ubuntu (системный пакет устаревший)
|
||||
|
||||
На Debian/Ubuntu в репозитории обычно Go 1.19. Нужно поставить нужную версию через SDK:
|
||||
|
||||
```sh
|
||||
apt install golang # ставим старый go - он нужен только чтобы скачать новый
|
||||
go install golang.org/dl/go1.26.0@latest # скачиваем установщик go1.26
|
||||
~/go/bin/go1.26.0 download # скачиваем сам go1.26
|
||||
mv ~/go/bin/go1.26.0 /usr/local/bin/go # заменяем системный go
|
||||
```
|
||||
|
||||
### Проверка
|
||||
|
||||
```sh
|
||||
go version
|
||||
# go version go1.26.x linux/amd64
|
||||
```
|
||||
|
||||
Если версия меньше 1.26 - смотри инструкцию для Debian выше.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 3: Установить mage
|
||||
|
||||
mage - система сборки для Go-проектов, аналог make.
|
||||
|
||||
```sh
|
||||
go install github.com/magefile/mage@latest
|
||||
```
|
||||
|
||||
Если после установки `mage: command not found` - добавь `~/go/bin` в PATH:
|
||||
|
||||
```sh
|
||||
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
Проверка:
|
||||
|
||||
```sh
|
||||
mage --version
|
||||
# mage vx.x.x
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 4: Скачать репозиторий
|
||||
|
||||
```sh
|
||||
git clone https://github.com/openlibrecommunity/olcrtc --recurse-submodules
|
||||
cd olcrtc
|
||||
```
|
||||
|
||||
`--recurse-submodules` обязателен - без него videochannel не соберётся.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 5: Собрать
|
||||
|
||||
```sh
|
||||
mage build # текущая платформа → build/olcrtc-linux-amd64
|
||||
mage cross # все платформы сразу (если собираешь для другой машины)
|
||||
```
|
||||
|
||||
Результат в `build/`:
|
||||
|
||||
```
|
||||
build/olcrtc-linux-amd64
|
||||
build/olcrtc-linux-arm64
|
||||
build/olcrtc-windows-amd64.exe
|
||||
build/olcrtc-darwin-amd64
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 6: Сгенерировать ключ шифрования
|
||||
|
||||
Делается один раз на сервере. Ключ должен совпадать на сервере и клиенте.
|
||||
|
||||
```sh
|
||||
openssl rand -hex 32
|
||||
# d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799
|
||||
```
|
||||
|
||||
Сохрани вывод - понадобится при запуске клиента.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 7: Запустить сервер
|
||||
|
||||
На серверной машине (VPS и т.д.). Подбери нужную комбинацию carrier + transport из матрицы в [settings.md](settings.md).
|
||||
|
||||
### telemost + vp8channel (работает везде)
|
||||
|
||||
```sh
|
||||
./build/olcrtc-linux-amd64 \
|
||||
-mode srv \
|
||||
-carrier telemost \
|
||||
-transport vp8channel \
|
||||
-id 75587912855134 \
|
||||
-key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \
|
||||
-link direct \
|
||||
-dns 1.1.1.1:53 \
|
||||
-data data \
|
||||
-vp8-fps 60 \
|
||||
-vp8-batch 64
|
||||
```
|
||||
|
||||
Для telemost `-id` - это ID комнаты телемоста. Создай комнату через [telemost.yandex.ru](https://telemost.yandex.ru/) и вставь ID из ссылки.
|
||||
|
||||
### jazz + datachannel (максимальная скорость, не работает в telemost)
|
||||
|
||||
```sh
|
||||
./build/olcrtc-linux-amd64 \
|
||||
-mode srv \
|
||||
-carrier jazz \
|
||||
-transport datachannel \
|
||||
-id any \
|
||||
-key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \
|
||||
-link direct \
|
||||
-dns 1.1.1.1:53 \
|
||||
-data data
|
||||
```
|
||||
|
||||
При `-id any` сервер создаст комнату автоматически и напишет ID в логах:
|
||||
|
||||
```
|
||||
Jazz room created: abc123xyz
|
||||
```
|
||||
|
||||
Этот ID нужно передать клиенту.
|
||||
|
||||
### wbstream + seichannel
|
||||
|
||||
```sh
|
||||
./build/olcrtc-linux-amd64 \
|
||||
-mode srv \
|
||||
-carrier wbstream \
|
||||
-transport seichannel \
|
||||
-id any \
|
||||
-key <hex-key> \
|
||||
-link direct \
|
||||
-dns 1.1.1.1:53 \
|
||||
-data data
|
||||
```
|
||||
|
||||
### Добавить отладку
|
||||
|
||||
Добавь `--debug` к любой команде - увидишь каждое соединение:
|
||||
|
||||
```
|
||||
2026/05/03 08:05:23 Connecting link via direct/vp8channel/telemost...
|
||||
2026/05/03 08:05:25 telemost publisher state: connected
|
||||
2026/05/03 08:05:27 Link connected
|
||||
2026/05/03 08:05:43 sid=3 connect icanhazip.com:443
|
||||
2026/05/03 08:05:43 sid=3 connected icanhazip.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 8: Запустить клиент
|
||||
|
||||
На своей машине. Carrier, transport, id и key должны **точно совпадать** с сервером.
|
||||
|
||||
### telemost + vp8channel
|
||||
|
||||
```sh
|
||||
./build/olcrtc-linux-amd64 \
|
||||
-mode cnc \
|
||||
-carrier telemost \
|
||||
-transport vp8channel \
|
||||
-id 75587929855134 \
|
||||
-key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \
|
||||
-link direct \
|
||||
-dns 1.1.1.1:53 \
|
||||
-data data \
|
||||
-socks-host 127.0.0.1 \
|
||||
-socks-port 1080 \
|
||||
-vp8-fps 60 \
|
||||
-vp8-batch 64
|
||||
```
|
||||
|
||||
### jazz + datachannel
|
||||
|
||||
```sh
|
||||
./build/olcrtc-linux-amd64 \
|
||||
-mode cnc \
|
||||
-carrier jazz \
|
||||
-transport datachannel \
|
||||
-id abc123xyz \
|
||||
-key <hex-key> \
|
||||
-link direct \
|
||||
-dns 1.1.1.1:53 \
|
||||
-data data \
|
||||
-socks-host 127.0.0.1 \
|
||||
-socks-port 1080
|
||||
```
|
||||
|
||||
После старта в логах появится:
|
||||
|
||||
```
|
||||
SOCKS5 server listening on 127.0.0.1:1080
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 9: Проверить
|
||||
|
||||
```sh
|
||||
curl --socks5-hostname 127.0.0.1:1080 https://icanhazip.com
|
||||
```
|
||||
|
||||
Должен вернуть IP сервера, а не домашний.
|
||||
|
||||
Или выставить переменную чтобы весь трафик шёл через прокси:
|
||||
|
||||
```sh
|
||||
export all_proxy=socks5h://127.0.0.1:1080
|
||||
curl https://icanhazip.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Все mage таргеты
|
||||
|
||||
```sh
|
||||
mage build # собрать для текущей платформы
|
||||
mage cross # собрать для всех платформ
|
||||
mage deps # скачать и обновить зависимости
|
||||
mage clean # удалить build/
|
||||
mage test # запустить тесты
|
||||
mage lint # запустить линтер
|
||||
mage podman # собрать образ через podman
|
||||
mage docker # собрать образ через docker
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Частые проблемы
|
||||
|
||||
**`mage: command not found`** - добавь `~/go/bin` в PATH (см. шаг 3).
|
||||
|
||||
**`go.mod:3: invalid go version`** - версия go слишком старая, нужна 1.26+ (см. шаг 2).
|
||||
|
||||
**`submodule path ... No such file or directory`** - забыл `--recurse-submodules`. Исправить: `git submodule update --init --recursive`.
|
||||
|
||||
**curl возвращает домашний IP** - подожди 10-15 секунд, соединение устанавливается не мгновенно. Смотри логи с `--debug`.
|
||||
142
docs/settings.md
Normal file
142
docs/settings.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Настройки
|
||||
|
||||
## Матрица совместимости
|
||||
|
||||
Сначала выбери что с чем работает:
|
||||
|
||||
| Transport | telemost | jazz | wbstream |
|
||||
|-----------|:--------:|:----:|:--------:|
|
||||
| datachannel | ✗ | ✓ | ✓ |
|
||||
| vp8channel | ✓ | ✓ | ✓ |
|
||||
| seichannel | ✗ | ✓ | ✓ |
|
||||
| videochannel | ✓ | ✓ | ✓ |
|
||||
|
||||
Скорость по убыванию: datachannel (~6 МБ/с) > vp8channel > seichannel > videochannel (~200 КБ/с)
|
||||
|
||||
---
|
||||
|
||||
## Обязательные флаги
|
||||
|
||||
| Флаг | Что вводить |
|
||||
|------|-------------|
|
||||
| `-mode` | `srv` на сервере, `cnc` на клиенте |
|
||||
| `-carrier` | `telemost`, `jazz` или `wbstream` |
|
||||
| `-transport` | `datachannel`, `vp8channel`, `seichannel` или `videochannel` |
|
||||
| `-id` | Room ID. Для jazz/wbstream можно `any` - сгенерируется автоматически |
|
||||
| `-key` | Ключ шифрования hex 64 символа. Генерация: `openssl rand -hex 32` |
|
||||
| `-link` | Всегда `direct` |
|
||||
| `-data` | Всегда `data` |
|
||||
|
||||
---
|
||||
|
||||
## Необязательные флаги
|
||||
|
||||
| Флаг | Описание | По умолчанию |
|
||||
|------|----------|:------------:|
|
||||
| `-dns` | DNS-сервер | `1.1.1.1:53` |
|
||||
| `--debug` | Подробные логи соединений | выкл |
|
||||
|
||||
---
|
||||
|
||||
## Флаги только для сервера (`-mode srv`)
|
||||
|
||||
| Флаг | Описание |
|
||||
|------|----------|
|
||||
| `-socks-proxy` | Адрес SOCKS5-прокси для исходящего трафика сервера |
|
||||
| `-socks-proxy-port` | Порт этого прокси |
|
||||
|
||||
---
|
||||
|
||||
## Флаги только для клиента (`-mode cnc`)
|
||||
|
||||
| Флаг | Описание | По умолчанию |
|
||||
|------|----------|:------------:|
|
||||
| `-socks-host` | На каком адресе поднять SOCKS5 | `127.0.0.1` |
|
||||
| `-socks-port` | На каком порту поднять SOCKS5 | `1080` |
|
||||
|
||||
---
|
||||
|
||||
## vp8channel
|
||||
|
||||
**Рекомендуется: `-vp8-fps 60 -vp8-batch 64`** (числа лучше чётные, больший batch = выше скорость)
|
||||
|
||||
| Флаг | Описание | По умолчанию |
|
||||
|------|----------|:------------:|
|
||||
| `-vp8-fps` | FPS VP8 потока | `25` |
|
||||
| `-vp8-batch` | Кадров за тик | `1` |
|
||||
|
||||
---
|
||||
|
||||
## videochannel
|
||||
|
||||
**Рекомендуется: `-video-codec qrcode -video-w 1080 -video-h 1080 -video-fps 60 -video-bitrate 5000k -video-hw none`**
|
||||
|
||||
| Флаг | Описание | По умолчанию |
|
||||
|------|----------|:------------:|
|
||||
| `-video-codec` | `qrcode` или `tile` | `qrcode` |
|
||||
| `-video-w` | Ширина в пикселях | `1920` |
|
||||
| `-video-h` | Высота в пикселях | `1080` |
|
||||
| `-video-fps` | FPS | `30` |
|
||||
| `-video-bitrate` | Битрейт, например `2M` или `5000k` | `2M` |
|
||||
| `-video-hw` | Аппаратное ускорение: `none` или `nvenc` | `none` |
|
||||
| `-video-qr-recovery` | Коррекция ошибок QR: `low` / `medium` / `high` / `highest` | `low` |
|
||||
| `-video-qr-size` | Размер фрагмента QR в байтах, `0` = авто | `0` |
|
||||
| `-video-tile-module` | Размер тайла в пикселях 1..270 (только `tile`) | `4` |
|
||||
| `-video-tile-rs` | Reed-Solomon паритет % 0..200 (только `tile`) | `20` |
|
||||
|
||||
Для codec `tile` нужно точно `1080x1080`.
|
||||
|
||||
---
|
||||
|
||||
## seichannel / datachannel
|
||||
|
||||
Дополнительных флагов нет - всё по умолчанию.
|
||||
|
||||
---
|
||||
|
||||
## Готовые команды
|
||||
|
||||
### telemost + vp8channel
|
||||
|
||||
```sh
|
||||
# сервер
|
||||
./olcrtc -mode srv -carrier telemost -transport vp8channel \
|
||||
-id <room-id> -key <hex-key> -link direct -data data \
|
||||
-vp8-fps 60 -vp8-batch 64
|
||||
|
||||
# клиент
|
||||
./olcrtc -mode cnc -carrier telemost -transport vp8channel \
|
||||
-id <room-id> -key <hex-key> -link direct -data data \
|
||||
-socks-host 127.0.0.1 -socks-port 1080 \
|
||||
-vp8-fps 60 -vp8-batch 64
|
||||
```
|
||||
|
||||
### jazz + datachannel (максимальная скорость)
|
||||
|
||||
```sh
|
||||
# сервер - room ID создастся сам, смотри логи
|
||||
./olcrtc -mode srv -carrier jazz -transport datachannel \
|
||||
-id any -key <hex-key> -link direct -data data
|
||||
|
||||
# клиент
|
||||
./olcrtc -mode cnc -carrier jazz -transport datachannel \
|
||||
-id <room-id> -key <hex-key> -link direct -data data \
|
||||
-socks-host 127.0.0.1 -socks-port 1080
|
||||
```
|
||||
|
||||
### telemost + videochannel (крайний случай)
|
||||
|
||||
```sh
|
||||
# сервер
|
||||
./olcrtc -mode srv -carrier telemost -transport videochannel \
|
||||
-id <room-id> -key <hex-key> -link direct -data data \
|
||||
-video-codec qrcode -video-w 1080 -video-h 1080 \
|
||||
-video-fps 60 -video-bitrate 5000k -video-hw none
|
||||
|
||||
# клиент
|
||||
./olcrtc -mode cnc -carrier telemost -transport videochannel \
|
||||
-id <room-id> -key <hex-key> -link direct -data data \
|
||||
-socks-host 127.0.0.1 -socks-port 1080 \
|
||||
-video-codec qrcode -video-w 1080 -video-h 1080 \
|
||||
-video-fps 60 -video-bitrate 5000k -video-hw none
|
||||
```
|
||||
Reference in New Issue
Block a user