Skip to content

Latest commit

 

History

History
165 lines (125 loc) · 10.1 KB

File metadata and controls

165 lines (125 loc) · 10.1 KB

MediaMTX Connect

Вебінтерфейс для MediaMTX.
Дивіться трансляції наживо, гортайте записи, редагуйте будь-який ключ конфігурації — просто в браузері.

CI Release Docker MIT

MediaMTX Connect — сітка трансляцій наживо, браузер записів і редактор конфігурації
🌍 Читати 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-запити.
  • Потокове завантаження з прогресом і скасуванням.
  • Натисніть /, щоб відфільтрувати.

Конфігурація без YAML

  • Уся конфігурація сервера — 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. Ми дотримуємося Кодексу поведінки.

Ліцензія

MIT