Lancer plusieurs vidéos simultanément sur plusieurs écrans avec Python et MPV

Vous cherchez à lire plusieurs vidéos simultanément sur différents écrans de votre Raspberry Pi tout en contrôlant l’audio et l’affichage des fenêtres ? Ce script Python simple et efficace permet de le faire en utilisant MPV et la bibliothèque screeninfo. Il est particulièrement adapté pour des installations multi-écrans ou des kiosques vidéo.

Fonctionnalités principales du script

  • Lecture de deux vidéos différentes sur deux écrans distincts.
  • Contrôle de l’activation de l’audio pour chaque vidéo.
  • Fenêtres vidéo sans barre de titre, pour un rendu plein écran ou intégré dans votre interface.
  • Gestion multithread pour lancer les vidéos simultanément.
  • Compatibilité avec PipeWire ou PulseAudio pour l’audio.

Comment fonctionne le script

Le script commence par importer les modules nécessaires : subprocess pour lancer les commandes système, screeninfo pour détecter les moniteurs connectés, et threading pour exécuter plusieurs vidéos en parallèle.

Vous pouvez configurer :

  • Le chemin vers vos vidéos (video1_path et video2_path).
  • L’activation de la lecture vidéo et audio pour chaque fichier (play_video1, play_video2, audio1, audio2).

La fonction launch_video reçoit le chemin de la vidéo, le moniteur cible et un paramètre audio. Elle utilise MPV pour lancer la vidéo avec une géométrie exacte correspondant à l’écran sélectionné et sans bordure.

Le script détecte ensuite tous les écrans connectés et lance chaque vidéo sur le moniteur correspondant grâce à des threads séparés.

Prérequis et installation

Avant d’exécuter le script sur votre Raspberry Pi, assurez-vous d’installer les logiciels et modules suivants :

  1. Python 3
    Le script utilise Python 3. Vérifiez l’installation avec :
    python3 --version
  2. MPV
    Lecteur vidéo puissant en ligne de commande, compatible avec de nombreux formats.
    Installez-le avec :
    sudo apt update && sudo apt install mpv
  3. Bibliothèque Python screeninfo
    Pour détecter les écrans connectés :
    pip3 install screeninfo
  4. PulseAudio ou PipeWire
    Pour gérer l’audio. Sur Raspberry Pi OS, PulseAudio est souvent déjà installé. Si nécessaire :
    sudo apt install pulseaudio
  5. Vérifier les droits d’accès aux vidéos
    Assurez-vous que les fichiers vidéo sont lisibles par l’utilisateur qui exécute le script.

Comment lancer le script

  1. Placez vos vidéos dans les dossiers définis (Oldvideos/video1.mp4 et Oldvideos/video2.mp4) ou modifiez les chemins dans le script.
  2. Ouvrez un terminal et lancez :
    python3 nom_du_script.py
  3. Les vidéos se lanceront sur les écrans détectés, avec ou sans audio selon votre configuration.

Conclusion

Ce script offre une solution simple et flexible pour gérer la lecture de vidéos sur plusieurs écrans à partir d’un Raspberry Pi. Grâce à l’usage de threads et à MPV, il permet de synchroniser les vidéos tout en conservant un contrôle précis sur l’affichage et le son. Que vous réalisiez un kiosque interactif ou un montage multi-écrans, ce script constitue un bon point de départ.

Python