Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 26 utilisateurs en ligne, consultez le détail
Auteur Message
TrustRobot
#0 Message posté le : 17-09-2006 à 00:00:00


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-07-2003
Nombre de messages : 177


Vsound est un programme en ligne de commande qui permet d'enregistrer le flux audio sortant d'une autre application (realplayer, xine, xmms...). Un usage immédiat est l'enregistrement des webradios.

Suite à une loi du type DMCA, Erik de Castro Lopo a arrété de maintenir et de distribuer le logiciel. Heureusement, son site a été mirroré et les sources et des paquets sont toujours disponibles.

1. Installation :



Vsound est dépendant de Sox.

  • Premièrement :Installation à partir de paquetages :

    Des paquets sont fournis par les distributions suivantes debian, gentoo, et Mandriva :
    • Pour Debian :
      # apt-get install vsound

    • Pour Gentoo :
      # emerge vsound

    • Pour Mandriva :
      # urpmi vsound


    Il existe aussi un paquet pour RedHat 7.1 sur ce site. Après avoir récupéré le fichier, vous pouvez l'installer de la façon habituelle :
    # rpm -Uvh vsound-0.5-1rh7x.i386.rpm


  • Deuxièmement : Installation à partir des sources :

    Assurez-vous d'avoir installé sox (fourni par toutes bonnes distros). Vous pouvez le vérifier de la façon suivante selon votre distribution :
    • Pour les distributions à base de RPM :
      rpm -qa | grep sox

    • Pour debian :
      dpkg -l | grep sox

    • Pour slackware :
      su
      ls /var/log/packages/ | grep sox
      exit


    Récupérez les sources sur ce site.

    Une fois dans le répertoire de sauvegarde de l'archive vous n'avez plus qu'à taper :
    $ tar xzvf vsound-0.5.tar.gz
    $ cd vsound-0.5
    $ ./configure
    $ make
    $ su
    # make install
    # exit


2. Utilisation :



Le principe de vsound est assez simple, on passe en paramètre le nom de l'application dont on veut intercepter la sortie audio, et comme options intéressantes le taux d'échantillonage du fichier wav à produire, ou le nom du fichier de sortie.

Exemple :
$ vsound --file=ouifm.wav mplayer -afm acm mms://vipbu.yacast.fr/encoderouifm


Les options :
  • -f, --file=Nom_de_Fichier : nom du fichier en sortie
  • -d, --dspout : sortie simultanée vers un fichier et /dev/dsp (la carte son en gros). Peut être nécessaire pour certains programmes
  • -r, --resample : rééchentillonage du fichier (attention à ne pas rééchentilloner vers le même taux, sinon ça plante. Par exemple, ne pas mettre -r 44100 pour un fichier avi dont le son est déjà à 44,1 kHz)
  • -s, --stdout : envoi du fichier intermédiaire (au format Sun AU) vers la sortie standard (permet de faire un pipe vers oggenc par ex)
  • -t : nécessaire pour realplayer
  • -n, --no-convert : enregistrement du fichier au format Sun AU
  • -k, --keep-temps : conservation des fichiers temporaires
  • -v, --verbose : mode verbeux
  • -h, --help : affichage des options

2.1 Enregistrement dans un .wav : 1ére méthode



Vous pouvez passer à vsound le nom de l'appli à lancer avec comme paramètre le flux ou le fichier à jouer :
$ vsound -v -d -r 44100 --file=~/sons/wav/ouifm.wav mplayer -afm acm mms://vipbu.yacast.fr/encoderouifm


ou
$ vsound -v -d --file=concert.wav xine rustneversleeps.avi


Pour realplayer il faut utiliser l'option timing delay (-t):
$ vsound -v -d -t --file=lenoir.wav realplay http://www.tv-radio.com/ondemand/france_inter/LENOIR/LENOIR.ram


À la fermeture du programme appelé, vsound encode le fichier intermédiaire en .wav.

2.2 Enregistrement dans un .wav 2ème méthode



Vous pouvez aussi passer à vsound le nom de l'appli à lancer sans paramètre :
$ vsound -v -d -r 44100 --file=~/sons/wav/fip.wav xmms


puis appeler le flux ou le fichier comme expliqué dans le tutoriel sur la radio.

À la fermeture du programme appelé, vsound encode le fichier intermédiaire en .wav.

2.3 Encodage ogg en temps réel :



On va demander à vsound d'envoyer le son vers la sortie standard que l'on va rediriger par une pipe vers oggenc:
$ vsound -v -s xine rustneversleeps.avi | oggenc

3. Utilisation différée :



Mettons que vous vouliez enregistrer votre émission préférée sur une webradio, mais que vous ne serez pas devant votre ordinateur au moment crucial. On va utiliser at pour lancer vsound et arréter l'enregistrement.

Si vous ne connaissez pas la commande at, je vous conseille ce tuto.
  • Principe :

    On appelle le "shell" at pour l'heure de début, on tape la commande et on sort de at (CTRL+D) :
    $ at 21:00
    at>vsound -v -d -r 44100 --file=~/sons/wav/lenoir.wav mplayer -afm acm http://ogg.tv-radio.fr:1441/encoderfinter.ogg
    at> ^D
    $


    Pour la fin, ma solution est un peu bourrin :
    $ at 22:00
    at>killall mplayer
    at> ^D
    $


  • Problème des applications graphiques :

    at est daemon qui va lancer une commande avec les droits de celui qui a planifié la tâche. Mais les applis graphiques ne sauront pas où s'afficher, même si vous avez lancé un serveur X. Il faut leur préciser un display, ou n'utiliser que des applis console(trplayer à la place de realplayer par ex) ;-).

    Pour faire cela on va autoriser les Display au niveau du serveur X :
    • dans /etc/X11/xinit/xserverrc , virer "-nolisten tcp"
    • lancer "xhost +" au demarrage de X

    La commande deviendra:
    $ vsound -v -d -r 44100 --file=~/sons/wav/fip.wav xmms --display localhost:0


4. Sources d'informations :



Les deux discussions à l'origine du tutoriel :

Des pages sur vsound:

La commande at est expliquée sur un site de doc linux hébergé par l'académie de créteil.

Un journal sur linuxfr.org qui aborde d'autres pistes pour enregistrer la sortie audio.




--Message édité par TrustRobot le 17-09-2006 à 00:00:00--