Streaming di radio DVB sulla rete (locale)

MythTV, Tvtime, Mplayer etc.
Anche programmi o script di conversione tipo
projectx, transcode, vdrconvert, dvdauthor etc.

Moderatori: ragno, tapino, alez, zulu, davidea

Rispondi
madmatt
Messaggi: 55
Iscritto il: 16 gen 2008, 09:51

Streaming di radio DVB sulla rete (locale)

Messaggio da madmatt »

Ciao a tutti,
oltre che felice possessore di un VDR sono anche felice possessore di una squeezebox (due, in realtà): http://www.slimdevices.com/pi_squeezebox.html

Che cosa c'entra con VDR ? Beh, la squeezebox ha la possibilità di sintonizzarsi su stream radio, di qualunque tipo a patto che siano wav,mp3, flac , e normalmente la uso/usavo per ascoltare radio via stream web, che fanno abbastanza cagare come qualità, sia dello stream che dell'affidabilità del servizio.
Per migliorare la qualità dello stream, e dato che ho un paio di Budget cards che mi avanzano, e anche una presa satellite che mi avanza, ho pensato di configurarae un software che permette di sintonizzare una radio via satellite (o il pid audio di un canale video) e di farne lo stream via web in mp3 o qualsiasi altro formato applicando un filtro allo stream con mplayer/lame.
Questa mi sembra una cosa interessante anche per chi non ha una squeezbox.

Necessaire per far funzionare il tutto:

1 scheda DVB-(S-C-T) non usata da VDR (budget, full, qualsiasi, la full è sprecata perchè non viene usato il processore MPEG)

1 presa sat libera ;)

un pò di tempo a disposizione

dvbserver2: http://shed.interdog.co.uk/dvbserver2.tgz

perl installato, con i moduli indicati nel README:
Linux::DVB - ottenibile via CPAN, ma una versione aggiornata è inclusa nel pacchetto
Audio::Radio::V4L,IO::Socket, IO::Select, IO::Handle, IPC::Open2, Fcntl, POSIX
ottenibili via CPAN o via pacchetti delle varie distribuzioni.

