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.
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.
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.
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.
Salut !
A quoi sert le hub USB alimenté ? :-)
Le raspberry Pi fournit pas toujours assez de puissance sur l’USB, spécialement si on a du Wi-Fi, le hub me sert à alimenter les périphériques et le Pi
Avec le tout nouveau modèle Raspberry B+, un hub USB alimenté n’est plus requis pour alimenter le PlayTV, à condition d’utiliser une alimentation suffisamment puissante : 2 ampères, comme le chargeur du Nexus 5 par exemple.
bonjour
je viens de faire l’essa avec un tuner USB Gigabyte U8000.
Il manque juste un step: la creation du fichier /var/lib/vdr/plugins/streamdev-server/externremux.sh
il y a un template ds /usr/share/doc/vdr-plugin-streamdev-server/examples/
j’ai utilisé PROG=cat, pour faire simple.
du coup je peux voir le premier canal avec mplayer (mplayer -playlist channels.m3u -prefer-ipv4) ou vlc.
je n’ai pas encore trouvé comment changer de chaine en remote.
Bonjour
apes bien des tatonnements, en utilsant les remarques de bruno ci dessus, on peut changer de chaine en utilisant la page « EPG » de VDR
(http://IP_du_serveur_DVR:8008 – login admin pass live, par defaut)
on a acces a l’EPG et on a des boutons pour que DVR demande au tuner de changer sa frequence (boutons bleu foncé), et si on presse les boutons avec tringle orange, ca ouvre une popup avec le lien vlc.
on peut recoperer ce lien et faire par ex:
mplayer http://1IP_du_serveur_DVR:3000//T-8442-2-517 -prefer-ipv4
si on arrete mplayer, ca coupe l’emission du flux cote VDR, donc il faut a nouveau presser le bouton avec le triangle orange …
je n’ai pas trouvé le moyen de faire fonctionner vlc… ni de changer de chaine en remote sans passer par l’interface web de DVR