Faire d'un Pi3B un support de présentation de vidéo en boucle

Photographie ultra-rapide, pilotage d'imprimante 3D ou de CNC, fabrication de bière.... Enfin tout ce que le Raspberry peut gérer trouvera sa place dans cette rubrique

Modérateur : Francois

Répondre
MorganM
Messages : 4
Enregistré le : mer. 10 janv. 2024 19:15

Faire d'un Pi3B un support de présentation de vidéo en boucle

Message par MorganM » jeu. 11 janv. 2024 08:51

Bonjour à toutes et tous,

Je cherche à faire que mon Pi3B lance au démarrage (en mode graphique) en plein écran en boucle une vidéo avec vlc. Mon idée était de faire exécuter au démarrage la commande "vlc file:///chemin/fichier -fL --no-audio".

Pour créer ce démon, j'ai testé ces 4 méthodes, aucune n'a fonctionné :
https://www.malekal.com/linux-executer- ... demarrage/

J'avais aussi trouvé cette méthode basée sur omxplayer, mais j'ai cru comprendre qu'omx n'était plus supporté, et en essayant de modifier le code pour remplacer omx par vlc n'a pas fonctionné non plus :
https://brickodeurs.fr/wiki/comment-tra ... ur-boucle/

J'avoue être à court d'idées. En avez-vous pour moi ?

D'avance merci beaucoup,

Morgan.

PS : mon Raspbian :

