User Tools

Site Tools


nomades:raspberry_video_en_autoplay

This is an old revision of the document!


🎥 Raspberry Pi – Autoplay vidéo USB (mplayer) – Installation complète

🎯 Objectif

Une Raspberry Pi qui :

* démarre automatiquement en bureau X11 ; * monte toute clé USB branchée ; * scanne les vidéos (.mp4, .mov, .mkv, .avi, …) ; * les lit en plein écran et en boucle avec `mplayer` ; * sans intervention manuelle.

—

🧰 Matériel & prérequis

* Raspberry Pi + alimentation + câble HDMI + écran * Carte micro-SD ≥ 16 Go * Un PC/Mac pour flasher l’OS * Clé USB contenant des vidéos

—

1) Préparer la carte SD (Raspberry Pi OS)

Méthode simple : Raspberry Pi Imager

1. Installer Raspberry Pi Imager sur votre PC/Mac. 2. Choisir l’OS : Raspberry Pi OS (Desktop) (Bookworm). 3. Cliquer sur ⚙️ et préconfigurer :

  • Hostname : `raspberrypi`
  • Utilisateur : `pi` + mot de passe
  • Activer SSH
  • (Optionnel) Wi-Fi : pays/SSID/mot de passe
  • Langue / clavier (FR) si souhaitĂ©

4. Flasher la carte SD et l’insérer dans la Pi.

Notes

* Pour un affichage plus “classique” X11, on utilisera `lightdm + openbox` (on l’installe plus bas). * Si l’écran ne “réveille” pas le HDMI, voir la section HDMI/Écran à la fin.

—

2) Premier démarrage & accès SSH

Allumer la Pi (HDMI branché). Depuis un autre poste :

# Remplacez l'IP si besoin
ssh pi@192.168.x.y

Configurer base système :

# Mises Ă  jour
sudo apt update && sudo apt full-upgrade -y
 
# (Optionnel) Locales/Clavier/Timezone si non faits dans l’imager
 
sudo raspi-config
 
# System Options > Locale / Timezone / Keyboard

Astuce : l’IP de la Pi est visible sur votre box/routeur ou via `arp -a`/`nmap`.

—

==== 3) Installer les paquets nécessaires ====

sudo apt install -y mplayer udevil lightdm openbox x11-xserver-utils 

* mplayer : lecteur vidéo. * udevil : montage automatique des périphériques USB (via `devmon`). * lightdm + openbox : bureau X11 léger + autologin. * x11-xserver-utils : utilitaires X (ex. `xset`).

Activer l’affichage graphique au boot + autologin :

sudo systemctl enable --now lightdm
# Si l’autologin n’est pas actif :
sudo raspi-config
# System Options > Autologin > Desktop Autologin

—

4) Montage auto des clés USB (devmon)

Créer l’autostart (démarre dans la session X) :

mkdir -p ~/.config/autostart
cat > ~/.config/autostart/devmon.desktop <<'EOF'
[Desktop Entry]
Type=Application
Name=devmon
Exec=/usr/bin/devmon --no-gui
X-GNOME-Autostart-enabled=true
EOF

Vérifier après login graphique :

pgrep -a devmon
# → doit afficher un /usr/bin/devmon --no-gui

Les clés seront montées sous `/media/pi/<LABEL>`.

—

==== 5) Helper : attendre que X11 soit prĂŞt ====

mkdir -p ~/.local/bin ~/.local/share
cat > ~/.local/bin/wait-x <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
export DISPLAY="${DISPLAY:-:0}"
export XAUTHORITY="${XAUTHORITY:-$HOME/.Xauthority}"
for i in {1..60}; do
if xset q >/dev/null 2>&1; then exit 0; fi
sleep 0.5
done
exit 1
EOF
chmod +x ~/.local/bin/wait-x 

—

6) Script d’autoplay (mplayer)

Ce script :

* scanne `/media/$USER` (max profondeur 3) ; * joue TOUTE vidéo trouvée en boucle plein écran ; * relance le scan si mplayer s’arrête (clé retirée/changée…).

sudo tee /usr/local/bin/usb-mplayer-autoplay.sh >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
LOG="$HOME/.local/share/usb-mplayer.log"
echo "[usb-mplayer] start $(date)" > "$LOG"
 
