Skip to content

Latest commit

 

History

History
165 lines (125 loc) · 10.8 KB

File metadata and controls

165 lines (125 loc) · 10.8 KB

MediaMTX Connect

Το web περιβάλλον για το MediaMTX.
Δείτε ζωντανές ροές, περιηγηθείτε στις εγγραφές, επεξεργαστείτε κάθε κλειδί ρυθμίσεων — από τον browser σας.

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 είναι εξαιρετικός streaming server χωρίς περιβάλλον χρήσης. Το Connect είναι το front-end που του λείπει: ένα container που μιλά με το API του MediaMTX και το μετατρέπει σε τοίχο καμερών, αρχείο εγγραφών και επεξεργαστή ρυθμίσεων.

Είναι συνοδοιπόρος, όχι αντικαταστάτης. Κάθε οθόνη πατά σε κάτι που το MediaMTX ήδη εκθέτει: ένα path, ένα endpoint, ένα hook runOn*, ένα πρωτόκολλο που σερβίρει το ίδιο. Δεν αποθηκεύει βίντεο, δεν κάνει proxy σε μέσα, δεν κρατά βάση δεδομένων.

Γρήγορη εκκίνηση

Images πολλαπλών αρχιτεκτονικών (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 — και κάθε κάρτα αναφέρει τη μεταφορά που όντως πέτυχε.
  • Στιγμιότυπα σε αδράνεια. Μια εργασία παρασκηνίου κρατά ένα πρόσφατο καρέ σε κάθε κάρτα, με την ηλικία του πάνω στην ετικέτα.
  • Ζωντανή τηλεμετρία. Codecs, αριθμός θεατών και χρόνος λειτουργίας, κατευθείαν από τη λίστα των path.
  • Τίμια κατάσταση εγγραφής. Οι κάρτες δείχνουν αν μια ροή γράφει πραγματικά· μια κατάσταση που δεν μπόρεσε να διαβάσει το Connect λέγεται άγνωστη, ποτέ ανενεργή.
  • URL δημοσίευσης στο πρόχειρο. RTSP, RTMP και SRT, χτισμένα από τις ίδιες τις διευθύνσεις ακρόασης του server.

Εγγραφές

  • Τα MP4 κάθε ροής, ομαδοποιημένα ανά ημέρα, με αυτόματες μικρογραφίες.
  • Ένα player που ξεδιπλώνεται επιτόπου, με αναζήτηση μέσω αιτημάτων HTTP Range.
  • Λήψεις που ρέουν, με ζωντανή πρόοδο και ακύρωση.
  • Πατήστε / για φιλτράρισμα.

Ρυθμίσεις, χωρίς YAML

  • Ολόκληρη η ρύθμιση του server — 65 χειριστήρια με τύπο και επικύρωση σε Logging, API, Hooks, RTSP, RTMP, HLS, WebRTC και SRT.
  • Path defaults και παρακάμψεις ανά path, στα εύρη από τα οποία τα σερβίρει το MediaMTX. Η αποθήκευση μιας ροής που καλύπτεται από wildcard γράφει μια αραιή εγγραφή, οπότε τα κλειδιά που δεν αγγίξατε συνεχίζουν να κληρονομούν.
  • Και τα 15 hooks runOn*, με προειδοποίηση εκεί όπου η αποθήκευση επανεκκινεί το path.
  • Αραιές εγγραφές — μόνο τα κλειδιά που αλλάξατε.

Λειτουργία

Μία διεργασία για API, SPA και μέσα · πολλαπλές αρχιτεκτονικές · GET /health · δομημένα logs · PWA · φωτεινό και σκοτεινό · 30 γλώσσες · καμία βάση δεδομένων.

Μεταβλητές περιβάλλοντος

Σπέρνουν μόνο την πρώτη εκκίνηση. Τα υπόλοιπα παραμένουν επεξεργάσιμα από το Config.

Μεταβλητή Προεπιλογή Σκοπός
BACKEND_SERVER_MEDIAMTX_URL http://mediamtx Πού φτάνει το Connect το API του MediaMTX από μέσα από το container του
MEDIAMTX_API_PORT 9997 Θύρα του API του MediaMTX
MEDIAMTX_RECORDINGS_DIR ./recordings Διαδρομή host προσαρτημένη για εγγραφές (μόνο compose)
MEDIAMTX_SCREENSHOTS_DIR /screenshots Πού αποθηκεύονται οι μικρογραφίες

Το http://mediamtx επιλύεται μόνο στο δίκτυο του compose που περιλαμβάνεται — για αυτόνομο docker run, βάλτε τον δικό σας host.

Πώς λειτουργεί

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

Η αναπαραγωγή πάει από τον browser στο MediaMTX. Το Connect μετακινεί μόνο JSON, συν τις εγγραφές και τις μικρογραφίες που διαβάζει από τον δίσκο.

Τεκμηρίωση

Δυνατότητες Κάθε δυνατότητα, διαδρομή και διαδικασία που έχει κυκλοφορήσει
Αρχιτεκτονική Πώς δένουν τα κομμάτια
Συνεισφορά Στήσιμο ανάπτυξης, scripts, διαδικασία PR
Παραδείγματα Κάμερα Raspberry Pi, πλαστές ροές για δοκιμές

Συνεισφορά

Τα issues και τα PR είναι ευπρόσδεκτα. Το pnpm install && pnpm dev σας δίνει ολόκληρο το stack με δοκιμαστικά δεδομένα — δείτε το CONTRIBUTING.md, και σημειώστε ότι οι τίτλοι των PR είναι conventional commits. Ακολουθούμε έναν Κώδικα Δεοντολογίας.

Άδεια

MIT