Skip to content

Latest commit

 

History

History
165 lines (125 loc) · 8.4 KB

File metadata and controls

165 lines (125 loc) · 8.4 KB

MediaMTX Connect

Interfața web pentru MediaMTX.
Urmărește transmisiuni live, răsfoiește înregistrări, editează orice cheie de configurare — din browser.

CI Release Docker MIT

MediaMTX Connect — grila transmisiunilor live, browserul de înregistrări și editorul de configurare
🌍 Citește în 30 de limbi

🇺🇸 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 • 🇹🇭 ไทย • 🇮🇳 हिन्दी • 🇧🇩 বাংলা

Ce este

MediaMTX este un server de streaming excelent, fără interfață. Connect este front-end-ul care îi lipsește: un container care vorbește cu API-ul MediaMTX și îl transformă într-un perete de camere, o arhivă de înregistrări și un editor de configurare.

Este un însoțitor, nu un înlocuitor. Fiecare ecran se sprijină pe ceva ce MediaMTX expune deja: un path, un endpoint, un hook runOn*, un protocol pe care îl servește nativ. Nu stochează video, nu face proxy pentru media, nu ține bază de date.

Pornire rapidă

Imagini multi-arhitectură (linux/amd64, linux/arm64) — Docker o descarcă pe cea potrivită.

Ai deja MediaMTX pornit? Pune Connect lângă el:

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

Pornești de la zero? Fișierul compose inclus le ridică pe amândouă:

git clone https://github.com/bcanfield/mediamtx-connect.git
cd mediamtx-connect
docker compose up -d

Apoi deschide http://localhost:3000.

Important

Connect are nevoie de api: yes în mediamtx.yml. Configurația inclusă funcționează ca atare.

Ce primești

Vizualizare live

Fiecare path pe care îl cunoaște MediaMTX, într-o grilă de 2 până la 4 coloane.

  • WebRTC sau HLS, de la card la card. AUTO coboară în tăcere la HLS, LOW-LAT insistă pe WebRTC, COMPAT impune HLS — iar fiecare card raportează transportul obținut efectiv.
  • Instantanee și când stă. O sarcină de fundal ține pe fiecare card un cadru recent, cu vechimea lui pe etichetă.
  • Telemetrie live. Codecuri, spectatori și timp de funcționare, direct din lista de path.
  • Stare de înregistrare cinstită. Cardurile arată dacă un flux înregistrează efectiv; o stare pe care Connect nu a putut-o citi apare drept necunoscută, nu drept oprită.
  • URL-uri de publicare în clipboard. RTSP, RTMP și SRT, construite din adresele de ascultare ale serverului însuși.

Înregistrări

  • Fișierele MP4 ale fiecărui flux, grupate pe zile, cu miniaturi automate.
  • Un player care se desfășoară pe loc, derulabil prin cereri HTTP Range.
  • Descărcări în flux, cu progres în timp real și anulare.
  • Apasă / pentru a filtra.

Configurare, fără YAML

  • Toată configurația serverului — 65 de controale tipizate și validate în Logging, API, Hooks, RTSP, RTMP, HLS, WebRTC și SRT.
  • Path defaults și suprascrieri per path, pe domeniile de unde MediaMTX le servește. Salvarea unui flux acoperit de wildcard scrie o intrare rară, așa că cheile neatinse continuă să moștenească.
  • Toate cele 15 hook-uri runOn*, cu avertisment acolo unde salvarea repornește path-ul.
  • Scrieri rare — doar cheile pe care le-ai schimbat.

Exploatare

Un singur proces pentru API, SPA și media · multi-arhitectură · GET /health · loguri structurate · PWA · deschis și închis · 30 de limbi · fără bază de date.

Variabile de mediu

Însămânțează doar prima pornire. Restul rămâne editabil din Config.

Variabilă Implicit La ce servește
BACKEND_SERVER_MEDIAMTX_URL http://mediamtx Unde ajunge Connect la API-ul MediaMTX din interiorul containerului său
MEDIAMTX_API_PORT 9997 Portul API-ului MediaMTX
MEDIAMTX_RECORDINGS_DIR ./recordings Calea de pe gazdă montată pentru înregistrări (doar compose)
MEDIAMTX_SCREENSHOTS_DIR /screenshots Unde ajung miniaturile

http://mediamtx se rezolvă doar în rețeaua compose-ului inclus — pentru un docker run de sine stătător, pune adresa gazdei tale.

Cum funcționează

Browser ──HLS / WebRTC (WHEP)──────────────────────────┐
   │                                                   │
   │ oRPC (typed)                                      ▼
   ▼                                              ┌──────────┐
┌─────────────────────┐    MediaMTX HTTP API      │ MediaMTX │
│ mediamtx-connect    │ ────────────────────────▶ │  server  │
│ Hono API + React SPA│                           └──────────┘
└─────────────────────┘                                │
   │ reads                                             │ writes
   ▼                                                   ▼
recordings/ + screenshots/  ◀────────────────────  MP4 segments

Redarea merge de la browser la MediaMTX. Connect mută doar JSON, plus înregistrările și miniaturile pe care le citește de pe disc.

Documentație

Funcționalități Fiecare capabilitate, rută și procedură livrată
Arhitectură Cum se îmbină piesele
Contribuții Mediu de dezvoltare, scripturi, procesul de PR
Exemple Cameră Raspberry Pi, fluxuri false pentru teste

Contribuții

Issue-urile și PR-urile sunt binevenite. pnpm install && pnpm dev îți ridică tot stack-ul cu date de test — restul în CONTRIBUTING.md, iar titlurile de PR sunt conventional commits. Respectăm un Cod de conduită.

Licență

MIT