Le 13/07/2014
Ce mode opératoire détaille la manière de récupérer le flux multicast1) des chaîne visibles en clair sur 'Orange TV' via la LiveBox2), pour alimenter une carte virtuelle sur le serveur Backend MythTV.
Pour éviter tout problème il n'est pas conseillé de mélanger sur un même switch le flux TV et le flux du réseau local.
La présence sur le serveur Backend MythTV d'une deuxième carte réseau est indispensable. L'une sera reliée au réseau local pour accéder à Internet, et l'autre à la prise TV de la LiveBox. A ce sujet suivant le modèle de Livebox que vous avez, et suivant l'emplacement des différents composants, plusieurs raccordements TV seront possibles. Pour ma part j'ai une LiveBox-fibre V2 avec deux prises TV pour deux éventuels décodeurs. Mais ma LiveBox est à quinze mètres du trio TV,Décodeur, Serveur, et pas de cable en plus pour la TV.
Donc je n'utilise qu'une prise TV sur la LiveBox avec un switch pour partager le flux entre le décodeur et le serveur.
Architecture réseau.
Sur notre serveur Linux équipé de deux cartes réseau (eth0 sur le réseau lan, eth1 sur réseau TV), un dilemme va se posé à toutes les applications désirant communiquer avec le réseau, du type Mozilla, ftp, Samba, MajLinux, et Lecture/Enregistrement TV…
Vers qu'elle carte réseau dialoguer, eth0 ou eth1 ?
Si on laisse faire plus rien ne fonctionnera.
Il faut donc prioriser, et créer des routes.
Pour faire simple, il y a trois choses à faire:
- Donner la priorité à la carte réseau local Internet 'eth0' en imposant un METRIC plus grand à (eth1). Plus le METRIC est grand moins la carte est prioritaire.
- Router tous les flux multicast (224.0.0.0) vers la carte réseau 'eth1'.
- Autoriser l' ip_forward.
Juste pour information, car il n'y a rien à faire. Ici une adresse statique est paramétrée.
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.1.110 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ONBOOT=yes METRIC=10 MII_NOT_SUPPORTED=no USERCTL=no DNS1=192.168.1.1 RESOLV_MODS=no\\ LINK_DETECTION_DELAY=6 IPV6INIT=no IPV6TO4INIT=no ACCOUNTING=no
Imposer une adresse statique, dans un pot IP différent de celui de eth0. Ne pas préciser de GATEWAY, ni de DNS, pour cela éditer le fichier ci-dessous. Et surtout imposer un METRIC supérieur à celui de la carte eth0 ci-dessus.
# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static IPADDR=192.168.2.110 NETMASK=255.255.255.0 ONBOOT=yes METRIC=30 MII_NOT_SUPPORTED=no USERCTL=no RESOLV_MODS=no IPV6INIT=no IPV6TO4INIT=no ACCOUNTING=no
Modifier les paramètres 'ipv4' ci-dessous. Bien que les commandes 'sysctl' ne soient à passer qu'une seule fois, les placer aussi dans /etc/rc.d/rc.local pour éviter tout oubli lors de mise à jour système.
Ajouter dans /etc/rc.d/rc.local
route add -net 224.0.0.0 netmask 240.0.0.0 eth1 sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.conf.all.accept_redirects=1 sysctl -w net.ipv4.conf.all.rp_filter=0 sysctl -w net.ipv4.conf.default.rp_filter=0 sysctl -w net.ipv4.conf.eth1.rp_filter=0
Comme sur le port eth1 on partage le flux réseau avec le décodeur TV, il suffit de faire une écoute réseau sur le serveur Linux en mode 'console' pour connaître l'adresse ip du flux multicast de la chaîne regardée sur la télévision.
Pour cela nous allons utiliser la commande 'tcpdump' présente sur toute bonne distribution Linux.
-Passage de France3SD vers TF1HD:
# tcpdump -i eth1 ... 09:45:19.291588 IP 80.12.211.1.49152 > 232.0.1.2.8200: UDP, length 1328 09:45:19.296293 IP 80.12.211.1.49152 > 232.0.1.2.8200: UDP, length 1328 09:45:19.300727 IP 80.12.211.1.49152 > 232.0.1.2.8200: UDP, length 1328 ... 09:45:19.301076 IP mediatv.local > 224.0.0.2: igmp leave 232.0.1.2 09:45:19.303373 IP 80.12.211.1.49152 > 232.0.1.2.8200: UDP, length 1328 09:45:19.305230 IP 80.12.211.1.49152 > 232.0.1.2.8202: UDP, length 1344 08:57:29.930341 IP 10.141.55.29 > 232.0.1.205: igmp v2 report 232.0.1.205 08:57:29.937421 IP 80.12.211.102.49152 > 232.0.1.205.8200: UDP, length 1328 08:57:29.938701 IP 80.12.211.102.49152 > 232.0.1.205.8200: UDP, length 1328 08:57:29.940013 IP 80.12.211.102.49152 > 232.0.1.205.8200: UDP, length 1328 08:57:29.941339 IP 80.12.211.102.49152 > 232.0.1.205.8200: UDP, length 1328 08:57:29.942638 IP 80.12.211.102.49152 > 232.0.1.205.8200: UDP, length 1328 ... ^C
Explications: Ci dessus nous regardons France3 en basse résolution. Des pages et des pages de :
IP 80.12.211.1.49152 > 232.0.1.2.8200: UDP, length 1328
Sur la télécommande du décodeur nous zappons sur TF1 en HD. Il y a envoi d'une requête IGMP3) ordonnant de quitter le groupe de réception de France2 :
mediatv.local > 224.0.0.2: igmp leave 232.0.1.2
Puis une demande de faire parti du groupe de reception de TF1HD
IP 10.141.55.29 > 232.0.1.205: igmp v2 report 232.0.1.205
Donc:
France3 SD = 232.0.1.2
TF1 HD = 232.0.1.205
Cela va permettre de créer notre fichier Playlist –.m3u– nécessaire au paramétrage de la pseudo carte Orange TV décrit plus bas dans <choix 2> / Configuration de la carte d'acquisition.
Déposer le fichier ChainesOrangeTV.m3u dézippé. dans:
/var/www/html
Pour déclarer la carte OrangeTV nous allons utiliser mythtv-setup.
[meditav@localhost ~]$ mythtv-setup
Successivement les choix -2 -3 -4 -5 seront sélectionnés.
Dans la zone type de carte faire défiler jusqu'à Enregistreur réseau. Dans la zone URL M3U préciser l'url de localisation et le nom du fichier PlayList ChainesOrangeTV.m3u constitué ci-dessus.
Puis selectionner terminer.
Dans la zone Nom de la source vidéo Choisir librement un nom unique.
Au niveau du Récupérateur de grille, choisir Aucun récupérateur, étant donné que nous imposons la grille à l'aide de notre fichier PlayList “m3u”, et que nous paramétrerons les programmes TV à l'aide du Grabber choisi plus bas.
Puis selectionner terminer.
C'est ici que nous allons entre autres, définir la relation entre notre source vidéo et notre carte d'acquisition.
Bien que nous soyons chez Orange, sélectionner FREEBOX.
Vous pouvez donner un nom d'affichage. Nécessaire si vous avez d'autre cartes TV ou Tuner. Cela permettra de basculer la source des chaînes lorsque vous regarderez ou enregistrerez la Télévision.
Dans la zone Source vidéo faire défiler jusqu'à la source que vous avez déclarée au point ci-dessus “Configuration de la source vidéo”.
Puis sélectionner Récupérer les chaînes. (Voir ce-dessous l'écran “Configuration du balayage”).
Dans la zone Canal de départ choisir impérativement la chaine 2. Ceci évitera tout problème d'affichage lors du lancement de la visualisation des Chaînes en direct.
C'est ici que nous trouvons les chaînes découvertes sur la source vidéo Orange.
Le bouton Téléchargement permet de récupérer les icônes de chaînes.
Le double-clique sur une chaîne permet d'éditer celle-ci.
Selon la méthode de récupération des programmes TV (xmltv) que vous avez adopté:
(Voir ce lien sur la Récupération des programmes TV (xmltv).
Paramétrer chacune des chaînes pour indiquer le “XMLTV ID”:
Dans la solution KaZer les “XMLTV ID” sont à découvrir en tête de fichier tvguide.xml récupéré.
Ci contre le paramètre “XMLTV ID:” ART1.kazer.org découvert ci-dessous.
Exemple tvguide.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE tv SYSTEM "xmltv.dtd"> <tv generator-info-name="KaZeR's XMLTV" generator-info-url="http://www.kazer.org"> <channel id="TLM2.kazer.org"> <display-name>TLM - Télé Lyon Métropole</display-name> </channel> <channel id="CAN2.kazer.org"> <display-name>Canal+</display-name> </channel> <channel id="ART1.kazer.org"> <display-name>Arte</display-name> </channel> .... ... ..
Terminer par la touche <Echap>, puis au message final cliquer sur <OK>.
Cette capture d'écran PhpMyadmin de la table 'mythconverg.channel' illustre la manière de mettre à jour ce champ xmltvid d'une manière plus rapide.
- Cette requête MySql permet de découvrir le sourceid de la pseudo carte TV Orange
[mediatv@mediatv ~]$ [mediatv@mediatv ~]$ echo 'select displayname, sourceid from cardinput' | mysql --database=mythconverg --user=mythtv --password=mythtv displayname sourceid WinFast_DTV1000 0 OrangeTV 1 [mediatv@mediatv ~]$
Ici nous péciserons donc un sourceid de '1' dans la commande mythfilldatabase dans le cadre d'une récupération du guide xmltv de KaZer.org
[mediatv@mediatv ~]$ wget -q "http://www.kazer.org/gen_xml.php?u=MonMotDePasseAMoi=zip" -O tvguide.zip [mediatv@mediatv ~]$ unzip tvguide.zip [mediatv@mediatv ~]$ /usr/bin/mythfilldatabase --file 1 tvguide.xml --no-delete
Sur le Forum Configuration d'une carte TV Orange LiveBox