Distri Looper écran coloré

Bonjour,

Je vous préviens, je ne connais quasiment rien, ma seul expérience est d’installer un kodi pour diffuser des vidéos à partir d’un nas.

J’ai une copine qui doit faire une expo de vidéo. Elle veut diffuser une vidéo en boucle sur un écran.Je lui est dit qu’il y avait surement moyen avec un raspberry de faire ça.

Je me suis mis à la recherche d’info, j’ai trouvé une distri qui à l’air de faire ça à merveille. c’est la distri RPi Video Looper 2.0. trouvé ici :

j’ai reformaté mon ancienne SD avec SDFormater, copier l’image sur ma SD avec win32diskimager.

modifié le fichier de config pour lire une vidéo à partir d’une clef usb.

lors de la mise en route du RP, j’ai un grand rectangle coloré qui prend tout le centre de l’image et ça ne bouge pas de là.
Avez vous une idée ? c’est une config sur l’image qu’'il faut faire ?

Merci

Nico

Salut,

normalement sa veux dire que ton PI est sous alimenté .

Je connais pas du tout cette distribution RPI Video looper , mais il y a plus simple et si il y a qu’une vidéo (encore plus simple )

un petit script ferra l’affaire sur raspbian , j’en ai déja écrit ou corriger plusieur pour des gens ici

ici par exemple Ambiance feu de cheminée [Résolu] - Projets - Le Forum français de la Raspberry Pi - Raspberry Pi FR (Raspbian France)

j’avais fais aussi celui si aussi Video au demarrage du pi - Projets - Le Forum français de la Raspberry Pi - Raspberry Pi FR (Raspbian France)

la sa avait éte plus galere car le mec ne savait pas du tout se servir de linux il avait un raspbian lite et on a perdu énorment de temps sur la mise en place , mais il a finie par l’avoir son coffre :wink:

si tu me dis a peu prés se que tu veux je peux te faire un truc sur mesure(gratuitement bien sur ) .

Salut Jojo

Merci de t’occuper de mon cas…

Pour la sous alimentation, c’est bizarre, j’utilise un transfo 2.5A, ça marche nickel avec mon kodi. enfin passons.

les besoins sont :
Le top, serait une détection de mouvement ou un appui des visiteurs pour déclancher la lecture de la vidéo.
Autrement mais moins bien,

  • lire une vidéo en boucle qui se trouve sur une clef USB
  • qu’elle se lance automatiquement lors du démarrage du RP
  • qu’en bougeant la souris, un menu apparaisse pour arrêter le RP correctement, et tant qu’a y être, que le pointeur de souris ne soit pas visible lors de la diffusion.

dernier point, normalement optionnel,
peut être prévoir que s’il y a plusieurs vidéos, elles passent en boucle les une après les autres suivant l’ordre alphabétique. Normalement il doit y avoir plusieurs stands de diffusion mais tout n’est pas calé pour l’instant. autant le prévoir tout de suite.

voilà je crois que c’est tout :-p

Cdt

Nico

effectivement c’est bon l’alim , autre possibilité images mal écrite sur la SD

sa c’est ok il me faudra le chemin de la clé usb et le dossier qui contiendra les vidéo
car si je dois prévoir sa

j’utiliserai une autre méthode que celle prévu initialement (qui fonctionne aussi pour une seule vidéo )
et non c’est pas celle qui est utiliser par le script que j’ai corriger dans le sujet du feux de cheminé .

Sa demandera juste que vous nommer vos vidéo par ordre alphaphétique ou numérique pour l’ordre de lecture ,

Ah est sa me demandera pas de boulot en plus , juste une ligne :slight_smile:

ok pas de probléme non plus sa

c’est la que sa coince ,pour la 2 éme partie le pointeur invisible pas de soucis ,c’était prévu .

Par contre le menu , je sait pas du tout comment faire ,c’est asseZ technique se que tu me demande et j’ai pas le niveaux .

Afficher un menu je sait le faire ,le vrai menu shutdown j’ai pas encore trouver il semblerait que se soit un script système , mais bon je saurait te le faire même en python ,il est pas compliquer d’éteindre au reboot avec un un appelle système (déja fait )

c’est dans cette situation la que c’est compliqué disont avec les solution que j’ai en tete , car pour pas trop rentrer dans le technique dison que l’affichage de la vidéo va prendre tout l’ecran mais plus précisent va monopoliser le serveur X (c’est l’affichage si tu préfère ) ,