dvbserver.conf : un file di configurazione dei canali, nel formato di scan dei dvbtools (la mia copia è qui: http://www.mrossi.org/downloads/dvbserver.conf con i canali di Hotbird su diseqc 0)

Per installare un modulo perl via CPAN:

Codice: Seleziona tutto

root@star2007:/usr/local/share/dvbserver2# perl -MCPAN -e shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)

cpan[1]>
La prima volta che si esegue questo comando bisogna configurare il modulo, il che consiste nel premere sempre invio fino a quando non viene proposta la scelta del mirror da cui scaricare i moduli

Dopodichè, se devo installare il modulo Audio::Radio::V4L digiterò:

Codice: Seleziona tutto

cpan[1]> install Audio::Radio::V4L
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
  Database was generated on Thu, 27 Nov 2008 06:26:58 GMT
Audio::Radio::V4L is up to date (0.01).

cpan[2]>
nel mio caso è già installato, se non lo è il modulo verrà scaricato e compilato (usando make, autoconf e gcc, che devono essere presenti e funzionanti)
madmatt
Messaggi: 55
Iscritto il: 16 gen 2008, 09:51

Re: Streaming di radio DVB sulla rete (locale)

Messaggio da madmatt »

Una volta installati i moduli, è sufficiente editare il file dvbserver.pl e configurare le variabili:

Codice: Seleziona tutto

my $dvbadapter=N ; #N è l'id della scheda DVB, la prima è id 0
my $conf=dvbserver.conf;# path del file di config dei canali
my $port=9001 ;# porta su cui lo script fornirà il servizio di streaming
my $filter = "lame --resample 44.1 --mp2input - - 2>/dev/null"; # filtro da applicare allo stream DVB per ottenere un formato diverso, se non necessario usare ""

una volta fatto questo sarà sufficiente eseguire lo script (con -d per avere info di debug):

Codice: Seleziona tutto

root@star2007:/usr/local/share/dvbserver2# ./dvbserver.pl -d
Waiting for connections
A questo punto, all'indirizzo localhost:9001 si avrà a disposizione una pagina web con l'elenco dei canali sintonizzabili, e due link per ogni canale, uno in formato pls, uno in formato mp2.
Quando si sceglie un link in formato mp2 (ad esempio, per me : http://172.30.2.4:9001/Virgin Radio.mp2) l'output di debug è:

Codice: Seleziona tutto


Connection from 172.30.2.4 to 172.30.2.4
*  Header:GET /Virgin%20Radio.mp2 HTTP/1.1
*  Header:Host: 172.30.2.4:9001
*  Header:User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.4) Gecko/2008111319 Ubuntu/8.10 (intrepid) Firefox/3.0.4
*  Header:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
*  Header:Accept-Language: en-us,en;q=0.5
*  Header:Accept-Encoding: gzip,deflate
*  Header:Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
*  Header:Keep-Alive: 300
*  Header:Connection: keep-alive
*  Header:Cookie: SqueezeCenter-expandPlayerControl=true; SqueezeCenter-expanded-MY_MUSIC=1; SqueezeCenter-expanded-RADIO=1; SqueezeCenter-expanded-MUSIC_SERVICES=0; SqueezeCenter-expanded-FAVORITES=0; SqueezeCenter-expanded-PLUGINS=1; SqueezeCenter-player=172.30.2.4; SqueezeCenter-noPlaylistCover=0
Request for Virgin Radio type mp2
Send tuning request
Frontend got: Tune:Virgin Radio;PID:17263;

  Voltage:0
  Tone:0
Tuning to 10872000  Lock: 3
   Lock: 0
Tuned!   Lock: 31
Tuning OK. (Match=0)
Got USR1
Sending MP2
 (17263)Setting Up Demux for 3132
Streaming
Connection from 172.30.2.4 to 172.30.2.4
*  Header:GET /Virgin%20Radio.mp2 HTTP/1.1
*  Header:Host: 172.30.2.4:9001
*  Header:User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.4) Gecko/2008111319 Ubuntu/8.10 (intrepid) Firefox/3.0.4
*  Header:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
*  Header:Accept-Language: en-us,en;q=0.5
*  Header:Accept-Encoding: gzip,deflate
*  Header:Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
*  Header:Keep-Alive: 300
*  Header:Connection: keep-alive
*  Header:Cookie: SqueezeCenter-expandPlayerControl=true; SqueezeCenter-expanded-MY_MUSIC=1; SqueezeCenter-expanded-RADIO=1; SqueezeCenter-expanded-MUSIC_SERVICES=0; SqueezeCenter-expanded-FAVORITES=0; SqueezeCenter-expanded-PLUGINS=1; SqueezeCenter-player=172.30.2.4; SqueezeCenter-noPlaylistCover=0
Request for Virgin Radio type mp2
Send tuning request
Frontend got: Tune:Virgin Radio;PID:17271;

Tuning OK. (Match=1)
Got USR1
Sending MP2
 (17271)Setting Up Demux for 3132
Streaming
e ho in streaming, su qualsiasi pc in casa, la radio da DVB ....
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: Streaming di radio DVB sulla rete (locale)

Messaggio da ragno »

Uhhuuu...una cosa veramente interessante, anche per capire quanto la tecnologia ci stia fuorviando...rendendo le cose sempre piu' complesse... :)

un ragno al quale piacciono ancora i sinto completamente analogici... :)

Comunque un aggeggio da non far mancare alla prossima vdrbox...

ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
madmatt
Messaggi: 55
Iscritto il: 16 gen 2008, 09:51

Re: Streaming di radio DVB sulla rete (locale)

Messaggio da madmatt »

ragno ha scritto:Uhhuuu...una cosa veramente interessante, anche per capire quanto la tecnologia ci stia fuorviando...rendendo le cose sempre piu' complesse... :)

un ragno al quale piacciono ancora i sinto completamente analogici... :)

Comunque un aggeggio da non far mancare alla prossima vdrbox...

ciao
.. a me invece i sinto analogici proprio non piacciono, o meglio, visto che sono per le cose complicate mi piace avere la radio (potenzialmente) in tutta la casa (la filodiffusione del 21esimo secolo, insomma) e con la squeezebox posso sincronizzare i vari client sullo stesso canale .... lo so, non e' la cosa piu' indispensabile del mondo, ma e' sicuramente una cosa divertente da fare per lo smanettamento, non guasta perche' cosi' la moglie ha radio DJ pur non sapendo di non avere in casa un sintoampli, e io ho giustificato l'acquisto di una budget che altrimenti stava a prendere polvere in un cassetto ...
Rispondi