Transformer une caméra Raspberry Pi en caméra IP RTSP avec MediaMTX | Solaire Domotique
Tutoriel pratique · Solaire Domotique

Transformer une caméra Raspberry Pi en caméra IP RTSP avec MediaMTX

Réutilisez une caméra CSI OV5647 et un Raspberry Pi 3B+ pour créer un flux RTSP protégé par identifiant et mot de passe, le tester dans VLC et le rendre disponible pour une utilisation domotique.

📷 Raspberry Pi 3B+🎥 Caméra OV5647🐳 MediaMTX🏠 Home Assistant
🎯 ObjectifDiffuser la caméra CSI en RTSP et vérifier le flux dans VLC.
⚙️ Configuration vidéoH.264 · 1280 × 720 · 15 images/s · débit demandé de 2 Mbit/s.
🔐 SécuritéCompte RTSP dédié à la lecture ; port 8554 conservé sur le réseau local.
ÉTAPE 01

Préparer la carte SD

Sur le PC Windows, installez Raspberry Pi Imager depuis le site officiel, puis écrivez Raspberry Pi OS Lite 64 bits sur la carte SD. Cette opération efface les données déjà présentes sur la carte.

ParamètreValeur
AppareilRaspberry Pi 3
SystèmeRaspberry Pi OS Lite (64-bit)
Nom du Raspberry PiSurvRaspCam
Utilisateurbenoit
Mot de passe LinuxChoisir un mot de passe personnel
SSHActivé
RéseauEthernet ou Wi-Fi préparé dans Imager

Insérez la carte, reliez la caméra au connecteur CSI avec la nappe dans le bon sens, puis démarrez le Raspberry Pi.

ÉTAPE 02

Se connecter en SSH et passer en root

Depuis le terminal Windows, connectez-vous au Raspberry Pi. Si le nom local ne fonctionne pas, remplacez-le par l’adresse IP attribuée par le routeur.

BASH
ssh benoit@SurvRaspCam.local

Définir un mot de passe root (facultatif)

Cette opération n’est pas nécessaire pour passer en root via sudo. Si vous souhaitez définir un mot de passe au compte root, exécutez la commande depuis la session benoit :

BASH
sudo passwd root

Saisissez le nouveau mot de passe, puis confirmez-le. Ensuite, passez en root :

BASH
sudo -i
À partir de cette étape, toutes les commandes Linux ci-dessous sont à exécuter dans la session root. Ne rajoutez pas sudo devant les commandes suivantes. Pour la sécurité, conservez la connexion SSH avec l’utilisateur benoit, puis passez en root ; n’activez pas une connexion SSH directe en root.
ÉTAPE 03

Mettre à jour le système

Mettez à jour les listes de paquets, installez les mises à jour, puis redémarrez.

BASH
apt update
apt full-upgrade -y
reboot

Après le redémarrage, reconnectez-vous et repassez en root :

BASH
ssh benoit@SurvRaspCam.local
sudo -i

Installez les outils utilisés dans les étapes suivantes :

BASH
apt install -y curl tar ca-certificates openssl rpicam-apps
ÉTAPE 04

Vérifier la caméra CSI

Vérifiez que Raspberry Pi OS reconnaît le capteur OV5647 avant d’installer le serveur vidéo.

BASH
rpicam-hello --list-cameras

La liste doit faire apparaître ov5647. Lancez ensuite une capture de dix secondes :

BASH
rpicam-vid -t 10000 \
  --width 1280 \
  --height 720 \
  --framerate 15 \
  --codec h264 \
  -o /tmp/test-camera.h264

Vérifiez la création du fichier puis supprimez le test temporaire, devenu inutile :

BASH
ls -lh /tmp/test-camera.h264
rm /tmp/test-camera.h264
Si la caméra n’apparaît pas dans la liste, vérifiez l’orientation et le verrouillage de la nappe CSI avant de continuer.
ÉTAPE 05

Installer MediaMTX

Nous utilisons MediaMTX v1.21.2 en ARM64, testé sur le Raspberry Pi 3B+. Le programme est installé directement dans son répertoire définitif, sans copie supplémentaire.

BASH
mkdir -p /opt/mediamtx

Téléchargez l’archive officielle puis extrayez uniquement l’exécutable :

BASH
curl -fL \
  -o /tmp/mediamtx.tar.gz \
  https://github.com/bluenviron/mediamtx/releases/download/v1.21.2/mediamtx_v1.21.2_linux_arm64.tar.gz

tar -xzf /tmp/mediamtx.tar.gz \
  -C /opt/mediamtx \
  mediamtx

rm /tmp/mediamtx.tar.gz

Vérifiez la version :

BASH
/opt/mediamtx/mediamtx --version

Le résultat attendu est v1.21.2.

ÉTAPE 06

Créer la configuration RTSP avec mot de passe

Le fichier de configuration est créé directement à son emplacement définitif. Le compte camera_ha n’a que le droit de lire le chemin camera.

Créez le fichier en utilisant ce bloc cat :

BASH
cat > /opt/mediamtx/mediamtx.yml <<'EOF'
logLevel: info