Donc faire apparaître un truc par desus , sa me parait difficile , pas faute d’avoir essayer

:sound: Parenthèse : Pour te faire une explication compléte mais pas trop complexe , disont c’est propre au Raspberry , car sur PI pour lire de la vidéo (on a plein de sujet la desus ) il faut que le logicielle utilise l’acélaration matérielle , c’est le cas pour Kodi et omxplayer , mais pas VLC ou les navigateur internet (d’ou impossibilité de lire youtube sans lag )

hors les logicielle qui utilise l’accélération matérielle s’affiche totalement sur l’ecran: 0 on peux pas faire autrement , (on peux reduire la fenetre mais dans ce cas pas de pleine ecran ) donc pas faire passer autre chose par dessus

je ferme la parenthésé la car sa reste trés technique quand meme et plus compliqué que sa ,mais sa te donne idée générale .

Je pourrait utiliser les interface existante pour contourner le probléme , mais je les connais pas (au niveau fonctionement ) et sa me donnerait trop de travail !

par contre couper la lecture et afficher le menu c’est possible

il reste le point bouger la souris , je suis pas un expert des mouvement de souris jamais fait , je ne doute pas que je trouverai facilement un Librairie qui me permette de le faire mais la encore sa me donnerai un peu plus de boulot , écriture du script test et intégration dans le code initial (car oui j’utiliserait du python )

Donc voila la partie souris et menu je sait pas si je pourrais la réaliser , pour le reste pas de problème

P.S: je précise que je suis pas développeur j’ai de trés bonne basse et je me débrouille plutot pas mal ,(les gens ici sont satisfait ) mais je me contente de faire des script ou corriger , pas de développer des logicielle complet et ultra optimisé,
Je fait sa pendant mon temps libre et bénévolement(se qui me permet de m’amélioré ) .

Re,

Je reviens à la charge, après recherche, je pense avoir trouvé ce que j’ai besoin, un script python lançant une video lorsqu’un bouton poussoir est activé celui-ci est connecté sur les ports GPIO.

Je précise que j’ai un raspberry PI3 vers B.

J’ai trouvé le plan de câblage ici:

je me connecte donc sur le port GND et GPIO 3 ( broche 9 et 15 / la 5ème et le 8ème)

j’ai stocké ma vidéo de test dans un répertoire « …/pi/Videos »

mais lors de l’exécution de celui ci j’ai un petit problème. j’ai en retour :

RuntimeWarning: A physical pull up resistor is fitted on this channel!
puis sans arrêt « Video started : False »

je dois faire un CTRL+C pour l’arréter

voici le script :

import subprocess, time
import RPi.GPIO as GPIO
INPUT_PIN = 3

GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(INPUT_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)

video_started = False
play_process = None
val = -1

while True:
val = GPIO.input(INPUT_PIN)
if val == 0: # Button pressed
print(« Button pressed »)
if not video_started:
play_process = subprocess.Popen([‹ omxplayer ›,‹ …/pi/Videos/essai.mp4 ›],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True)
if play_process != None:
video_started = play_process.poll() == None
else:
video_started = False
print(« Video started : %s » % video_started)
time.sleep(0.2)

Pouvez vous le dire ou je me foire. j’ai l’impression que l’action sur le bouton poussoir n’est bien détectée.

Merci

Cdt

Nico

Salut ,
pour tout se qui touche a port gpio je peux pas t’aider , je m’en suis jamais servis

par contre tu peux reposter ton code en utilisant les balises?
car la du code sans indentation sa donne pas envies de le lire (ici pour le mode d’emploie Comment copier du code python dans ce forum? - Python - Le Forum français de la Raspberry Pi - Raspberry Pi FR (Raspbian France))

et c’est très difficile a corriger et tant qu’a faire commente ton code ,plus facile a lire pour le correcteur .

sinon dans les erreur il y a la

tu oublie la parenthèse de fin

c’est celle qui ma sauté au yeux

