# MediaMTX 1.15.6 pour Runtipi Serveur de streaming multimΓ©dia moderne, performant et prΓͺt Γ l'emploi. **Version:** MediaMTX 1.15.6 **Plateforme:** Runtipi **Status:** β Stable --- ## π Qu'est-ce que MediaMTX ? **MediaMTX** (anciennement rtsp-simple-server) est un serveur de streaming multimΓ©dia puissant et facile Γ utiliser qui supporte de multiples protocoles: ### Protocoles SupportΓ©s - **RTSP** - Real-Time Streaming Protocol - **RTMP** - Real-Time Messaging Protocol - **HLS** - HTTP Live Streaming - **WebRTC** - Web Real-Time Communication - **SRT** - Secure Reliable Transport - **MPEG-TS** - MPEG Transport Stream - **UDP/RTP** - User Datagram Protocol / Real-time Transport Protocol ### CaractΓ©ristiques Principales - β **Zero Configuration** - Fonctionne immΓ©diatement sans configuration - β **Conversion Automatique** - Conversion transparente entre tous les protocoles - β **Enregistrement IntΓ©grΓ©** - Sauvegarde des streams en MP4 ou MPEG-TS - β **Performance Optimale** - Γcrit en Go, faible consommation de ressources - β **API REST ComplΓ¨te** - ContrΓ΄le programmatique via HTTP - β **Metrics Prometheus** - Surveillance et monitoring intΓ©grΓ©s - β **Multi-plateforme** - Linux, Windows, macOS, ARM ### Cas d'Usage - **Surveillance vidΓ©o** - CamΓ©ras IP (RTSP/ONVIF) - **Streaming en direct** - Diffusion d'Γ©vΓ©nements, confΓ©rences - **Broadcasting** - OBS Studio, FFmpeg, GStreamer - **VisioconfΓ©rence** - WebRTC pour applications web - **IoT et drones** - Transmission vidΓ©o temps rΓ©el - **Enregistrement DVR** - Sauvegarde de flux vidΓ©o --- ## ποΈ Architecture MediaMTX fonctionne comme un serveur central qui accepte des connexions entrantes (publishers) et redistribue les streams aux clients (viewers): ``` ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β Publishers β β β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β β β CamΓ©ra β β OBS β β FFmpeg β β Drone β β β β IP β β Studio β β β β β β β β (RTSP) β β (RTMP) β β (SRT) β β (WebRTC) β β β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β β β β β β β ββββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββββ β β β β βΌ βΌ βΌ βΌ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β MediaMTX Server β β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β Protocol Conversion & Stream Distribution β β β β RTSP (8554) β RTMP (1935) β HLS (8888) β WebRTC β β β β SRT (8890) β API (9997) β Metrics (9998) β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β Enregistrement (optionnel) β β β β Formats: fMP4, MPEG-TS β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βΌ βΌ βΌ βΌ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β Viewers β β β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β β β VLC β βNavigateurβ β Mobile β β Lecteur β β β β (RTSP) β β (HLS) β β (WebRTC) β β (RTMP) β β β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ``` --- ## π Installation ### PrΓ©requis - **Runtipi** installΓ© et fonctionnel - **Ressources minimales:** - **CPU:** 1 core (2+ recommandΓ©s) - **RAM:** 512MB minimum (2GB recommandΓ©s pour production) - **Disque:** 1GB + espace pour enregistrements (si activΓ©) - **Ports rΓ©seau** accessibles (voir tableau des ports) ### Installation via Runtipi 1. **Ouvrir l'interface Runtipi** dans votre navigateur 2. **Aller dans "App Store"** 3. **Rechercher "MediaMTX"** 4. **Cliquer sur "Install"** 5. **Configurer les options** (optionnel): - Authentification API (username/password) - Activer l'enregistrement des streams 6. **Cliquer sur "Installer"** L'application dΓ©marre automatiquement et est prΓͺte Γ recevoir des streams ! --- ## π Configuration ### Ports ExposΓ©s | Port | Protocole | Usage | AccΓ¨s | |------|-----------|-------|-------| | **8554** | TCP/UDP | RTSP | Public | | **1935** | TCP | RTMP | Public | | **8888** | TCP | HLS | Public | | **8889** | TCP | WebRTC (Signaling) | Public | | **8890** | UDP | WebRTC/SRT Media | Public | | **8189** | UDP | WebRTC ICE | Public | | **9997** | TCP | API REST | Interne/Admin | | **9998** | TCP | Metrics Prometheus | Interne/Monitoring | ### Variables d'Environnement Configurables via l'interface Runtipi: | Variable | Description | Valeur par dΓ©faut | |----------|-------------|-------------------| | `MTX_API_USERNAME` | Nom d'utilisateur API | *(vide - auth dΓ©sactivΓ©e)* | | `MTX_API_PASSWORD` | Mot de passe API | *(vide)* | | `MTX_RECORD_ENABLED` | Activer enregistrement | `false` | **ParamΓ¨tres Automatiques** (prΓ©-configurΓ©s): - `MTX_PROTOCOLS=tcp` - Protocoles Docker-friendly - `MTX_LOGLEVEL=info` - Niveau de log - `MTX_LOGDESTINATIONS=stdout` - Logs vers Docker - Tous les ports configurΓ©s automatiquement ### Authentification API Pour sΓ©curiser l'API REST: 1. **Aller dans Runtipi β Apps β MediaMTX β ParamΓ¨tres** 2. **DΓ©finir `MTX_API_USERNAME`** (ex: `admin`) 3. **DΓ©finir `MTX_API_PASSWORD`** (ex: mot de passe fort) 4. **RedΓ©marrer l'application** L'API nΓ©cessitera ensuite une authentification HTTP Basic: ```bash curl -u admin:PASSWORD http://localhost:9997/v3/config/get ``` ### Enregistrement des Streams Pour activer l'enregistrement automatique: 1. **Cocher "Activer l'enregistrement des streams"** lors de l'installation 2. Les enregistrements seront sauvegardΓ©s dans: ``` /opt/runtipi/app-data/*/mediamtx/data/recordings/ ``` 3. **Format:** fMP4 (fragmentΓ© MP4, compatible avec tous les lecteurs) 4. **Nom des fichiers:** `{stream-name}/{date}_{heure}.mp4` **Exemple de structure:** ``` recordings/ βββ camera1/ β βββ 2025-01-06_14-30-00-000.mp4 β βββ 2025-01-06_15-00-00-000.mp4 βββ stream2/ βββ 2025-01-06_14-45-00-000.mp4 ``` --- ## πΉ Utilisation ### 1. Publier un Stream (Publisher) #### Depuis OBS Studio (RTMP) 1. **Ouvrir OBS Studio** 2. **ParamΓ¨tres β Stream** 3. **Service:** PersonnalisΓ© 4. **Serveur:** `rtmp://VOTRE_IP:1935/` 5. **ClΓ© de stream:** `nom_du_stream` 6. **DΓ©marrer le streaming** #### Depuis FFmpeg (RTSP) ```bash ffmpeg -re -i video.mp4 -c copy -f rtsp rtsp://VOTRE_IP:8554/mon_stream ``` #### Depuis une CamΓ©ra IP (RTSP) Redirigez le stream de votre camΓ©ra: ```bash ffmpeg -i rtsp://camera_ip:554/stream \ -c copy \ -f rtsp rtsp://VOTRE_IP:8554/camera1 ``` #### Depuis FFmpeg (RTMP) ```bash ffmpeg -re -i video.mp4 -c copy -f flv rtmp://VOTRE_IP:1935/mon_stream ``` ### 2. Lire un Stream (Viewer) #### Dans VLC (RTSP) 1. **Ouvrir VLC** 2. **MΓ©dia β Ouvrir un flux rΓ©seau** 3. **URL:** `rtsp://VOTRE_IP:8554/nom_du_stream` 4. **Lire** #### Dans un Navigateur (HLS) CrΓ©ez un fichier HTML: ```html