scan_files() {
mapfile -d '' FILES < <(find "/media/$USER" -maxdepth 3 -type f 
-iregex '.*.(mp4|mov|mkv|m4v|avi|mpg|mpeg|wmv)' 
! -name '._*' ! -name '.DS_Store' -print0 2>/dev/null || true)
}
 
while true; do
scan_files
n="${#FILES[@]}"
if [ "$n" -eq 0 ]; then
echo "[usb-mplayer] no files yet, rescanning..." | tee -a "$LOG"
sleep 5
continue
fi
echo "[usb-mplayer] playing $n file(s)" | tee -a "$LOG"
 
# Xv = voie vidéo la plus stable sur Pi (fallback ALSA en audio)
 
/usr/bin/mplayer -fs -loop 0 -quiet -vo xv -ao alsa "${FILES[@]}" || true
echo "[usb-mplayer] mplayer exited ($?), rescanning..." | tee -a "$LOG"
sleep 1
done
EOF
sudo chmod +x /usr/local/bin/usb-mplayer-autoplay.sh 

—

7) Service systemd (session utilisateur)

Lance l’autoplay dès que la session graphique est prête (après autologin).

mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/usb-mplayer.service <<'EOF'
[Unit]
Description=USB autoplay with mplayer
After=graphical-session.target
Wants=graphical-session.target
 
[Service]
ExecStart=/bin/bash -lc '~/.local/bin/wait-x && /usr/local/bin/usb-mplayer-autoplay.sh'
Restart=always
RestartSec=3
 
[Install]
WantedBy=default.target
EOF
 
# Activer et démarrer
 
systemctl --user enable --now usb-mplayer.service 

(Optionnel mais utile sur systèmes multi-sessions ou sans autologin :)

sudo loginctl enable-linger pi 

—

8) Test rapide

* Brancher une clé USB avec vidéos. * Vérifier le montage :

  ls /media/pi 

* Vérifier le service :

  systemctl --user status usb-mplayer
  tail -n 80 ~/.local/share/usb-mplayer.log 

* Vous devez voir les vidéos plein écran et en boucle.

Remplacer la clé USB : éteindre la Pi, mettre la nouvelle clé, rallumer. Le script rescannera et jouera le nouveau contenu.

—

🔧 Dépannage rapide

* Écran noir / rien ne se lance

  • VĂ©rifier que `lightdm` tourne :
    systemctl status lightdm
  • VĂ©rifier la session utilisateur et le service :
    systemctl --user status usb-mplayer
  • Regarder les logs :
    tail -n 80 ~/.local/share/usb-mplayer.log

* Clé non montée

  • VĂ©rifier `devmon` :
    pgrep -a devmon
  • Rebrancher la clĂ© ; vĂ©rifier `/media/pi/<LABEL>`

* Problème audio

  • Basculer sur PulseAudio si nĂ©cessaire : remplacer `-ao alsa` par `-ao pulse`

* Certaines vidéos ne passent pas

  • Installer codecs FFmpeg complets :
    sudo apt install -y ffmpeg
  • (Ou convertir les vidĂ©os en H.264/AAC .mp4)

—

🖼️ Notes HDMI / Écran (optionnel)

Si l’écran ne s’enclenche pas au boot (hotplug capricieux), ajouter dans `/boot/firmware/config.txt` :

sudo tee -a /boot/firmware/config.txt >/dev/null <<'EOF'
# Force HDMI même sans détection
hdmi_force_hotplug=1
# Sortie audio HDMI
hdmi_drive=2
# 1080p60
hdmi_group=1
hdmi_mode=16
EOF

Redémarrer :

sudo reboot

.

—

đź§ą Maintenance

* Logs :

tail -f ~/.local/share/usb-mplayer.log

* Redémarrer le lecteur :

systemctl --user restart usb-mplayer

* Désactiver l’autoplay :

systemctl --user disable --now usb-mplayer

—

✅ Résultat attendu

* À chaque démarrage, la Pi ouvre une session graphique. * `devmon` monte automatiquement la clé USB. * Le service usb-mplayer scanne et lit toutes les vidéos en boucle plein écran. * Changer de clé → redémarrer → nouveau contenu joué.

nomades/raspberry_video_en_autoplay.1759936647.txt.gz · Last modified: 2025/10/08 17:17 by julien