Вебінтерфейс для MediaMTX.
Дивіться трансляції наживо, гортайте записи, редагуйте будь-який ключ конфігурації — просто в браузері.
🌍 Читати 30 мовами
🇺🇸 English • 🇪🇸 Español • 🇨🇳 中文 • 🇮🇹 Italiano • 🇩🇪 Deutsch • 🇷🇺 Русский • 🇫🇷 Français • 🇵🇹 Português • 🇯🇵 日本語 • 🇵🇱 Polski • 🇰🇷 한국어 • 🇹🇷 Türkçe • 🇳🇱 Nederlands • 🇨🇿 Čeština • 🇹🇼 繁體中文 • 🇧🇷 Português (BR) • 🇮🇩 Bahasa Indonesia • 🇷🇴 Română • 🇸🇪 Svenska • 🇩🇰 Dansk • 🇳🇴 Norsk • 🇫🇮 Suomi • 🇬🇷 Ελληνικά • 🇭🇺 Magyar • 🇺🇦 Українська • 🇻🇳 Tiếng Việt • 🇵🇭 Tagalog • 🇹🇭 ไทย • 🇮🇳 हिन्दी • 🇧🇩 বাংলা
MediaMTX — чудовий стримінговий сервер без інтерфейсу. Connect — той самий відсутній фронтенд: один контейнер, який спілкується з API MediaMTX і перетворює його на стіну камер, архів записів і редактор конфігурації.
Це супутник, а не заміна. Кожен екран спирається на те, що MediaMTX уже надає: path, ендпоїнт API, хук runOn*, протокол, який він роздає нативно. Не зберігає відео, не проксує медіа, не тримає бази даних.
Мультиархітектурні образи (linux/amd64, linux/arm64) — Docker завантажить потрібний.
MediaMTX уже працює? Поставте Connect поруч:
docker run -d \
-p 3000:3000 \
-e BACKEND_SERVER_MEDIAMTX_URL=http://<your-mediamtx-host> \
-v /path/to/recordings:/recordings \
-v mediamtx-connect-data:/data \
bcanfield/mediamtx-connect:latestПочинаєте з нуля? Вбудований compose підніме обидва:
git clone https://github.com/bcanfield/mediamtx-connect.git
cd mediamtx-connect
docker compose up -dДалі відкрийте http://localhost:3000.
Important
Connect потребує api: yes у вашому mediamtx.yml. Долучена конфігурація працює як є.
Усі path, які знає MediaMTX, сіткою в 2–4 колонки.
- WebRTC або HLS — для кожної картки.
AUTOтихо відкочується на HLS,LOW-LATнаполягає на WebRTC,COMPATвмикає HLS — і кожна картка показує транспорт, який реально отримала. - Знімки у спокої. Фонове завдання тримає на кожній картці свіжий кадр, а його вік — на бейджі.
- Жива телеметрія. Кодеки, кількість глядачів і час в ефірі — просто зі списку path.
- Чесний стан запису. Картки показують, чи потік записується фактично; стан, який Connect не зміг прочитати, зветься невідомим, а не вимкненим.
- Адреси публікації в буфер обміну. RTSP, RTMP і SRT, побудовані з власних адрес прослуховування сервера.
- MP4 кожного потоку, згруповані за днями, з автоматичними мініатюрами.
- Програвач, що розгортається просто в рядку, з перемоткою через HTTP Range-запити.
- Потокове завантаження з прогресом і скасуванням.
- Натисніть
/, щоб відфільтрувати.
- Уся конфігурація сервера — 65 типізованих і перевірених елементів керування в Logging, API, Hooks, RTSP, RTMP, HLS, WebRTC і SRT.
- Path defaults і перевизначення для окремих path — у тих областях, звідки MediaMTX їх віддає. Збереження потоку, покритого шаблоном, пише розріджений запис, тож незмінені ключі й далі успадковуються.
- Усі 15 хуків
runOn*, із попередженням там, де збереження перезапускає path. - Розріджений запис — лише змінені ключі.
Один процес на API, SPA і медіа · мультиархітектурність · GET /health · структуровані логи · PWA · світла й темна · 30 мов · без бази даних.
Вони задають лише перший запуск. Далі все правиться в Config.
| Змінна | Типове значення | Призначення |
|---|---|---|
BACKEND_SERVER_MEDIAMTX_URL |
http://mediamtx |
Де Connect дістає API MediaMTX зсередини свого контейнера |
MEDIAMTX_API_PORT |
9997 |
Порт API MediaMTX |
MEDIAMTX_RECORDINGS_DIR |
./recordings |
Шлях на хості, змонтований під записи (лише compose) |
MEDIAMTX_SCREENSHOTS_DIR |
/screenshots |
Де зберігаються мініатюри |
http://mediamtx розв'язується лише в мережі вбудованого compose — для окремого docker run вкажіть свій хост.
Browser ──HLS / WebRTC (WHEP)──────────────────────────┐
│ │
│ oRPC (typed) ▼
▼ ┌──────────┐
┌─────────────────────┐ MediaMTX HTTP API │ MediaMTX │
│ mediamtx-connect │ ────────────────────────▶ │ server │
│ Hono API + React SPA│ └──────────┘
└─────────────────────┘ │
│ reads │ writes
▼ ▼
recordings/ + screenshots/ ◀──────────────────── MP4 segments
Відтворення йде з браузера до MediaMTX. Connect переносить лише JSON плюс записи й мініатюри, які читає з диска.
| Можливості | Усі випущені можливості, маршрути та процедури |
| Архітектура | Як складаються частини |
| Участь | Налаштування середовища, скрипти, процес PR |
| Приклади | Камера Raspberry Pi, фейкові потоки для тестів |
Issue та PR вітаються. pnpm install && pnpm dev підніме повний стек із тестовими даними — решта в CONTRIBUTING.md; заголовки PR — conventional commits. Ми дотримуємося Кодексу поведінки.