Execution de fichier audio avec motioneye sur raspberry pi3 [Résolu]

- - Dernière réponse :  Damdam - 8 déc. 2019 à 19:38
Bonsoir,

j’ai récemment installé motioneye sur mon raspberry pi3, je souhaiterai lancer un fichier mp3 lors de la détection de mouvement.Or après de nombreuse recherche et essai je ne réussi pas à entendre le fichier audio.
J’ai fait plusieurs script notamment en python et sh je vois bien que le script s’exécute (je crée un fichier dans le script puis je lance le fichier mp3). Le fichier se crée correctement mais je ne sais pas se qu’il se passe pour le fichier audio.En console le script s’exécute correctement et le son est audible sans aucun souci.

Quelqu’un pour une idée ?
Afficher la suite 

17 réponses

Meilleure réponse
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714
1
Merci
Bonjour,

Les erreurs lirc ne sont pas grave (c'est pour gérer des télécommandes infra rouges, on peut les ignorer). Je ne vois pas d'erreur. Est-ce que si tu lances cette commande
mplayer
depuis un terminal et avec ce fichier son, tu as du son ? Vérifie notamment le volume, si les enceintes sont allumées etc.

Et vérifie que
pi
est dans le groupe
audio
:

grep audio /etc/group


Bonne chance

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 62798 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714
0
Merci
Bonjour,

Le message n'est pas très clair à ce stade.

Un fichier mp3 ne s'exécute pas puisque c'est un fichier de données. On peut imaginer exécuter un lecteur mp3 (e.g.
mplayer
) et passer en paramètre le chemin du fichier mp3. Je ne sais pas comment marche
motioneye
, mais dans le doute, j'aurais tendance à passer le chemin absolu du fichier mp3 (e.g. /home/toto/musique.mp3).

Ensuite ce serait peut-être intéressant de nous indiquer :
  • le contenu du script et de voir ce qu'il retourne quand tu l'exécutes dans un terminal
  • comment tu configures
    motioneye
    pour déclencher ton script. Là aussi, passer le chemin absolu vers le script est sans doute une bonne idée...
  • quel utilisateur lance
    motioneye
    . En outre, est-ce que cet utilisateur a des droits suffisants pour exécuter le script et accéder au fichier mp3 ?


Bonne chance
Commenter la réponse de mamiemando
Messages postés
5
Date d'inscription
mardi 22 avril 2014
Statut
Membre
Dernière intervention
26 novembre 2019
0
Merci
Bonsoir,

voici le script python que j'ai déjà testé sans succès.


je l'ai déja passé en exécutable via la commande chmod. Lorsque je l’exécute en console le fichier tmp.txt est créé avec "test" écrit dedans et la fichier mp3 est joué sur l'enceinte branché en jack sur mon raspberry pi.
Concernant motioneye je l’exécute avec sudo systemctl start motioneye.
Pour lancer le script j'ai déja testé avec python /home/xx/lecture.py ou sudo python /home/xx/lecture.py ou directement /home/xx/lecture.py.
Commenter la réponse de chtroomfboy
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714
0
Merci
Bonjour,

Tu aurais pu copier coller le script python plutôt que faire une capture d'écran et utiliser les balises de codes (c'est plus lisible).

Est-ce que le fichier temporaire est créé si l'appel est déclenché par
motioneye
? Essaye le temps de tester de placer le mp3 et ton script dans /tmp en corrigeant les différents chemins en conséquences. Cela permettra de voir si c'est un problème de droit.

Essaye d'exécuter le script avec la commande
python3 /tmp/lecture.py
. En particulier la ligne shebang est généralement la première ligne du fichier. C'est peut-être la cause de ton problème (le script est alors potentiellement vu comme un script shell et plante car il est écrit en python).

Bonne chance
Commenter la réponse de mamiemando
Messages postés
5
Date d'inscription
mardi 22 avril 2014
Statut
Membre
Dernière intervention
26 novembre 2019
0
Merci
Bonsoir
Alors oui le fichier tmp est bien créé mais j'ai déjà essayé avec celui-ci aussi:
  #!/bin/sh
mplayer /home/pi/son/0267.mp3


ça fonctionne bien dans la console et dans le fichier /tmp/
chtroomfboy
Messages postés
5
Date d'inscription
mardi 22 avril 2014
Statut
Membre
Dernière intervention
26 novembre 2019
-
mais pas dans motioneye
Commenter la réponse de chtroomfboy
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714
0
Merci
Ok essayons de voir si tu arrives déjà depuis motioneye a lancer une commande shell. Supposons qu'au lieu d'appeler ton script shell, tu lances :

touch /tmp/toto


Est-ce que le fichier toto est bien recrée quand un mouvement est détecté (compare la date avec la commande qui suit, ou supprime ce fichier entre chaque mouvement) ?

ls -l /tmp/toto


Bonne chance
Commenter la réponse de mamiemando
0
Merci
Bonsoir,

oui , le fichier toto est bien créé.
mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714 -
Ok et avec ce script est ce que toto et tata sont bien créés? Copie un fichier son (il doit y en avoir au besoin dans
/usr/share/sounds
) dans
/tmp
. Un fichier wav minimisera les éventuels problèmes de greffons.