# Serveur RTSP
rtsp: true
rtspAddress: :8554
rtspTransports: [tcp]
rtspAuthMethods: [basic]

# Authentification interne
# Seul camera_ha a une autorisation de lecture sur le chemin camera
authMethod: internal
authInternalUsers:
  - user: camera_ha
    pass: "solairedomotique"
    ips: []
    permissions:
      - action: read
        path: camera

# Protocoles inutilisés désactivés
rtmp: false
hls: false
webrtc: false
srt: false
moq: false
api: false
metrics: false
pprof: false
playback: false

# Caméra CSI Raspberry Pi
paths:
  camera:
    source: rpiCamera
    rpiCameraCamID: 0
    rpiCameraWidth: 1280
    rpiCameraHeight: 720
    rpiCameraFPS: 15
    rpiCameraBitrate: 2000000
EOF

chmod 600 /opt/mediamtx/mediamtx.yml
Sécurité : le mot de passe solairedomotique est volontairement celui demandé pour ce tutoriel, mais il est facile à deviner. Sur une installation réelle, choisissez un mot de passe long et unique. L’authentification RTSP Basic ne chiffre pas le transport des identifiants : gardez le port 8554 sur le réseau local et ne l’exposez pas directement à Internet.
ÉTAPE 07

Valider la configuration et tester dans VLC

Contrôlez le fichier avant de lancer MediaMTX. Cette commande valide la configuration sans démarrer le flux.

BASH
/opt/mediamtx/mediamtx \
  --validate-conf=/opt/mediamtx/mediamtx.yml

Si aucune erreur n’est signalée, lancez MediaMTX en mode manuel :

BASH
/opt/mediamtx/mediamtx /opt/mediamtx/mediamtx.yml

Dans les journaux, recherchez l’initialisation de la caméra et la disponibilité du flux H.264. Laissez ce terminal ouvert pendant le test VLC.

Adresse du flux

Dans VLC, choisissez Média → Ouvrir un flux réseau et utilisez l’adresse RTSP du Raspberry Pi. Exemple : l’adresse Wi-Fi utilisée lors de notre ancien test était 192.168.1.44. Après réinstallation, remplacez cet exemple par l’adresse actuelle de votre Raspberry Pi.

rtsp://192.168.1.44:8554/camera

Lorsque VLC le demande, saisissez :

  • Identifiant : camera_ha
  • Mot de passe : solairedomotique
  • Transport : TCP

Selon la fenêtre d’authentification de VLC, vous pouvez également tester l’URL complète :

rtsp://camera_ha:solairedomotique@192.168.1.44:8554/camera

Testez aussi l’adresse sans identifiants : elle doit être refusée. Lorsque le flux fonctionne avec les identifiants, arrêtez le serveur manuel avec Ctrl+C.

ÉTAPE 08

Créer le démarrage automatique avec systemd

Le service est écrit directement à son emplacement définitif avec cat. Il n’y a ni éditeur à ouvrir ni fichier intermédiaire à recopier.

BASH
cat > /etc/systemd/system/mediamtx.service <<'EOF'
[Unit]
Description=MediaMTX - Camera IP Raspberry Pi
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/mediamtx
ExecStart=/opt/mediamtx/mediamtx /opt/mediamtx/mediamtx.yml
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

Rechargez systemd, activez le service au démarrage et démarrez-le :

BASH
systemctl daemon-reload
systemctl enable --now mediamtx
systemctl status mediamtx --no-pager

Le statut attendu contient Active: active (running). Le service est configuré pour tourner en root, comme dans ce tutoriel ; cela simplifie l’accès à la caméra mais accorde davantage de privilèges au programme. À ce stade, le serveur RTSP et le démarrage automatique sont configurés ; l’intégration détaillée dans Home Assistant n’est pas traitée dans cette vidéo. Pour diagnostiquer un éventuel échec :

BASH
journalctl -u mediamtx -n 50 --no-pager
AIDE

🧰 Dépannage rapide

Le service ne démarre pas

Affichez ses derniers journaux :

BASH
journalctl -u mediamtx -n 50 --no-pager

Vérifier le statut du service

BASH
systemctl status mediamtx --no-pager

Vérifier que le serveur écoute sur le port RTSP

BASH
ss -lntp | grep 8554

Vérifier les permissions et la configuration

BASH
ls -l /opt/mediamtx/mediamtx.yml
/opt/mediamtx/mediamtx --validate-conf=/opt/mediamtx/mediamtx.yml
Sécurité réseau : ne redirigez pas le port RTSP 8554 directement sur Internet. Pour un accès distant, privilégiez un VPN. Le mot de passe simple de ce guide est destiné à reproduire le tutoriel ; changez-le pour un usage réel.
RÉCAPITULATIF

📁 Fichiers installés

Fichier / cheminRôle
/opt/mediamtx/mediamtxProgramme MediaMTX
/opt/mediamtx/mediamtx.ymlConfiguration caméra et authentification
/etc/systemd/system/mediamtx.serviceDémarrage automatique

Le programme, sa configuration et le service sont installés directement à leur emplacement final. Aucune copie de sauvegarde n’est créée par ce tutoriel.