Problème lecture vidéo au boot

Bonjour,
Mon Raspberry Pi 4 2 Go me sert sur mon imprimante 3D qui est sous Klipper. J’ai un écran tactile de 5" de raccorder sur le connecteur display. Je voudrez mettre une vidéo au démarrage du boot du Pi4. Je suis sous Debian Bulleye 32 bits et toutes les informations que j’ai trouvé parle de Omxplayer, sauf qu’il met impossible d’installer Omxplayer car il n’est plus compatible ou obsolète d’après le message renvoyé après sudo apt-get install omxplayer.
J’ai Installé vlc pour Pi, mais en remplaçant la ligne de commande pour omxplayer par cvlc (je n’ai pas besoin de l’interface de vlc) que j’ai pu trouver dans différents exemples ou tutos, mon Pi4 démarre correctement mais il ne m’affiche pas la vidéo.
Je suis un débutant, je ne trouve pas de tutos pour installer omxplayer sous bulleye 32 bits, et/ou je ne trouve pas de tutos pour l’utilisation en ligne commande pour vlc ou plutôt pas d’exemple qui fonctionne chez moi.
Je sais qu’il est possible en passant à la version précédente de l’os du Pi (Buster) de faire fonctionner omxplayer, mais cela m’obligerait à réinstaller tout l’os et surtout à refaire toute la configuration de klipper de mon imprimante 3d.
C’est pour cela que je fait appel à votre aide, de plus cela m’aidera dans la compréhension du Pi.
Merci d’avance

Bonjour,

omxplayer n’existe effectivement plus pour Bullseye, cvlc est effectivement la bonne piste. Par contre les options entre les 2 ne sont peut être pas les mêmes.

Si la commande est passée à la main après le démarrage, fonctionne-t-elle ?

A+

Si je me connecte en ssh et que j’éxecute « cvlc /home/pi/nom de la video.mp4 vlc://quit » la vidéo s’affiche sur l’écran de la console mais au format genre matrix avec des caractères alphanumériques mais comme la vidéo originale et elle quitte à la fin de celle-ci et je retourne sur le prompt du Pi.
@+

Bonjour,

Avant de lancer la vidéo je crois qu’il faut exporter l’écran pour spécifier où elle est affichier:

export DISPLAY=localhost:0

A+

Bonjour,
J’ai rajouté ta ligne dans mon fichier splash.service comme ceci, et c’est pareil.

[Unit]

Description=Splash screen

DefaultDependencies=no

After=local-fs.target

[Service]

export DISPLAY=localhost:0
ExecStart=/usr/bin/cvlc /home/pi/videoboot.mp4 vlc://quit

StandardInput=tty

StandardOutput=tty

[Install]

WantedBy=sysinit.target

Bonjour,

export est une commande du language bash. Il faut qu’elle soit dans un script ou en ligne de commande dans un terminal.

Avant de modifier le service, il faut essayer à la main dans une console puis dans un script bash, et enfin ajouter l’appel au script bash dans le service.

A+

Bonjour,

C’est ce que j’ai fait, une fois le Pi démarré, je m’y connecte en ssh via Putty, puis dans le terminal je saisis :

export DISPLAY=localhost:0
cvlc /home/pi/videoboot.mp4 vlc://quit

mais le résultat est toujours le même.

@+

Bonjour,

Effectivement, comme c’est vers l’écran LCD, c’est peut être pas localhost:0 si ce n’est pas l’écran par défaut.

Sur cette page on trouve des astuces pour configurer les écran LCD:

On remarque qu’avec la commande omxplayer, il y avait l’option --display qu’il fallait configurer à 4 pour la sortie LCD. Je ne vois pas d’option équivalente pour cvlc. Par contre dans l’aide en ligne de la commande cvlc, on voit bien qu’il travaille avec la variable d’environement DISPLAY.

Par ailleurs, on trouve sur le net que cvlc utilise l’option --mmal-display. Je n’ai pas trouvé d’autre exemple que l’utilisation de hdmi-1 ou hdmi-2.

N’ayant pas cette configuration matérielle, je ne peux aller plus loin pour tester.

J’appelle à la communauté du forum si elle a une piste ?

A+

Pour l’instant je n’ai pas trouvé de solution à mon problème, mais merci pour toutes vos informations et l’aide que vous m’avez apporté.

@+

Un google et la réponse arrive…