Re,

  • Je met le script en dessous. Je tiens à précisé que je l’ai récupéré sur le net ici ( http://tech.mirelsol.org/doku.php/projects/raspberry_launch_video_button )

  • c’est le script d’origine, la seule modification que j’ai faite c’est de changer l’extension du fichier video.mov en video.mp4 car mon fichier est dans ce format.

  • dans le code d’origine, il n’y a pas de parenthèse à la fin de la commande omxplayer. d’ailleurs, si j’en met une, j’ai une erreur avec la ligne d’après (stdin=subprocess.PIPE,) je me retrouve avec un accès sous le stdin.

  • pour info, je suis sous python 2.7.9

Merci d’avance si quelqu’un peut me dépatouiller.

Cdt
Nico

import subprocess, time
import RPi.GPIO as GPIO
INPUT_PIN = 3
 
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(INPUT_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
 
video_started = False
play_process = None
val = -1
 
while True:
    val = GPIO.input(INPUT_PIN)
    if val == 0: # Button pressed
        print("Button pressed")
        if not video_started:
            play_process = subprocess.Popen(['omxplayer','../resources/video.mov'], 
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE, 
                close_fds=True)
    if play_process != None:
        video_started = play_process.poll() == None
    else:
        video_started = False
    print("Video started : %s" % video_started)
    time.sleep(0.2)

oui pardons j’avais pas fait gaffe c’était un bloc , avec les indentation c’est plus clair :slight_smile:

apparament ton message d’erreur RuntimeWarning: A physical pull up resistor is fitted on this channel!

sa vient du montage de ton bouton il est pas sr les bon pin [solved] Controlling a fan on a relay with python - Raspberry Pi Forums

Salut,

Je regardé ton lien, effectivement,j’avais un problème de câblage, je me suis connecté sur la prise 6 pour le GND et la 10 pour le poussoir. j’ai modifier le port d’écoute dans le script comme suit ( INPUT_PIN = 10)

Je n’est plus de message d’erreur et lorsque je j’active le poussoir, la réponse du script change.

voilà se que ça me donne.

pi@raspberrypi:~ $ python launch3.py
Video started : False
Video started : False
Button pressed
Video started : True
Video started : False
^CTraceback (most recent call last):
  File "launch3.py", line 27, in <module>
    time.sleep(0.2)
KeyboardInterrupt
pi@raspberrypi:~ $ 

le bouton est bien détecté mais la vidéo ne se lance pas… une petite idée peut être ?

Merci

Nico

c’est bizarre l’exception , sa indique que tu fermes le programes avec ctrl+C c’est pas le cas ?

ensuite sa parle de la dernier ligne
essaie de retirer time.sleep

Si si c’est bien le cas. J’arrête le script par ctrl+c vu que ma vidéo ne se lance pas. Je ne vais pas le laisser tourner pour rien…

C’est pas tout, quand ce script fonctionnera, faut que je le mette en service pour qu’il démarre tout seul et surtout, ne plus avoir la fenêtre qui défile. Deuxième chose, que je monte une clé pour stocker mon fichier car il sera trop gros pour ma sd.

A+
Nico

En regardant le script. Je vois ça :
if play_process != None:

Le ‹ None › devrait sur la ligne du dessous normalement… Je vais essayer ça se soir en rentrant

Slt

Ta vidéo se lance pas ,
bizarre pourtant ta ligne est correct , c’est peut être ton chemin qui a pas bon,
car la ton chemin sa m’indique que tu a un dossier pi dans un dossier pi est que a l’intérieur du qu’elle tu a un dossier vidéo

sa donne sa /home/pi/pi/Videos/essai.mp4

t’a un doublons mais c’est peut être normal ?

si c’est pas le cas corrige ta ligne comme suis

play_process = subprocess.Popen([‹ omxplayer ›,’…/Videos/essai.mp4

car …/ sa veut dire le dossier dans le qu’elle tu te trouve , et quand tu initialise un terminal , tu te trouve dans /home/pi donc derrière le …/ il cherche le /pi

sinon si ta vidéo est belle et bien dans /home/pi/Videos/

tu peux faire comme sa

play_process = subprocess.Popen([‹ omxplayer ›,’~/Videos/essai.mp4

~/ sa veux dire le dossier de l’utilisateur connecté sa veux dire dans ton cas toi (pi) donc /home/pi

Point culture :

Oui il y a une grosse différence entre …/ et ~/
car pour le premier si tu te trouve dans un autre dossier (avec un cd dans un script )
celui si cherchera dans le dossier actuelle (c’est qu’on appelle un chemin relatifs )

hors ~/ renverra toujours dans le répertoire utilisateur

2 raccourci différent

Salut jojo.

J’ai réussi ! c’est très con, je ne suis pas sur le raspberry en direct, je me connecte dessus en vnc, la résolution n’est pas bonne, du coup je ne peux pas diffuser. enfin je suppose que c’est ça/ en direct dessus ça marche ( boulet !!!)

bon il reste quelques problèmes à gérer :

  • je veux que le script tourne en tache de fond ( du coup il faut le mettre en tant que service je suppose) comme ça on ne voit plus en arrière plan le terminal indiquant video false…
  • que la vidéo soit en pleine écran (actuellement on voit la barre des taches)
  • que je stock ma vidéo sur une clé parce que sur la SD ça ne va pas le faire.
  • que le son sorte par la sortie casque

Tu peux me filer un coup de main pour ça ?

Merci Jojo, t’es un dieu :smile:

Yo @nico29,

Cool donc sa venait juste de vnc ou de modifier la ligne ?

non tu peux pas diffuser omxplayer sur vnc enfin si ,mais pas vnc dans l’état ,

je développe pas pour pas être HS, si tu est curieux tu peux aller voir la on parle de la raison de sa ici Kody & VNC, par tunnel ssh? - Aide - Le Forum français de la Raspberry Pi - Raspberry Pi FR (Raspbian France)

bon passons au cahier des charges , c’est dans mes cordes normalement (toujours mettre le conditionnels mdr )

je vais juste te posser quelle que question

1)normalement omxplayer couvre le terminal sur ton ecran hdmi non ?

2)non pas besoin on peut carrément ne pas lancer de terminal en faite, donc sa résout aussi ton problème de tache de fond , par contre une question comment tu ferme ton script ou comment compte tu le fermer ?

  1. doit t’il se lancer au démarrages du pi ?

la se sera a toi de faire ton réglage selon la dimension de ton écran
c’est simple il faut tu lance omxplayer (sans le script ) avec le chemin ta vidéo et en rajoutant l’option
–win
exemple pour du 640 sur 480

omxplayer --win ‹ 0 0 640 480 › ~/Videos/essai.mp4

la suite de chiffre peux paraître bizarre car en faite c’est

–win ‹ x1 y1 x2 y2 ›

x1 y1 = coin supérieur gauche
x2 y2 = coin inférieur droit

et il faut remplacer ces valeur comme on la vu dans l’exemple plus haut

don tu peux laisser x1 y1 a 0

et une fois tu a les bonne valeur et qu le résultat te conviens tu aura plus qu’a l’intégrer dans le script

cette partie peut être fastidieuse a trouver le bon réglages ,mais bon jpourais pas le faire a ta place sa

ben t’a juste a stocker la vidéo sur ta clé et mettre le chemin de ta clé et la vidéo a la place de ~/Videos dans le script

la j’ai envie dire cherche un peu c’est pas compliqué :wink:

Re,

Alors ça venait de vnc. j’ai compris lorsque j’ai essayé de diffuser à partir du terminal la vidéo avec le son sur le casque avec l’option -o local est que ça ne diffusait pas.

pour la fermeture du script, je laisse clavier et souris branché sur le RP mais non accessible au public, si la vidéo est lancée, je ferais un CTRL+C si elle ne l’est pas j’éteins le RP a partir des menus; maintenant je supose que si on lance pas le script a partir du terminal, on ne peut pas faire de CRTL+C… donc je te dirais que je n’en sais rien mdr.

  1. pour le plein écran, sur mon écran de PC, je vois la barre des taches et le script sur les bords. en diffusant sur une TV non HD c’est bon

  2. il faudrait ne pas le lancer à partir du terminal mais en tache de fond car lorsque la diffusion n’est pas en cours, je me retrouve sur le bureau avec le script qui tourne indiquent vidéo false sans arrêt. c’est pas gérable, c’est pour ça que je voulais mettre le script en service, il serait d’une part caché et d’autre part se lancerait au boot de raspberry.

  3. répondu au dessus.(oui lancement du script en auto lors du boot

  4. vidéo plein écran apparemment c’est bon sur mon veille écran non HD, sur une HD c’est pas bon. si j’ai bien compris, si je dois diffuser sur un support HD, je dois me farcir les points x/y

  5. lancement sur la clé, je suppose qu’en nommant toutes mes clefs de la même manière, ça va le faire (USB DISK)
    j’ai modifié le script pour ouvrir le chemin absolu
    « /media/pi/USB DISK/videos/fichier.mp4 »
    il y a rien d’autre à faire à faire ?

  6. j’ai bien réussi à diffuser le son sur la sortie jack sous terminal en rajoutant -o local dans la ligne de commande, mais en python, ça ne marche pas pareil les options de omxplayer.

j’ai essayé comme ça play_process = subprocess.Popen([‹ omxplayer -o local ›,’…/Videos/essai.mp4"
j’ai essayé comme ça play_process = subprocess.Popen([‹ omxplayer ›,’-o local’,’…/Videos/essai.mp4"

j’ai trouvé des exemples de script avec a ligne en dessous, je l’ai adapté en remplaçant -o hdmi en - o local et en enlevant la partie des sous titre mais ça me sort un message d’erreur :
(« omxplayer -r -o hdmi {} --align center --font-size 70 /home/pi/bin/omfifo »)

je n’ai aucune idée comment taper une commande en python…

A+

Nico

Salut , j’ai pas trop le temps aujourd’hui je vais répondre a une seule question celle concerne subprocess

bon alors déja il y a une grosse erreur de syntaxe

si tu ouvre avec sa ’ du ferme avec sa ’
tu fais pas 'exemple" se que tu a fait plus haut

donc pour toi c’est ‹ exemple ›

donc la bonne ligne c’est

play_process = subprocess.Popen([‹ omxplayer ›,‹ -o ›,‹ local ›,‹ …/Videos/essai.mp4 ›

a chaque argument une virgule et celle si entre ’ ’

j’ai tester avant ,sa marche je n’étais plus sur car il existe subprocess.call qui fonctionne autrement

quand c’est comme sa ,on consulte la doc propre au module ,nous non plus on connait pas par coeur j’ai maté dans la doc avant de testé :wink: surtout python 2 j’utilise pas

voici la doc 17.1. subprocess — Subprocess management — Python 2.7.18 documentation

pour ta décharges elle est en anglais ,mais bon je trouve que les exemple sont parlant

Salut,

C’est bon nickel, il me manquait effectivement des ’ dans ma ligne…

reste plus qu’a mettre le script en route lors du boot.

ça devient bon !

A+
Nico

Salut content que sa avance :slight_smile:

justement cette partie ,n’est pas compliquer pour moi , mais est crucial , c’est pour sa qu’avant de définir la facon de le faire booter il faut que me dise comment tu souhaite fermer le programme car tu a vu juste ,(d’ailleur t’est un des premier débutant a avoir anticipé le probléme )

oui car si ton script est lancer hors terminal le ctrl+c marchera pas ,donc c’est tout le probléme c’est comme lancer un programme graphique sans fenetre de fermeture et isoler du reste du système,
car oui on peux pas faire apparaitre quelque chose au dessus de omxplayer par se que sinon un simple kill process aurais suffit , a par si tu peux te conecter en ssh en vnc au pi ,la le kill fonctionera
c’est pas pour rien que j’avais parler de sa [quote=« jojo, post:4, topic:2813 »]
c’est dans cette situation la que c’est compliqué disont avec les solution que j’ai en tete , car pour pas trop rentrer dans le technique dison que l’affichage de la vidéo va prendre tout l’ecran mais plus précisent va monopoliser le serveur X (c’est l’affichage si tu préfère ) ,

Donc faire apparaître un truc par desus , sa me parait difficile , pas faute d’avoir essayer
[/quote]

Donc le plus simple serait de lancer l’apli dans un terminal

P.S : il est possible d’appeler un signal SIGINT (le fameux controle +C) il y a un module pour sa dans python fournit de basse , il s’appelle d’ailleurs signal 17.4. signal — Set handlers for asynchronous events — Python 2.7.18 documentation

je les jamais tester sur python,mais si sa fonctionne de la même façon quand shell sa ne fonctionnera pas

Tout sa pour dire que tant qu’on sait pas comment fermer ton programe je peux pas te concevoir le lanceur , je te conseille le terminal

Salut Jojo, content d’avoir trouvé quelque chose mouahahah.

J’étais sur le problème hier soir. Sur ce lien ( http://www.framboise314.fr/systemd-tout-nouveau-tout-beau-ou-pas/#Installer_tightvncserver) ils mettent vnc en service et l’active par un start / stop a partir du terminal.

Ça pourrait le faire car omxplayer se referme après chaque lecture. J’ai donc la main sur le bureau.

Après je ne vois pas ce qui pose problème. Pourquoi tu veux absolument sortir du script, Il va rester 3 mois en place le RP. Le temps du vernissage après il ira faire autre chose.

T’en pense quoi ?

Accessoirement c’est quand même abuser le merdier pour lancer quelque chose au démarrage…
J’ai essayé avec rc. Local mais ça ne fonctionne plus sous jessie !
Il y a pas moyen de coller un raccourci dans un répertoire démarrage (genre win98…) lol

A+

Nico