#1 Le 24/09/2012, à 19:05
- amj
comment enregistrer du sons dans un terminal
bonjour à tous
j'aimerai savoir comment enregistrer le sons qui sort d'un programme (par exemple une ligne de commande et en l’occurrence mplayer)
je sait que record existe mais je ne sais pas comment l'utiliser
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#2 Le 24/09/2012, à 19:36
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Tu as des exemples d'utilisation de mplayer dans une pipeline ici.
Maintenant, tu veux peut-être enregistrer les sons qui sont envoyés à la sortie audio de ton ordinateur ?
Dernière modification par Beta Pictoris (Le 24/09/2012, à 19:42)
Hors ligne
#3 Le 24/09/2012, à 20:15
- amj
Re : comment enregistrer du sons dans un terminal
Tu as des exemples d'utilisation de mplayer dans une pipeline ici.
Maintenant, tu veux peut-être enregistrer les sons qui sont envoyés à la sortie audio de ton ordinateur ?
1 oui je connais la fonction -dumpstream mais il crée un cache ce qui désynchronise la lecture et l'enregistrement
2 oui c'est exactement ça mais je souhaite le faire dans un terminal
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#4 Le 24/09/2012, à 22:02
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
J'utilisais plutôt audacity pour enregistrer les sons, mais c'est une interface graphique.
En ligne de commande, gstreamer est déjà installé sous ubuntu (avec gnome). Il est très puissant. Il fontionne par pipeline.
Par exemple, pour enregistrer un son provenant de l'entrée par défaut, tu peux faire ceci:
gst-launch-0.10 pulsesrc ! audioconvert ! audioresample ! filesink location=test.raw
"pulsesrc" représente l'entrée par défaut de ta carte son (micro, entrée ligne,...)
Mon exemple est très simple. Je te conseille de regarder sur le site officiel pour avoir des explications plus détaillées. Tu trouveras d'autes exemples sur internet et dans la documentation Ubuntu.
Hors ligne
#5 Le 25/09/2012, à 14:10
- amj
Re : comment enregistrer du sons dans un terminal
bonjour
si j'ai bien compris
gst-launch-0.10 pulsescr ! audio/x-raw-float,rate=44100,channels=2 ! vorbisenc name=enc quality=0.5 ! oggmux ! filesink location=test.ogg
devrait me donner un ogg
juste comment ça marche exactement les pipeline et y a-t-il une liste de commandes utiles de ce genre?
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#7 Le 25/09/2012, à 17:23
- amj
Re : comment enregistrer du sons dans un terminal
ça ne marche pas
ERREUR : le pipeline n'a pas pu être construit : pas d'élément « pulsescr ».
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#8 Le 25/09/2012, à 17:26
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
pulsescr --> pulsesrc
Dernière modification par Beta Pictoris (Le 25/09/2012, à 17:27)
Hors ligne
#9 Le 25/09/2012, à 17:50
- amj
Re : comment enregistrer du sons dans un terminal
je crois que je dois avoir un problème avec pulse le ficher est vide (comme avec audacity)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#10 Le 25/09/2012, à 20:52
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
pactl list | grep -A2 "^source"
Cette commande permet d'afficher les sources audio disponibles. Par exemple:
Source #0
État : IDLE
Nom : alsa_output.pci-0000_00_05.0.analog-stereo.monitor
--
Source #1
État : SUSPENDED
Nom : alsa_input.pci-0000_00_05.0.analog-stereo
Tu peux ensuite faire ceci :
gst-launch-0.10 pulsesrc device=lsa_input.pci-0000_00_05.0.analog-stereo ! ....
Hors ligne
#11 Le 25/09/2012, à 21:21
- amj
Re : comment enregistrer du sons dans un terminal
ta commande ne me retourne rien
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#12 Le 25/09/2012, à 21:48
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
C'est une erreur de ma part. Le S de "source" doit être en majuscule.
Hors ligne
#13 Le 25/09/2012, à 22:38
- amj
Re : comment enregistrer du sons dans un terminal
j’obtiens
pactl list | grep -A2 "^Source"
Source #0
État : SUSPENDED
Nom : alsa_output.pci-0000_00_1f.5.analog-stereo.monitor
--
Source #1
État : SUSPENDED
Nom : alsa_input.pci-0000_00_1f.5.analog-stereo
--
Source Output #1
Driver: protocol-native.c
Owner Module: 7
--
Source Output #2
Driver: protocol-native.c
Owner Module: 7
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#14 Le 25/09/2012, à 22:40
- amj
Re : comment enregistrer du sons dans un terminal
ça fait la même chose que gstreamer-properties
mais ça ne marchait pas
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#15 Le 26/09/2012, à 00:04
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Je viens de tester sur mon portable. Ça marche super bien !
gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor ! audioconvert ! wavenc ! filesink location=test.wav
A toi d'adapter la commande à ta machine. Utilise la source "analog-stereo.monitor"
Dernière modification par Beta Pictoris (Le 26/09/2012, à 00:05)
Hors ligne
#16 Le 26/09/2012, à 13:30
- amj
Re : comment enregistrer du sons dans un terminal
ça ne marche pas
gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor ! audioconvert ! wavenc ! filesink location=test.wav
Définition du pipeline à PAUSED...
ERREUR : le pipeline refuse de se mettre en pause.
ERREUR : de l'élément /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0 : Failed to connect stream: Aucune entité de ce type
Information de débogage supplémentaire :
pulsesrc.c(1480): gst_pulsesrc_prepare (): /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0
Définition du pipeline à NULL...
Libération du pipeline...
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#17 Le 26/09/2012, à 13:40
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Tu dois utiliser ta source audio : "alsa_output.pci-0000_00_05.0.analog-stereo.monitor", pas la mienne !
Hors ligne
#18 Le 26/09/2012, à 13:45
- amj
Re : comment enregistrer du sons dans un terminal
à oui évidemment
j'ai donc fait
gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1f.5.analog-stereo.monitor ! audioconvert ! wavenc ! filesink location=test.wav
mais le fichier sons est vide
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#19 Le 26/09/2012, à 14:06
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Quand on regarde les détails du plugin "pulsesrc" sur le site de gstreamer, on voit qu'il dispose des propriétés "volume" et "mute".
Tu peux donc essayer ceci:
gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1f.5.analog-stereo.monitor mute=false volume=1 ! audioconvert ! wavenc ! filesink location=test.wav
Dernière modification par Beta Pictoris (Le 26/09/2012, à 14:06)
Hors ligne
#20 Le 26/09/2012, à 14:16
- amj
Re : comment enregistrer du sons dans un terminal
tout parait normal excepté que le fichier est toujours vide c'est peut-être parce que je fait Ctrl C pour l’arrêter
gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1f.5.analog-stereo.monitor mute=false volume=1 ! audioconvert ! wavenc ! filesink location=test.wav
Définition du pipeline à PAUSED...
Le pipeline est actif et n'a pas besoin de phase PREROLL...
Passage du pipeline à la phase PLAYING...
New clock: GstAudioSrcClock
^CCaught interrupt -- handling interrupt.
Interruption : arrêt du pipeline...
Execution ended after 8519226082 ns.
Définition du pipeline à PAUSED...
Définition du pipeline à READY (prêt)...
Définition du pipeline à NULL...
Libération du pipeline...
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#21 Le 26/09/2012, à 14:19
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Pour tester, je lance d'abord l'écoute d'une station radio avec Rhythmbox, puis je lance ensuite la commande.
Au bout de quelques secondes, je fais un ctrl-c pour arréter la commande. J'arrête Rhythmbox et j'écoute le fichier: aplay test.wav
Dernière modification par Beta Pictoris (Le 26/09/2012, à 14:20)
Hors ligne
#22 Le 26/09/2012, à 14:21
- amj
Re : comment enregistrer du sons dans un terminal
dans deux onglets différent je fait d'abord
mplayer http://lapremiere.ice.rtbf.be/lapremiere
ensuite
gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1f.5.analog-stereo.monitor mute=false volume=1 ! audioconvert ! wavenc ! filesink location=test.wav
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#23 Le 26/09/2012, à 14:27
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Mets "volume=10" pour voir
Hors ligne
#24 Le 26/09/2012, à 14:33
- amj
Re : comment enregistrer du sons dans un terminal
toujours rien ça doit être un problème avec pulse
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#25 Le 26/09/2012, à 14:39
- Beta Pictoris
Re : comment enregistrer du sons dans un terminal
Non, ce serait plutôt la carte audio ou les drivers qui ne permettent pas ce genre de chose.
Hors ligne