cvlc --x11-display :0.0 video.mp4

Source: SSH to play video. - Raspberry Pi Forums
Recherche: raspbbery start video from ssh to screen - Recherche Google

Bonjour @levelKro ,

Merci pour ton aide, c’est super ça marche, mais quand j’écris cette ligne de commande dans mon fichier splash.service qui est dans /etc/systemd/system/ au redémarrage du Pi je ne vois pas ma vidéo alors qu’en ssh je la vois, peux tu m’expliquer ou m’aider ? Je te joins les lignes de commande que j’ai saisie.

[Unit]

Description=Splash screen
DefaultDependencies=no
After=local-fs.target

[Service]

ExecStart=/usr/bin/cvlc --x11-display :0.0 video.mp4
StandardInput=tty
StandardOutput=tty

[Install]

WantedBy=sysinit.target

Ton service;

[Unit]
Description=Splash screen
After=multi-user.target

[Service]
ExecStart=/home/pi/startvideo.sh

[Install]
WantedBy=multi-user.target

Le fichier dans /home/pi/ nommé startvideo.sh

#!/bin/sh
#
cd /path/ou/est/la/video
/usr/bin/cvlc --x11-display :0.0 video.mp4

De cette manière …

  • Tu n’as pas à recharger les services pour appliquer une correction (sudo systemctl daemon-reload)
  • En script, tu peux ainsi « déplacer » la demande dans le dossier ou ce trouve ta vidéo pour la lancer.
  • J’ai corriger ton service, car tu as vraiment mis n’importe quoi. « local-fs » et « sysinit » ne sont pas des « target » idéal pour lancer la vidéo, car tu lance pendant le boot, quand le système n’est pas prêt. Quand tu lance avec « multi-user » comme « target », tu t’assure que le système est prêt a des activités utilisateurs, comme lire une vidéo.
    Les outputs … vers tty ? Non, c’est pas bon et inutile dans ce cas. Si tu veux un log du output, faut le donner dans la commande qui lance la commande en ajoutant après la commande de VLC un « >/home/pi/vlc.log 2>&1 ».

Tu peux aussi mettre « network.target » au lieu du « multi-user.target » si tu veux le démarrer quelques instant plus tot.

@levelKro ,

Merci pour ta réactivité, mais marche toujours pas, j’ai l’impression que quand le Pi démarre sous klipper il shunt tout.
Je suis parti d’un exemple que j’ai trouvé et qui fonctionnait avec omxplayer et j’ai essayé de l’adapter, mais ça ne marche pas. Comme omxplayer est obsolète, je suis parti sur vlc. En fait je cherche à faire défiler une ou deux vidéos le temps que le Pi démarrage, si tu as une autre solutions je suis preneur car je suis très débutant sous Pi

Ton projet est de faire défiler des vidéo durant le boot ?

C’est une chose que je sais qui est difficile à faire car … VLC comme 90% des lecteurs, ont besoin de librairie qui ce charge dans le boot. (pour cette raison que les OS utilise une image)

SI c’est pour démarrer une vidéo entre la fin du boot et le démarrage d’un programme, tu peux le placer ailleur que dans les services.

Mais avant, as tu testé le service ? As-tu activé le service au boot ?

  • Après avoir créé ton service tu recharge le system par ; sudo systemctl daemon-reload
  • Une fois fait, tu test ton service avec ; sudo systemctl start nomduservice
  • SI il démarre, c’est OK, tu l’active au boot; sudo systemctl enable nomduservice

Sinon, oublie le service et ajoute la commande dans /etc/rc.local et tu ajoute la commande à la fin, avant le exit.

As tu tenté de trouver le omxplayer en « stand alone binary » ? SOit une version précompilé utilisable sur les distro linux en général ? Moi j’ai eu a chercher les binaries de FFMpeg plus ancien pour mettre la main sur FFServer et une version FFMpeg compatible avec. Comme oldversion.com dit … « Newer is not neccessary better ».

@levelKro ,

Toujours pareil, pas de vidéo au boot du Pi.
Concernant omxplayer j’ai trouvé ça :

Par contre je suis sous bullseye 32 bits, et ça ne marche pas dessus. D’après ce que j’ai pu lire, sous bullseye omxplayer est encore présent mais il manque des trucs pour qu’il fonctionne.
J’ai aussi trouvé ça :

mais comme je suis un grand débutant je ne comprends pas tout.