pi@raspberrypi:~ $ cat /etc/*release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

pi@raspberrypi:~ $ uname -r
6.1.21-v7+

MorganM
Messages : 4
Enregistré le : mer. 10 janv. 2024 19:15

Re: Faire d'un Pi3B un support de présentation de vidéo en boucle

Message par MorganM » jeu. 11 janv. 2024 10:31

Re,

J'ai un peu avancé.

J'ai essayé cette méthode :
https://www.malekal.com/creer-service-linux-systemd/

Voilà le service que j'ai créé :
[code]
[Unit]
Description=Service systemd au démarrage de linux
After=X11-common

[Service]
Type=simple
User=pi
ExecStart=/bin/sh /home/pi/Vidéos/loop.sh

[Install]
WantedBy=multi-user.target
[/code]

Et le script associé :

[code]
#!/bin/sh -x

SERVICE='vlc'
while true; do
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
echo "runing" # sleep 1
else
vlc file:///home/pi/Vidéos/Lego.avi -fL --no-audio --mouse-hide-timeout 100
fi
done
[/code]

Une fois tout ça écrit, et demandé à systemctl de le lancer, voilà le résultat que j'obtiens :

[code]
pi@raspberrypi:~ $ systemctl status loopvid.service
● loopvid.service - Service systemd au démarrage de linux
Loaded: loaded (/etc/systemd/system/loopvid.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-01-11 10:20:40 CET; 3min 3s ago
Main PID: 396 (sh)
Tasks: 5 (limit: 2057)
CPU: 2min 44.980s
CGroup: /system.slice/loopvid.service
├─ 396 /bin/sh /home/pi/Vidéos/loop.sh
└─4965 vlc file:///home/pi/Vidéos/Lego.avi -fL --no-audio --mouse-hide-timeout 100

janv. 11 10:23:43 raspberrypi sh[4965]: [01764e90] main interface error: no suitable interface module
janv. 11 10:23:43 raspberrypi sh[4965]: [016b5b98] main libvlc error: interface "globalhotkeys,none" initialization failed
janv. 11 10:23:43 raspberrypi sh[4965]: [016b5b98] main libvlc: Lancement de vlc avec l’interface par défaut. Utiliser « cvlc » pour démarrer VLC sans interf>
janv. 11 10:23:43 raspberrypi sh[4965]: error: XDG_RUNTIME_DIR not set in the environment.
janv. 11 10:23:43 raspberrypi sh[4965]: [01764e90] skins2 interface error: cannot initialize OSFactory
janv. 11 10:23:43 raspberrypi sh[4965]: [01764e90] [cli] lua interface: Listening on host "*console".
janv. 11 10:23:43 raspberrypi sh[4965]: VLC media player 3.0.20 Vetinari
janv. 11 10:23:43 raspberrypi sh[4965]: Command Line Interface initialized. Type `help' for help.
janv. 11 10:23:43 raspberrypi sh[4965]: > Shutting down.
janv. 11 10:23:43 raspberrypi sh[4965]: [01764e90] [cli] lua interface: Requested shutdown.
janv. 11 10:23:44 raspberrypi sh[4965]: [6fe09d70] cache_read stream error: cannot pre fill buffer
[/code]

Et là je bloque à nouveau. Je vois bien que mon service tourne (même si je ne le retrouve pas lorsque je lance la commande "sudo service --status-all"), mais que j'ai un bug.
Je pense que mon erreur vient de l'écriture de mon service. Qu'en pensez-vous ?

D'avance merci,

Morgan.

MorganM
Messages : 4
Enregistré le : mer. 10 janv. 2024 19:15

Re: Faire d'un Pi3B un support de présentation de vidéo en boucle

Message par MorganM » jeu. 11 janv. 2024 12:03

Rebonjour à toutes et tous,

Bah au final, j'ai trouvé une solution. Que je vous présente ici, et inspirée de :
https://trevilly.com/lecture-automatiqu ... demarrage/

Pour commencer, voici mon script sh :

[code]

#!/bin/sh

# On efface le curseur de la souris de l'écran
setterm -cursor off

# On définit le chemin de stockage des vidéos
VIDEOPATH="/home/pi/Vidéos/"

# On définit le service à utiliser, ici VLC
SERVICE="vlc"

# On scanne en boucle le dossier
while true; do
if ps ax | grep -v grep | grep $SERVICE != /dev/null
then
# le script plante parfois si la pause n'est pas assez longue
sleep 100;
else
for entry in $VIDEOPATH/*
do
clear
vlc -fL --no-audio file://$entry
done
fi
done

[/code]

Ensuite, comme suggéré dans le tuto, je suis allé modifier le fichier sudo nano /etc/xdg/lxsession/LXDE-pi/autostart en ajoutant la ligne :
[code]
sh /home/pi/Vidéos/loop2.sh
[/code]

Ce qui fonctionne. (Je le fais exécuter par shell et non bash pour pouvoir le retrouver plus facilement : j'ai plusieurs bash d'ouvert dans mes processus, et juste celui-ci en shell.)

Donc à moins que quelqu'un souhaite modifier ma solution précédente pour quelqu'un d'autre, pour moi c'est résolu.

Désolé de vous avoir dérangé pour au final avoir trouvé la solution moi-même, mais au moins elle aura le mérite d'être présente pour d'autres.

Morgan.

piper
Modérateur
Messages : 697
Enregistré le : sam. 5 juin 2021 18:57

Re: Faire d'un Pi3B un support de présentation de vidéo en boucle

Message par piper » jeu. 11 janv. 2024 19:42

Merci.
Je pense que dans la version systemctl aurait du fonctionner avec ceci :

Code : Tout sélectionner

After=graphical.target
Au lieu de ceci :

Code : Tout sélectionner

After=X11-common
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

TaheenSomosiline
Messages : 6
Enregistré le : lun. 6 nov. 2023 12:09

Re: Faire d'un Pi3B un support de présentation de vidéo en boucle

Message par TaheenSomosiline » lun. 29 janv. 2024 06:07

Ne vous inquiétez pas, votre quête pour transformer votre Pi3B en une boucle vidéo hypnotique est presque terminée !

Oubliez OMXplayer: OMXplayer est effectivement obsolète, concentrons-nous sur VLC.

Méthode 1 : Script bash optimisé:

Créez un script bash loop_video.sh avec le contenu suivant :
Bash
#!/bin/bash

# Définissez le chemin de votre vidéo
video_path="/chemin/vers/votre/video.mp4"

# Lancez VLC en plein écran, en boucle et sans audio
while true; do
vlc "$video_path" -fL --no-audio &
sleep 1
done

Rendez le script exécutable : chmod +x loop_video.sh

Ajoutez le script au démarrage automatique :

Option 1 : via LXDE

Menu > Préférences > LXSession > LXDE Startup
Cliquez sur "Ajouter" et entrez la commande ./loop_video.sh
Option 2 : via crontab

Modifiez le fichier crontab avec crontab -e
Ajoutez la ligne @reboot /home/pi/loop_video.sh
Méthode 2 : Interface graphique élégante avec Autostart:

Téléchargez et installez Autostart : sudo apt install autostart

Créez un nouveau fichier .desktop dans /etc/xdg/autostart/ :

[Desktop Entry]
Name=Boucle vidéo
Exec=/home/pi/loop_video.sh
Terminal=false
Type=application
StartupNotify=false
Remplacez /home/pi/loop_video.sh par le chemin réel de votre script.
Conseils bonus:

Réglez le volume: Ajoutez --volume=X à la commande VLC pour un son discret (remplacez X par un niveau entre 0 et 100).
Gestion des erreurs: Ajoutez un message d'erreur si VLC rencontre un problème.
Testez, admirez, et profitez de votre boucle vidéo hypnotique ! ✨

Répondre

Retourner vers « Les applications spécialisées du Raspberry Pi »