Il digitale terrestre DVB-T in streaming sul tablet o sul PC di casa

...ovvero come vedere la TV senza la TV e senza internet... sfruttando la rete domestica (anche via Wifi).
Come è noto, il Raspberry Pi si presta a infinite possibilità di applicazione. Quella che vorrei descrivere qui usa la versione B del micro pc inglese (quella con la porta LAN) ed una chiavetta TV, cioè una di quelle utilizzate per vedere la TV digitale (DTT in standard DVB-T) dal PC. Lo scopo è quello di rendere disponibile sul tablet o sul PC la visione dei canali del digitale terrestre, cioè sfruttando il segnale d'antenna che arriva sul nostro televisore. Qual'è il vantaggio? Non sempre è possibile utilizzare internet per vedere la TV dal tablet e nei casi in cui lo è, la qualità del video spesso è scadente perchè dipende dalla velocità della connessione che disponiamo. Invece la combinazione Raspberry + chiavetta TV può rendere disponibile su PC, tablet, ecc. l'intero bouquet televisivo che riceviamo a casa, senza usare una connessione ad internet, e con una qualità decisamente superiore.

La "lista della spesa" quindi è la seguente:
nr. 1 Raspberry Pi versione B con l'ultima distro Raspbian
nr. 1 USB Tv Stick compatibile con Linux TV (io ho usato la Terratec Cynergy T Stick +)
nr. 1 Hub USB autoalimentato (per la chiavetta TV ed un eventuale HD esterno per la registrazione dei programmi TV)

La chiavetta TV Terratec Cynergy T Stick +  è basata sul chipset RTL2832U, che è relativamente diffuso, ed è riconosciuta automaticamente dall'RPi. Esistono diverse alternative, ed anche i tuner TV USB che funzionano con la distro OpenELEC dovrebbero essere accettati dall'RPi senza problemi.
L'hub USB con alimentazione separata è necessario in quanto il RPi da solo non è in grado di alimentare il TV Stick con sufficiente affidabilità. L'hub alimenta anche il Raspberry Pi tramite una delle sue uscite.

Raspberry Pi, Tv Stick e un Hub USB per lo streaming della TV in casa
L'insieme di RPi, TV Stick e USB Hub.
Per quanto riguarda il software di supporto allo streaming ho colto i suggerimenti dell'ottima pagina di Myatu installando il video server Tvheadend. Il software non è disponibile dai repository Rasbian quindi occorre compilarlo dai sorgenti.
Per fare ciò occorre installare il supporto per la compilazione dei pacchetti sorgente build-essential ed alcune librerie/tool che saranno utili in seguito:

sudo apt-get install git build-essential \ 
libavcodec-dev libavformat-dev libssl-dev \ 
libavutil-dev libavahi-client-dev libcurl3 \ 
w-scan


Dopo di ciò occorrerà scaricare i sorgenti di Tvheadend:

git clone git://github.com/tvheadend/tvheadend.git

Verrà creata una cartella nella propria home (si suppome /home/pi/tvheadend). Quindi occorrerà digitare i seguenti comandi per la pre-configurazione e la compilazione vera e propria:

cd tvheadend
./configure
make clean
make

La procedura crea un pacchetto Debian (.deb) che si può installare facilmente. L'autore del post ha preferito però effettuare una installazione manuale:

sudo su 
make install
ln -s /usr/local/bin/tvheadend /usr/bin/tvheadend

cp ./debian/tvheadend.init /etc/init.d/tvheadend
chmod +x /etc/init.d/tvheadend
update-rc.d tvheadend defaults

cp ./debian/tvheadend.default /etc/default/tvheadend 
adduser --quiet --system --group --shell /bin/bash hts 

mkdir -p "/home/hts/.hts/tvheadend"

cat > /home/hts/.hts/tvheadend/superuser <<EOF\
{ "username": "scegliunuser","password":\
"scegliunapassword" }\ 
EOF 

chmod 600 /home/hts/.hts/tvheadend/superuser 
chown -R hts:hts "/home/hts/.hts"
exit

 Nel file:
 /home/hts/.hts/tvheadend/superuser
è specificato un utente amministratore. Al posto di scegliunapassword scegliunuser occorre indicare una coppia di termini secondo le proprie preferenze. In realtà l'accesso alla interfaccia web di tvheadend è aperto.

Al passaggio successivo avviamo il servizio tvheadend:

sudo service tvheadend start

Collegandosi all'indirizzo web dell'RPi alla porta 9981:

http://indirizzoRPi:9981

si accederà al minisito dell'applicativo da cui si potrà terminare la configurazione compreso l'abilitazione del TV stick e l'iniziale scansione dei canali del DTT.

Tvheadend e la sua interfaccia web
Interfaccia web di Tvheadend.
Ricordarsi di abilitare l'adattatore TV/USB (spunta "Enabled" a destra) in Configuration - DVB Inputs - TV Adapters:

Configurazione della scheda TV in Tvheadend

Occorre poi creare una nuova network da Configuration - DVB Inputs - Networks e cliccando sul bottone Add e scegliendo una rete DVB -T Network, dopodichè:

Configurazione di Tvheadend: nuovo network
Configurazione di Tvheadend: nuovo network

E' importante per i primi tempi mettere una spunta sulla casella Idle scan muxes, in modo da popolare la lista dei canali disponibili:

Configurazione di Tvheadend: scansione canali

Copiando i link dei singoli canale TV dall'interfaccia di Tvheadend è possibile costruire una playlist (per es. canaliTV.xspf) da aprire con VLC in modo da gestire tutti i canali dal player open source. Trattandosi di un file XML può anche essere creato con un editor di testo in questo modo:

           <?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">
<title>Scaletta</title>
<trackList>
<track>
<location>http://IpDelVostroRpi:9981/stream/service/be1bfc792ee254c8f710c78899cd3ee2</location>
<title>Rai 1</title>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>0</vlc:id>
</extension>
</track>
<track>
<location>http://IpDelVostroRpi:9981/stream/service/c51da905b280a9fff5292c8572c3cd56</location>
<title>Rai 2</title>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>1</vlc:id>
</extension>
</track>
</trackList>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:item tid="0"/>
<vlc:item tid="1"/>
</extension>
</playlist>

Dopodichè, posso finalmente vedere la TV da qualsiasi PC/Tablet/Smartphone a casa!




Visualizzazione streaming con VLC
Visualizzazione flusso streaming con VLC



Commenti