@levelKro ,

Sinon voici ce que je cherche à faire :

Hum,… un fait que j’ai oublié de te souligner… si dans ta commande tu fais ajouter que « video.mp4 » sans donner le chemin, ça ne marchera pas.

Quand tu test ta commande, tu dois surement être déjà dans le dossier ou ce trouve ton vidéo. J’imagine que tu es genre dans « /home/pi ». Alors quand tu fais la commande de « cvlc », il trouve ton video.mp4 qui dois être dans ce dossier.

Mais quand tu passe ta commande via le service, tu dois lui dire ou exactement elle ce trouve, soit « /home/pi/video.mp4 », dans la vidéo, c’est exactement ça qu’il fait.

Si tu veux, refait le service comme il t’indique dans la vidéo YT et corrige la commande de omxplayer par celle de cvlc, en donnant le chemin complet.

Ce que la vidéo t’explique, est en fait 2 vidéos lu. l’un par le service, qui le fait durant le démarrage, une fois le système de fichier chargé, le second quand le processus utilisateur ce charge (fin du boot) via le rc.local.

Pour commencer a comprendre ce qui peut bugger, assure toi que la partie rc.local arrive à marcher, c’est la plus simple a exécuter car elle agis dans le même contexte que si tu le frais toi même.

Seulement après avoir réussi cette étape que je te suggère de regarder comment mettre en place le service.

Bonjour @levelKro ,

Voici mon /etc/rc.local, je n’ai rien changé d’autre après avoir restauré une image de ma carte micro sd. C’est à dire que j’ai toujours l’image avec l’arc en ciel qui s’affiche ainsi que le défilement des commande linux.
Naturellement avant j’ai installé vlc avec la commande sudo apt install -y vlc, et avant j’ai fait sudo apt update sudo apt upgrade.

Même résultat je ne vois pas ma vidéo bootscreen.mp4

_IP=$(hostname -I) || true
if [ « $_IP » ]; then
printf « My IP address is %s\n » « $_IP »
fi

cvlc --x11-display :0.0 /home/pi/bootscreen.mp4

exit 0

Bon, il faut clarifier quelque chose.

  • Tu n’auras jamais la vidéo durant le boot. Le boot sert justement à charger les pilottes, et tu ne peux pas visualiser une video sans avoir charger certains paramètres.
  • Ta vidéo sera entre la fin du Boot et avant/pendant le lancement du « server X » (le bureau)
  • Le paramètre "–x11-display " sera effectif qu’une fois le bureau charger, (vu l’appel du server X … X11)
  • Dans la vidéo, le gars cache volontairement la passe ou le RPi boot en texte et montre que le segment ou la vidéo s’affiche.

Dans l’état actuel, tu lance « cvlc » mais tu enregistre pas son log, alors tu seras jamais c’est quoi l’erreur. Bah en tout cas elle s’affiche a l’écran mais tu ne dois pas l’avoir remarqué. Alors ont va modifier la commande.

Dans le « /etc/rc.local » ont va changer la commande pour;
/home/pi/startboot.sh

Tu va créer le fichier /home/pi/startboot.sh et ajouter dans le document ceci;

#!/bin/sh
#

Et la tu peux tester plus d’un moyen pour lancer la vidéo;

cvlc --x11-display :0.0 /home/pi/bootscreen.mp4 >/home/pi/boot.log 2>&1

ou

DISPLAY=:0 cvlc /home/pi/bootscreen.mp4 >/home/pi/boot.log 2>&1

et tester en ajoutant « sudo » avant le « cvlc » si tu as des « Permission denied ».

N’oublie pas de chmod +x /home/pi/startboot.sh pour qui s’exécute de lui-même.

Alors en théorie, tu auras le log de l’activité du programme, tu seras alors pourquoi il ne démarre pas et ainsi le débugger.

J’ai tenté dans d’autres projes de simplement ajouter une image, il faut modifier le initramfs pour qu’il puisse insérer une image dans le boot. La vidéo c’est encore plus compliqué, même RetroPie, qui a un « Bootsplash » ne peux pas le lancer tant et aussi longtemps que le système n’est pas démarré, bref, il a tout le boot en ligne de textes, li la vidéo et après démarre Emustation.

Alors ce que le gars ne te dit pas non plus est que l’ajout de la vidéo va rallonger ton temps de démarrage. Vu que celle si ce glisse entre deux exécutions.