cp /usr/share/sounds/alsa/Front_Center.wav /tmp


Ensuite modifie ton script :

#!/bin/sh
touch /tmp/toto
mplayer /home/damdam/Front_Center.wav
touch /tmp/tata


(en adaptant le chemin vers le son à jouer).

Est-ce que les fichiers
/tmp/toto
et
/tmp/tata
sont bien (re)créés ? As-tu du son ?

a+
Marco
Commenter la réponse de Damdam
0
Merci
Salut,

j'ai lancé d'abord dans la console la commande:
bash /home/pi/son/son.sh

Là !! Nickel les fichiers toto et tata son bien créés et le ficher .wav est bien joué.

Dans motioneye les fichiers sont correctement créés mais je n'entend pas le fichier audio.
Commenter la réponse de Damdam
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272
0
Merci
Salut,

Je ne connais pas du tout
motioneye
(même si j'ai déjà utilisé
motion
par le passé
) et à tout hasard regarde si un utilisateur du même nom a été créé, et si oui, s'il fait parti du groupe
audio


Commenter la réponse de zipe31
Messages postés
5
Date d'inscription
mardi 22 avril 2014
Statut
Membre
Dernière intervention
26 novembre 2019
0
Merci
Bonjour zipe,

Peut tu m'indiquer la marche a suivre pour vérifier tous celà stp.

Merci et bonne journée.
zipe31
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272 -
Avec la commande
cat /etc/group
tu auras la liste de tous les groupes avec les identifiants en rapport…
zipe31
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272 -
Et
cat /etc/passwd
pour les identifiants…
mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714 -
En complément à ce que dit zipe31 : vérifie qui instancie le script shell (est-ce root, ton utilisateur, un utilisateur associé à motioneye).

Tu peux corriger le script que je t'ai donné comme suit pour savoir :

#!/bin/bash
echo $(whoami) /tmp/toto
mplayer /home/damdam/Front_Center.wav


Regarde ensuite dans
/tmp/toto
le nom de l'utilisateur. Regarde s'il est dans le groupe audio avec la commande
grep audio /etc/group
.

Exemple : Ici, les utilisateurs
pulse
et
mando
font partie du groupe
audio
. Note que les logins sont séparés d'une virgule.

(mando@silk) (~) $ grep audio /etc/group
audio:x:29:pulse,mando


Dans ton cas, si le nom d'utilisateur qui apparaît dans
/tmp/toto
n'est pas dans le groupe
audio
, corrige ce fichier pour l'y ajouter.

pkexec gedit /etc/group &


Sauve quitte et redémarre pour être sûr que les changements soient bien pris en compte.

Assure-toi aussi que quand tu invoques ton script (mettons
/home/damdam/script.sh
), ses résultats sont redirigés dans un fichier dans lequel tu pourras retrouver les éventuelles erreurs :

/home/damdam/script.sh 1>/tmp/script.log 2>/tmp/script.log


... puis reporte-nous le contenu de
/tmp/script.log
.

Bonne chance
Commenter la réponse de chtroomfboy
0
Merci
Bonsoir,

L'utilisateur est "root".
J'ai modifié le fichier groupe, sauvegardé puis fais un reboot du raspi .
J'ai vérifié avec
grep audio /etc/group
audio:x:29:pi,pulse,root

sans résultat.

J'ai testé dans la console avec
sudo bash

pour exécuter mon script et j'ai obtenu le même contenu que dans le fichier .log ci-dessous.

Voici le résultat du fichier .log.
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 48000 Hz, 1 ch, s16le, 768.0 kbit/100.00% (ratio: 96000->96000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
[AO_ALSA] alsa-lib: pcm_hw.c:1602:(snd_pcm_hw_open) open '/dev/snd/pcmC0D0p' failed (-2): No such file or directory
[AO_ALSA] alsa-lib: pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa'
[AO SDL] Samplerate: 48000Hz Channels: Mono Format s16le
[AO SDL] using aalib audio driver.
[AO SDL] Unable to open audio: No available audio device
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video


Exiting... (End of file)
mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714 -
Bonjour,

Je pense que la certains de tes problèmes sont liés au fait que tu travailles en root (mais pas uniquement).
  • D'une part, ça ne sert à rien d'ajouter root dans un groupe. Il a déjà tous les droits.
  • D'autre part, on évite autant que possible d'être root, pour rendre le système plus sûr. Ici on parle d'une application utilisateur qui n'a aucune raison d'être lancée en root.


J'espère au passage que tu n'es pas identifié en tant que root lorsque tu lances ta session graphique, mais bien avec un vrai profil utilisateur.

Le fait que pulse (qui s'occupe du son) plante à l'initialisation explique pourquoi tu n'as pas de son. Pas de connexion à pulse, pas de son. Comme le montre la commande
ls -l /dev/snd
, l'utilisateur qui joue du son (donc celui qui lance mplayer, donc celui qui lance ton script, donc celui qui a lancé motioneye, donc a priori ton profil utilisateur) doit appartenir au groupe
audio
. Il faut aussi que pulse soit "câblé" sur un device qui existe (or ce ne semble pas être le cas).

Donc en résumé :
  • réinstalle
    pulseaudio
    et regarde si ton problème n'est pas lié à une mauvaise configuration en cherchant ton message d'erreur sur google (voir par exemple cette discussion)
  • lance
    motioneye
    avec ton profil utilisateur,
  • assure-toi qu'il est dans le groupe
    audio
    ,
  • puis reteste.


Bonne chance
Commenter la réponse de Damdam
0
Merci
Bonsoir,

J'ai fait une réinstallation de pulseaudio sans résultat.

Je ne comprend justement pas pourquoi en utilisateur "pi" ça fonctionne bien et pas en superutilisateur "root".
j'ai essayé de lancer motioneye en "pi" mais l'exécution du script se fait toujours en "root".

On avance , en tout cas
Commenter la réponse de Damdam
0
Merci
Voilà le fichier .log quand le script est exécuté en "pi"

MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
mplayer: could not open config files /home/pi/.lircrc and /etc/lirc/lircrc
mplayer: No such file or directory
Failed to read LIRC config file ~/.lircrc.

Playing /tmp/Front_Center.wav.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Audio only file format detected.
Load subtitles in /tmp/
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 48000 Hz, 1 ch, s16le, 768.0 kbit/100.00% (ratio: 96000->96000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] 48000Hz 1ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 0.0 (unknown) of 1.0 (01.0) ??,?% ^[[J^MA: 0.1 (00.0) of 1.0 (01.0) ??,?$


Exiting... (End of file)
Commenter la réponse de Damdam
0
Merci
Bonjour,

lorsque j’exécute mon script en pi le son fonctionne. C'est pour ça que je ne comprend pas pourquoi en utilisateur "pi" ça fonctionne bien et pas en superutilisateur "root".
zipe31
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272 -
On peut voir la sortie de
ls -lh /chemin/ton_script
?
Commenter la réponse de Damdam
0
Merci
pi@raspberrypi:~ $ ls -lh /home/pi/son/son.sh
-rwxr-xr-x 1 root root 147 nov. 26 22:59 /home/pi/son/son.sh
zipe31
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272 -
Pourquoi il appartient à "root" ton fichier ?
Quand tu dis que tu le lances en tant qu'utilisateur "pi", tu dois utiliser
sudo
, non ?

Change son utilisateur pour "pi" (
sudo chown pi:pi /home/pi/son/son.sh
)
mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714 -
Bonjour

@zipe31

Vus les droits associés à son fichier, il peut appartenir à root tout en étant lancé par un utilisateur vu que celui-ci aura les droits en lecture et exécution. Pas besoin de
sudo
, et ici il n'y aucune bonne raison de l'utiliser.

@DamDam

Lorsque j’exécute mon script en pi le son fonctionne. C'est pour ça que je ne comprend pas pourquoi en utilisateur "pi" ça fonctionne bien et pas en superutilisateur "root".

Il ne faut pas lancer ce script en root ni avec
sudo
. Et il faut que ta session graphique soit ouverte avec ton utilisateur
pi
. Il ne faut jamais lancer une session graphique en root. Si c'est ce que tu as fait, c'est ce qui peut expliquer ton problème de son.

Bonne chance
zipe31
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272 > mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
-
@zipe31
Vus les droits associés à son fichier, il peut appartenir à root tout en étant lancé par un utilisateur vu que celui-ci aura les droits en lecture et exécution. Pas besoin de
sudo
, et ici il n'y aucune bonne raison de l'utiliser.
Effectivement. Merci.

Par contre mplayer est une application graphique et c'est sûrement cela qui fiche le bazar, non ?
Il faudrait essayer avec une application "cli" comme
aplay
:
aplay /home/pi/son/0267.mp3
mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
6714 -
Hello zipe31, non non
mplayer
marche en mode texte. Mais il existe effectivement des interfaces graphiques (comme
smplayer
).
zipe31
Messages postés
37584
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
9 décembre 2019
4272 > mamiemando
Messages postés
29090
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 décembre 2019
-
Salut,

Arf, effectivement, je ne sais pas pourquoi j'étais persuadé que mplayer était le pendant linuxien de Windows Media Player ;-\

Quelle triple buse fais-je ;-)
Commenter la réponse de Damdam
0
Merci
bonsoir,

j'ai eu un souci avec ma webcam elle ne fonctionne plus du tout.je devrait bientôt recevoir la nouvelle.
je ferais le test a son arrivée.

merci encore pour votre aide.
Commenter la réponse de Damdam
0
Merci
Bonsoir

J'ai bien reçu ma nouvelle webcam.
Après une réinstallation de mon raspi le script avec aplayer fonctionne correctement lors de la détection de mouvement.
Je ne sais pas trop d’où venait le bug sachant que je n'ai pas encore installé mplayer.

merci pour votre soutien.
Ce sujet peut être mis en résolu.
Commenter la réponse de Damdam