IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Lire une liste de fichier mp3 avec un raspberry


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Points : 151
    Points
    151
    Par défaut Lire une liste de fichier mp3 avec un raspberry
    Salut,

    J'ai un raspberry pi3 qui tourne avec stretch.
    Je voudrai diffuser une liste de fichier de musique en mp3 à l'aide de omxplayer,
    lecteur multimédia en ligne de Linux.
    Je me place dans le répertoire des fichiers musique et je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls *.mp3 | xargs -d '\n' omxplayer -o alsa
    Le lecteur joue le premier morceau, puis s'arrête.

    Faut-il écrire un script Shell , ou bien il existe une autre commande pour arriver au même résultat ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 391
    Points
    19 391
    Par défaut
    Bonjour,

    il ne faut pas réutiliser la sortie de ls.

    on utilise le globbing* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    omxplayer -o alsa ./*.mp3
    ?

    cf. man bash
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 465
    Points : 43 273
    Points
    43 273
    Par défaut
    Le logiciel doit également être capable d'utiliser un fichier m3u. Ca peut être plus pratique qu'un *.mp3 si tu veux écouter juste certains morceaux par exemple.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Points : 151
    Points
    151
    Par défaut Merci
    Merci à vous deux.
    Faudrait quand même que je bosse les scripts Shell ...
    A+

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Points : 151
    Points
    151
    Par défaut toujours omxplayer pour liste de fichiers son
    Bon, voilà mon problème:

    On m'a demandé de diffuser de la musique en continue à l'aide d'un raspberry pi 3 tournant sous stretch.
    J'utilise omxplayer car il gère l'accélération matérielle.

    Si je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    omxplayer -o alsa mon_fichier.mp3
    alors ça marche nickel.

    Mais si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    omxplayer -o alsa mon_fichier_1.mp3 mon_fichier_2.mp3
    alors uniquement le premier fichier est lu.

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    omxplayer -o alsa fichier1.mp3;omxplayer -o alsa fichier2.mp3
    C'est idem, seul le premier fichier est lu.

    On m'a dit sur le forum que je pouvais utiliser une playlist du type m3u
    Serait-ce la solution ?
    Puis-je avoir un exemple ?

    Je ne comprends pas pourquoi omxplayer refuse de jouer plusieurs fichiers son à la suite.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 391
    Points
    19 391
    Par défaut
    Serait-ce la solution ?
    le man ne semble pas prévoir cette possibilité.

    Je ne comprends pas pourquoi omxplayer refuse de jouer plusieurs fichiers son à la suite.
    pour ça, il faudrait lire le code source du programme...

    On m'a demandé de diffuser de la musique en continue[...]
    alors c'est un exercice, et il faut donc te familiariser avec les boucles shell.

    Il faut être précis sur ce que tu veux faire
    lire les fichiers d'un répertoire, une fois, avec une boucle for,
    lire les fichiers d'un répertoire, indéfiniment ou un certain nombre de fois, avec deux boucles while et for,
    lire des fichiers dont le nom est inscrit dans un fichier, une fois, avec une boucle while,
    ...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Points : 151
    Points
    151
    Par défaut Problème résolu à la main
    Merci pour l'aide.
    J'ai résolu mon problème autrement.
    J'ai fais ls *.mp3 > playlist.txt.
    Puis , j'ai édité le fichier et j'ai rajouté cat au début et mis toute la liste des fichiers entre guillemets à la main ( 180 ! ).
    Puis, j'ai rajouté > playlist.mp3 à la fin du fichier.
    Enfin , j'ai sauvé le tout dans cmd_playlist.txt.
    J'ai fais alors un cat cmd_playlist.txt, que j'ai recopié avec la souris.
    Puis, finalement, j'ai exécuté la commande.
    Omxplayer lit le fichier concaténé mp3 sans problèmes et je dispose ainsi de plus de huit heures de musique en continue.
    Je sais, c'est une solution bourrin, mais je ne connaît pas encore les commandes du Shell en détails.
    J'ai bien l'intention de m'y mettre quand j'aurai le temps.

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 391
    Points
    19 391
    Par défaut
    mouais.
    pour faire proprement, avec sox* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ sox ./*.mp3 /tmp/concat.mp3
    $ omxplayer /tmp/concat.mp3
    je te l'ai déjà dit : ON N'UTILISE PAS ls !!!
    soit c'est piégeux, soit c'est inutile.
    en l'occurrence, c'est inutile : c'est le shell qui fait le Développement des chemins (./*.mp3).

    * il faut avoir sox : c'est un outil indispensable quand on manipule de l'audio.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Points : 151
    Points
    151
    Par défaut Connaisait pas !
    Ah oui! sox est super !
    Je me suis emm***dé pour rien, mais bon c'est comme ça qu'on apprend.
    Merci pour cette commande très puissante qui va me simplifier la vie.
    D'autre part, je promet de mettre de mettre les balises codes, et de ne plus utiliser ls !

    Merci et A+

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 391
    Points
    19 391
    Par défaut
    c'est bien

    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Non mais ça va pas ?!
    Alors si je vous donne un disque dur rempli de mp3, vous allez dupliquer le disque dur, juste pour lire un fichier ?

    Naturellement, on peut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mplayer -cache 8192 <(cat ~/Musique/*.mp3)
    Donc avec omxplayer, cela doit donner un truc comme cela : (non testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    omxplayer --audio_queue 8  <(cat ~/Musique/*.mp3)
    --audio_queue n où n est la taille en Mo.

    Explications non évidentes :
    • Si on utilise un pipe classique, le lecteur perd le contrôle de l'entrée standard. Ce qui n'est pas le cas, ici, avec la substitution de processus.
    • L'augmentation du cache évite de perdre les premières notes au début.
    • Il s'agit bien d'un flux. Donc pas question de revenir en arrière. Par contre, en avant, oui.
    • D'autres scripts sont possibles. Mais vu le maigre cahier des charges ...
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/04/2010, 10h10
  2. [SP-2007] lire une liste de fichier infopath comme bdd
    Par benneb dans le forum SharePoint
    Réponses: 3
    Dernier message: 23/11/2009, 08h52
  3. Réponses: 0
    Dernier message: 11/02/2008, 18h01
  4. [AJAX] retourner et lire une liste avec ajax
    Par _momo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/08/2007, 15h13
  5. Lire un fichier mp3 avec Java
    Par hebmaster dans le forum Multimédia
    Réponses: 2
    Dernier message: 18/05/2007, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo