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 :

Projet d'interphone - Streaming audio


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut Projet d'interphone - Streaming audio
    Bonjour à tous!

    Voilà moi je suis sur un projet d'interphone avec 2 raspberry, j'ai choisi ce qui me paraissait le + simple:

    enregistrer un son avec arecord, l'envoyer par ssh sur un autre raspberry, qui le lit avec aplay.

    Tout fonctionne à merveille, hormis évidemment une certaine latence.. Quand je me suis dit "Mais pourquoi ne pas enregistrer mon fichier .wav directement sur le serveur distant, qui lui va le lire avant même que le fichier ne soit terminé d'être enregistré?"

    J'ai testé en local (sur la même machine) en faisant 2 scripts python, un qui enregistre le .wav: (ici durant 8sec)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     arecord -D plughw:1 -d 8 test.wav
    et un qui le lit:
    il le lit avec 2 sec de décalage, donc nickel

    Maintenant voici ce que je n'arrive pas à faire, j'aimerai enregistrer le .wav mais sur la machine distante, qui elle le lira
    un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord -D plughw:1 -d 8 scp test.wav pi@raspberry:/home/pi
    ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh pi@raspberry 'arecord -D plughw:1 -d 8'
    Ca ne marche pas, est-ce ma syntaxe qui n'est pas juste, ou est-ce que ce n'est tout simplement pas possible?

    Merci d'avance

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    dans l'esprit il faudrait plutôt un truc dans ce style là à mon avis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord -D plughw:1 -d 8 <( ssh pi@raspberry 'arecord -D plughw:1 -d 8' )
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh pi@raspberry 'arecord -D plughw:1 -d 8' | arecord -D plughw:1 -d 8 -
    à tester

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut
    Re,

    Merci de ta réponse mais ça ne marche pas non plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord -D plughw:1 -d 3 <( ssh pi@rasptalk-a 'arecord -D plughw:1 -d 3' )
    me retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord: main:722: audio open error: No such file or directory
    j'ai tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord -D plughw:1 -d 3 <( ssh pi@raspberry '/home/pi/01.wav')
    mais en vain

    et pour la suivante je ne comprends pas l'utilisation d'un pipe dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh pi@raspberry 'arecord -D plughw:1 -d 8' | arecord -D plughw:1 -d 8 -
    car il va l'exécuter après l'enregistrement en non en même temps, non? (et ça ne marche pas non plus)

    Comment puis-je lui indiquer un chemin de fichier distant? Pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord -D plughw:1 -d 3 scp://serveur-distant//home/pi/01.wav
    ne marche pas?
    J'ai bien essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat scp://serveur-distant//test.txt
    mais ça ne marche pas, ce serait trop simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arecord -D plughw:1 -d 3 test.wav && scp test.wav pi@serveur-distant:/home/pi
    en revanche fonctionne, mais il envoie le fichier après son enregistrement alors que je veux soit qu'il l'envoie en même temps, soit qu'il l'enregistre sur le serveur..

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Salut,

    tu peux pas faire l'inverse ?

    enregistrer sur ton pc mais demander à aplay de lire le fichier présent sur ton pc ?

    Peut-être que aplay peut le faire non ?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut
    Salut,

    L'idée est bonne, d'enregistrer en local et de venir le lire en ssh de cette façon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh pi@raspberry 'aplay fichier.wav'
    seulement il le lit dans les haut parleur du pc local et non sur ceux de celui qui s'y connecte en ssh donc ça ne m'aide pas

    Aargh je suis sûr que ça doit être possible d'enregistrer le son sur un serveur distant, je vais continuer de chercher
    ça doit être tout bête en +

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    et en montant en local le pc enregistrant, afin que le aplay lise comme un fichier local ?

    https://doc.ubuntu-fr.org/sshfs

    pc2 monte pc1 comme un dossier local.
    pc1 enregistre en local.
    pc2 écoute le fichier comme s'il était en local.

  7. #7
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par la.couenne Voir le message
    (...) ça ne marche pas (...)
    ok, pour être honnête j'ai répondu à la va-vite hier sans trop chercher à comprendre, mea culpa

    les manpages respectives de aplay et arecord précisent que :
    If filename is not specified, the standard output or input is used
    donc pas besoin d'utiliser de fichier temporaire ou autre, la syntaxe ssh machine "arecord" | aplay peut fonctionner à coup sûr, modulo les options (j'ai pas de quoi tester)

    et pour répondre à ta question intermédiaire, non, ça s'exécute pas après c'est bien en même temps, et c'est la sortie (stdout) de ssh qu'on redirige vers l'entrée (stdin) de aplay, parfois certains programmes prévoient un nom de fichier spécifique pour symboliser qu'il faut lire sur l'entrée standard, d'où le - en fin de ligne plus haut, mais ça n'est pas le cas de aplay/arecord

    edit: par ailleurs, si le ssh-pipe garantit le streaming du fichier, ce n'est possiblement pas le cas en utilisant un fichier temporaire justement, qui devra probablement être fini d'écrire avant que aplay puisse le lire dans son intégralité

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut
    GENIAL CA MARCHE!! MERCI LES GARS

    Alors BufferBob ta solution ssh machine "arecord" | aplay marche, mais du coup quand je fais arecord il enregistre bien le fichier .wav sur le serveur distant, mais avec le microphone distant aussi, donc pour mon interphone c'est ballo

    J'ai utilisé la solution de hizoka avec sshsf qui est simple d'utilisation et qui fonctionne à merveille!

    Maintenant je vais peaufiner mon script python qui gère les boutons, et je reviendrait poster mon projet ici pour ceux que ça pourrait intéresser..

    En tout cas un grand merci à vous tous pour vos idées car ça faisait 5 jours que je séchais complètement

  9. #9
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Cool si ça a répondu à ton besoin

    Hésite pas quand une personne te propose quelque chose de pertinent à voter pour son message via le fameux pouce en l'air.

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

Discussions similaires

  1. Projet : streaming audio (mp3,Ogg et Flac)
    Par PlopTom dans le forum Débuter
    Réponses: 5
    Dernier message: 10/06/2010, 14h54
  2. Streaming Audio
    Par myke38 dans le forum C++Builder
    Réponses: 1
    Dernier message: 27/02/2005, 23h56
  3. Streaming audio, comment faire ?
    Par Pill_S dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 04/02/2005, 10h29
  4. [Stratégie] streaming audio
    Par Slaya dans le forum Développement
    Réponses: 11
    Dernier message: 20/01/2005, 21h23
  5. [Multimédia] Explication sur stream audio
    Par champion dans le forum Développement
    Réponses: 1
    Dernier message: 20/01/2005, 12h14

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