Table des matières
Capturer le son sortant du PC
Le but: enregistrer dans un fichier les sons produits par mon PC.
Ma conf: Debian Squeeze + Alsa
Les méthodes essayés et que je n'ai pas réussi a utiliser:
- arecord + amixer : rien ( source: http://carthick.wordpress.com/2007/11/26/linux-recording-soundcard-output-using-arecord/ )
- pavucontrol + audacious : rien
- jackd : rien
- etc…
Solution
Au final, j'ai trouvé ce lien: http://www.swview.org/node/213
~~READMORE~~
Et ça fonctionne. Mais il y a encore plus simple dans les commentaires:
Dans sa “home”, créer un fichier nommé: .asoundrec
et faire en sorte qu'il contienne:
pcm.!default { type empty slave { pcm "tee:'plughw:0,0','~/audiocap.wav',wav" } }
Voila. Tout ce qui sort du PC , via le moteur Alsa
, sera dupliqué dans le fichier audiocap.wav
Pour créer directement un mp3
plutôt qu'un wav:
pcm "tee:'plughw:0,0','|lame -S -r -s %r --bitwidth %b -m j - ~/audiocap.mp3',raw"
Plusieurs fichiers
Mais il y a un problème: a chaque fois que nécessaire, le même fichier est recréé !
Donc, voila ma méthode pour que le nom change a chaque fois :
Pour les wav:
pcm "tee:'plughw:0,0','|/bin/bash -c \\'dd bs=128k of=~/audiocap-`date +%%F-%%X`.wav\\'',wav"
Pour les mp3:
pcm "tee:'plughw:0,0','|/bin/bash -c \\'lame -S -r -s %r --bitwidth %b -m j - ~/audiocap-`date +%%F-%%X`.mp3\\'',raw"
Chaque fichier créé commence par “audiocap-” , et est complété avec la date et l'heure de la création.
Pour désactiver la capture, il suffit de changer le nom du fichier .asoundrec
, et de relancer l'application générant le son.
En pratique
En pratique, j'ai créé un autre utilisateur sur ma “Debian Squeeze” pour que je n'ai pas a toucher au fichier “.asoundrec” a chaque fois.
Donc, j'ai créé un nouvel utilisateur:
$ su # adduser recman
A minima, il doit être dans le groupe “audio”
# adduser recman audio
Retour sur mon bureau “kde”.
Afin que ce compte puisse lancer des applications dans mon environnement Kde
, je créé un petit fichier de démarrage :
~/.kde/Autostart/xhost4recman
, contenant:
#!/bin/sh xhost +local:recman exit 0
Rendre executable:
$ chmod a+x ~/.kde/Autostart/xhost4recman
Pour eviter de redemarrer ma session, l'executer tout de suite:
~/.kde/Autostart/xhost4recman
Maintenant, je peus entrer sur ce compte, créer le fichier ~/.asoundrec
qui me convient, et puis démarrer firefox
, chrome
, ou n'importe quelle application pouvant générer des sons a enregistrer. Exemple:
$ su - recman recman@monpc:~$ firefox &
Etc…
PS: on ne peut pas lancer plusieurs applications utilisant le son avec cette technique. A moins de bypasser Alsa
.
En passant
Pour convertir un wav
en mp3
:
$ lame fichier.wav fichier.mp3
Mais je préfère:
$ lame --preset extreme fichier.wav fichier.mp3
Voila.