
Internet radio: registra le trasmissioni sull'hard disk
Basta installare MPlayer, i codec necessari e “accoppiare” il tutto a un semplice script Bash per poter salvare su disco la musica trasmessa in streaming sulla rete
(pagina 1 di 3)

La coppia Internet/ADSL ha dato vita a
fenomeni come il VoIP, YouTube
(www.youtube.com), WebTV e altri sistemi
per la trasmissione e fruizione di contenuti
audio/video in “streaming”. Non solo,
ha decretato anche il ritorno in grande stile della
radio che, sulla Grande Rete, in particolare
con la nascita delle Internet Radio, sta vivendo
una seconda giovinezza. A titolo informativo,
la prima stazione radio a trasmettere via Internet
è stata WXYC, dell'università del Nord
Carolina, che cominciò le trasmissioni il 7 Novembre 1994
( http://it.wikipedia.org/wiki/Web_radio). Oggi, quasi ogni radio che trasmette
in FM (Frequency Modulation o modulazione di frequenza) diffonde il
proprio segnale anche attraverso Internet. Poiché i contenuti trasmessi
in streaming possono essere solo visualizzati (nel caso dei video) e
ascoltati senza poter salvare nulla in locale, il nostro obiettivo è creare
un tool in grado di ricevere i flussi audio da una Internet Radio e registrarli
sull'hard disk nel formato a noi più consono.
Player e codec necessari
Lo script Bash proposto necessita di un player e di alcuni codec indispensabili
per poter elaborare il flusso audio catturato dalla rete, quindi
bisogna installare questi componenti. Precisiamo subito che la prova
è stata eseguita sulla nuova Ubuntu 7.10 “Gutsy Gibbon”. Come lettore
multimediale abbiamo optato per MPlayer (www.mplayerhq.hu),
mentre per quanto riguarda i codec si tratta di LAME per il formato
MP3, OggVorbis per quello OGG e il pacchetto win32codecs per quanto
riguarda altri formati proprietari tipo il WMAdi Microsoft e Real Player.
Ubuntu mette a disposizione il metodo più semplice per installare tutti
i codec di cui abbiamo bisogno. La procedura è illustrata di seguito.
Per prima cosa bisogna aggiornare le repository dei pacchetti aggiungendo
l'archivio Medibuntu (Multimedia, Entertainment & Distractions
In Ubuntu – www.medibuntu.org), specifico per i contenuti multimediali,
nel modo seguente:
sudo wget
http://www.medibuntu.org/sources
.list.d/gutsy.list -O
/etc/apt/sources.list.d/
medibuntu.list
wget -q
http://packages.medibuntu.org
/medibuntu-key.gpg -O- |
sudo
apt-key add - && sudo
apt-get update
Quest'ultimo comando aggiorna anche la lista dei pacchetti disponibili.
A questo punto possiamo installare tutto quello che ci serve:
apt-get install mplayer lame vorbis-tools
w32codecs ffmpeg gstreamer.10-ffmpeg
In questo caso abbiamo aggiunto anche il pacchetto FFMpeg
(http://ffmpeg.mplayerhq.hu), una potente suite multimediale per gestire
i formati più diffusi. A questo punto abbiamo tutto il necessario per poter
utilizzare lo script, ma prima occupiamoci di MPlayer.
Accesso alle trasmissioni radio
Il “coltellino svizzero” per chiunque voglia lavorare con dati multimediali
è MPlayer. Questo player multimediale, con gli opportuni plugin
e codec, permette di leggere qualsiasi formato di dati audio e video.
Cosa molto importante, MPlayer non fa distinzione tra dati salvati su file,
provenienti da una pipe o trasmessi in streaming via rete:
mplayer -cache 128 http://live.mediaserver.
kataweb.it/radiodeejay
Il comando precedente permette di ascoltare una delle più note radio
italiane direttamente dalla console.
Quello che fa MPlayer è semplicemente connettersi alla sorgente e leggere i dati nel formato in cui vengono
presentati. I dati vengono poi convertiti nel formato PCM e riversati
sul dispositivo di output, ovvero sulla scheda audio, per quando
riguarda il sonoro, ed in una finestra creata ad hoc per il video. L'opzione
-cache permette di specificare la dimensione del buffer di lettura. Un buffer
è uno spazio di memoria che si frappone tra l'utente e la sorgente dei
dati, che può essere immaginato come una sorta di secchio bucato sul
fondo: il secchio viene riempito d'acqua e l'acqua esce dal fondo, ma a
discapito della velocità o dell'incostanza con cui il secchio viene riempito,
l'acqua uscirà sempre alla stessa velocità. La stessa cosa accade
per i flussi di dati prelevati da Internet, i quali possono entrare nel buffer
con velocità variabile (talvolta anche nulla, per alcuni istanti), ma noi
possiamo ascoltare comodamente la radio senza interruzioni proprio
perché entra in gioco la cache (il secchio bucato) che riversa i dati nelle
cuffie sempre alla stessa velocità. Ovviamente una cache molto grande
è più resistente agli “sbalzi” della connessione di una cache piccola,
ma non serve esagerare: si possono fare dei tentativi, ma in genere con
connessioni ADSL, valori di 256 Kbyte dovrebbero essere più che sufficienti.
Una delle possibilità più interessanti messe a disposizione da MPlayer
è quella di poter dirottare il flusso letto su un file, invece che nel dispositivo
di riproduzione, permettendo in questo modo di registrare i dati,
siano essi audio o video. Ad esempio, il comando seguente:
mplayer video.avi -dumpaudio -dumpfile audio.mp3
riproduce il video contenuto nel file video.avi, ma, senza mostrare
l'output a video, estrae e copia l'audio nel file indicato (audio.mp3 in
questo caso). C'è però uno svantaggio: il flusso viene salvato senza essere
interpretato da MPlayer, ovvero senza essere convertito in PCM. Questo
significa che nel caso di un video in formato AVI con audio MP3, il
file dove viene riversato l'audio conterrà ancora dati in formato MP3, mentre
la registrazione di una radio in streaming in formato ASF sarà ancora
un file in formato ASF. Ovviamente sarebbe più comodo ottenere
un file in formato PCM, pronto per essere convertito in OGG o MP3.
MPlayer consente di farlo nel modo riportato di seguito:
mplayer -cache 128 -ao pcm:file=audio.wav
http://live.mediaserver.kataweb.it/radiodeejay
L'opzione -ao indica l'Audio Output come un flusso PCM riversato
nel file indicato. Questa riga di comando, quindi, registra un flusso di dati
dallo streaming della radio interessata, salvando il file in formato
PCM. Una volta registrato il flusso PCM è possibile convertirlo in un formato
compresso tramite appositi programmi; ad esempio, la conversione in MP3 può essere eseguita utilizzando il programma lame:
lame --preset radio audio.wav audio.mp3
Nel comando precedente, l'impostazione "--preset radio" corrisponde
ad un flusso con un bitrate medio di 112 kbit/s. Consultate la pagina
di manuale di lame per le altre opzioni messe a disposizione dal programma
e per le varie preselezioni di qualità della conversione.
Il formato PCM
Rappresentazione digitale di un segnale analogico
Quando un suono viene registrato, quello che effettivamente si
fa è prelevare un campione un certo numero di volte al secondo:
più elevato è questo valore, più fedele sarà la registrazione, ovvero
più alta la qualità. Un flusso PCM (Pulse-Code Modulation)
non è compresso, cioè i campioni sono registrati senza utilizzare
alcun sistema per ridurne gli ingombri (al contrario di MP3 e
OGG), ma è l'unico formato che può essere inviato direttamente
alla scheda sonora e quindi agli altoparlanti. Si tenga quindi
conto che una registrazione di molte ore potrebbe occupare uno
spazio notevole. Come parametro di confronto si pensi al Cd-Audio
che contiene circa 80 minuti di audio di alta qualità stereo in
700 megabyte (in formato MP3 mantenendo un'ottima qualità si
può occupare circa un decimo dello spazio).