Enregistrement de streaming audio
Voici une méthode pour enregistrer un streaming audio en wav et le convertir en ogg ou/et en mp3.
Le script utilise l'excellent logiciel 'mplayer' ainsi que les encodeurs 'lame' et 'oggenc'. Il faut donc les installer :
$ sudo aptitude install mplayer lame vorbis-tools
Voici ensuite le script :
#!/bin/sh STREAM_URL="http://adresse_du_stream/audio.rm" STREAM_OUTPUT_WAV="./mystream.wav" STREAM_OUTPUT_MP3="./mystream.mp3" STREAM_OUTPUT_OGG="./mystream.ogg" # mp3 bitrate (64 | 128 | 192...) MP3_BITRATE="128" # stream record mplayer $STREAM_URL -ao pcm:file=$STREAM_OUTPUT_WAV -vc dummy -vo null # stream encoding (mp3) lame -b $MP3_BITRATE -m s $STREAM_OUTPUT_WAV -o $STREAM_OUTPUT_MP3 # stream encoding (ogg) oggenc $STREAM_OUTPUT_WAV -o $STREAM_OUTPUT_OGG
Note : vous pouvez choisir la qualité de compression mp3 en modifiant la variable 'MP3_BITRATE'.
Mais vous pouvez aussi choisir d'encoder le fichier uniquement en ogg en commentant la ligne commençant par 'lame'.
Encore plus simple avec 'vlc' :
#!/bin/sh STREAM_URL="http://zlz-stream13.streamserver.ch/1/drs2/mp3_128" STREAM_TIME="7800" STREAM_OUTPUT_MP3="/data/ino/mystream.mp3" cvlc --run-time=$STREAM_TIME $STREAM_URL --sout "#duplicate{dst=std{access=file,mux=raw,dst=$STREAM_OUTPUT_MP3}" vlc://quit ; # EOF
L’avantage de ce dernier script est qu’il est possible de choisir la durée d’enregistrement donc de le programmer dans un cron par exemple.