Diffuser la TNT en réseau avec un Raspberry Pi

Vu qu’on m’a posé la question la semaine dernière, un petit exemple (c’est plus de la PoC qu’une vraie solution, ceci dit) : il est possible de diffuser assez facilement la TNT sur le réseau avec un Raspberry Pi. Je n’ai pas cherché énormément parce que j’ai depuis pas mal de temps un Elgato Netstream DTT (double tuner TNT en réseau) mais ça semble fonctionner.

Le matériel nécessaire est assez simple : un Raspbbery Pi avec Raspbian à jour (sudo apt-get update et sudo apt-get upgrade), un hub USB alimenté et un tuner TV en USB. Pour le tuner, j’ai utilisé un Sony PlayTV trouvé d’occasion parce que la personne n’avait plus le Blu-ray d’installation. C’est un modèle assez imposant qui intègre un double tuner TV numérique (je n’ai réussi à en faire fonctionner qu’un) et qui se branche en USB. Je voulais au départ l’utiliser sur mon Mac avec EyeTV, mais je n’ai pas réussi à le faire reconnaître.

Le PlayTV

Le PlayTV

Première chose à faire, donc, installer le tuner. Il faut simplement charger un firmware et ça devrait suffire. Les valeurs peuvent changer en fonction du tuner.

cd /lib/firmware
sudo wget http://linuxtv.org/downloads/firmware/dvb-usb-dib0700-1.20.fw
sudo chmod 755 dvb-usb-dib0700-1.20.fw

Ensuite, on tape la ligne suivante pour vérifier si ça marche.

tail -f /var/log/syslog

Normalement, la ligne suivante (avec le nom de votre tuner) devrait apparaître.

dvb-usb: Sony PlayTV successfully initialized and connected.

Ensuite, on va installer VDR, un programme Linux. J’avoue avoir testé TVHeadEnd, sans résultats, l’interface de barbus (et pour barbus) m’a vite énervé et je n’ai pas réussi à chercher les chaînes.

sudo apt-get -y install vdr vdr-dev vdr-plugin-streamdev-server vdr-plugin-epgsearch vdr-plugin-live

Il faut sélectionner le type de tuner, ici terrestre.

Type de tuner

Type de tuner

Maintenant, on va scanner les chaînes. Ca prend énormément de temps (30 minutes chez moi).

sudo apt-get -y install w-scan
sudo w_scan -f t -c FR -o 7 > $HOME/channels.conf

Une fois que c’est fait, on peut supprimer les chaînes payantes.

nano channels.conf

Enfin, on copie le fichier au bon endroit.

sudo cp $HOME/channels.conf /etc/vdr

Maintenant, on va configurer quelques petites choses.

sudo nano /etc/vdr/setup.conf

Il faut passer UpdateChannels à 0 et MinUserInactivity à 0.

On modifie un fichier pour lancer VDR au démarrage.

sudo nano /etc/default/vdr

Il faut passer ENABLED de 0 à 1.

Enfin, on donne accès depuis le réseau.

sudo nano /etc/vdr/plugins/streamdevhosts.conf

Il faut simplement ajouter les IP de votre réseau (dans mon cas du 192.168.1.x).

192.168.1.0/24 # any host on the local net

Enfin, on redémarre.

sudo reboot

Une fois le Raspberry redémarré, on peut accéder à VDR sur l’adresse suivante : http://IP:3000 (ou l’adresse Bonjour du Raspberry).

On a accès à la liste des chaînes, quelques options, mais surtout la Playlist en M3U, qui est accessible avec VLC.

L'interface

L’interface


Dans VLC

Dans VLC


M6 HD dans VLC

M6 HD dans VLC

Bon, ça fonctionne assez bien, on peut dumper le flux directement dans VLC (il faut juste penser à activer le désentrelacement en France) et le changement de flux est assez rapide. L’Ethernet du Raspberry Pi est suffisant pour les chaînes, même en HD. En Wi-Fi, ça risque d’être un peu compliqué, ça dépend vraiment des modèles. En gros, il faut arriver à faire du 10 mégabits/s en réel, ce qui n’est pas toujours le cas avec les clés USB Wi-Fi compactes.