A propos / How-To...
Je viens de m’acheter un module tuner TNT (Télévision Numérique Terrestre) en USB2 : Terratec Cinergy T2 (environ 110€ à la FNAC) pour pouvoir regarder la TNT sur mon ordinateur portable sous Microsoft Windows (WinXP) et GNU/Linux (distribution Gentoo). Le module est l’un des plus petits (75g) disponibles sur le marché, et est livré complet avec une télécommande et une petite antenne de 8cm.
Edit : 2005/10/29 : ajout des nouvelles chaines TNT grâce à julien
Documentation
J’ai collecté une liste de sites traitant de la TNT sous GNU/Linux :
- http://lea-linux.org/pho/read/4/223187
- http://www.lahiette.com/biboobox/ ?Freevo/La+TNT
- http://www.carfax.org.uk/docs/DVB
- http://www.parinux.org/ressources/supports-confs/tnt.sxi
- http://www.alionet.org/lofiversion/index.php/t5991.html
Drivers et Logiciels
Il faut installer les logiciels et drivers disponibles sur le site linuxtv. J’ai utilisé la version cvs avec un kernel 2.6.11 dont les sources sont installées dans /usr/src/linux.
$ mkdir -p ~/src/linuxtv-cvs
$ cd ~/src/linuxtv-cvs
$ cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv login
(mettre un mot de passe vide)
$ cvs -z3 -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv co dvb-kernel
$ cvs -z3 -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv co dvb-apps
$ cd dvb-kernel
$ ./makelinks /usr/src/linux
Passer en root et compiler le module cinergyT2 :
# cd /usr/src/linux
# make menuconfig
et choisir :
Device Drivers --->
Multimedia devices
<M> Video For Linux
Video For Linux --->
Radio Adapters --->
Digital Video Broadcasting Devices --->
[*] DVB For Linux
<M> DVB Core Support
[...]
<M> Terratec CinergyT2/qanu USB2 DVB-T receiver
(*) sophisticated fine-tuning for CinergyT2 cards
(32) Number of queued USB Request Blocks for Highspeed Stream Transfers
(512) Size of URB Stream Buffers for Highspeed Transfers
(250) Status update interval [milliseconds]
[*] Register the onboard IR Remote Control Receiver as Input Device
(100) Infrared Remote Controller update interval [milliseconds]
puis recompiler et installer les modules :
# make modules
# make modules_install
Compiler les logiciels fournis par linuxtv :
$ cd ~/src/linuxtv-cvs/dvb-apps/util/szap
$ make
# make install
Tester le module TNT
Charger le module cinergyT2 :
# modprobe cinergyT2
Vous devriez avoir de nouvelles entrées dans /dev :
# ls -la /dev/dvb/adapter0
total 0
drwxr-xr-x 2 root root 120 jun 16 2005 ./
drwxr-xr-x 3 root root 60 jun 16 2005 ../
crw-rw---- 1 root video 212, 4 jun 11 20:39 demux0
crw-rw---- 1 root video 212, 5 jun 11 20:39 dvr0
crw-rw---- 1 root video 212, 3 jun 11 20:39 frontend0
crw-rw---- 1 root video 212, 7 jun 11 20:39 net0
Fréquences sur Paris
Créer le fichier /.tzap/channels.conf :
TF1:562167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:1537
France2:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:120:130:257
France3:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:220:230:273
France4:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:420:430:259
France5:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:320:330:260
M6:498167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:1025
TMC:474167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:161:84:514
Direct8:474167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:160:80:513
W9:498167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:220:230:1026
ARTE:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:520:530:261
NT1:498167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:320:330:1027
NRJ12:562167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:220:230:1538
[03f0]:522167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:2047:0:1008
LCP:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:620:630:262
Canal+:522167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:160:80:769
TPSStar:562167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:520:0:1541
I>TV:474167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:516
BFMTV:474167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:515
EUROPE2:474167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:517
GULLI:474167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:518
Utilisation du lecteur multimedia Xine
Fichier des chaînes TNT
Créer le fichier contenant les fréquences des chaînes TNT :
$ ln -s ~/.tzap/channels.conf ~/.xine/channels.conf
Afficher une chaîne TNT :
- 1ère méthode (si le support dvb est activé dans Xine)
$ xine dvb://<CHAINE>
où CHAINE est le nom d’une chaîne TNT, comme définie dans le fichier channels.conf. Par exemple, xine dvb ://ARTE
- 2ème méthode (si le support dvb est désactivé dans Xine)
Il faut ouvrir 2 consoles et taper dans chacune les commandes suivantes :
$ tzap -s -r <CHAINE>
$ xine stdin://mpeg2 < /dev/dvb/adapter0/dvr0
Utilisation du lecteur multimedia mplayer
Fichier des chaînes TNT
Créer le fichier contenant les fréquences des chaînes TNT :
$ ln -s ~/.tzap/channels.conf ~/.mplayer/channels.conf
Afficher une chaîne TNT :
- 1ère méthode (si le support dvb est activé dans mplayer)
$ mplayer dvb://<CHAINE>
où CHAINE est le nom d’une chaîne TNT, comme définie dans le fichier channels.conf. Par exemple, mplayer dvb ://ARTE
- 2ème méthode (si le support dvb est désactivé dans mplayer)
Il faut ouvrir 2 consoles et taper dans chacune les commandes suivantes :
$ tzap -s -r <CHAINE>
$ mplayer /dev/dvb/adapter0/dvr0
Utilisation d’un buffer/cache :
Pour obtenir une meilleure qualité d’affichage, il est possible de préciser une taille de buffer avec l’option -cache. Par exemple :
$ mplayer -cache 1024 dvb://ARTE
ou
$ mplayer -cache 1024 /dev/dvb/adapter0/dvr0
Utilisation de VLC 0.8.1 : Videolan Client
Les paramètres complets de VLC sont les suivants (cf. http://www.via.ecp.fr/via/ml/vlc/2004-06/msg00115.html-), par exemple, pour voir la chaîne TF1 :
vlc -vvv dvb-t:adapter=0:frequency=562167000:inversion=2:bandwidth=8:\
code-rate-hp=2:code-rate-lp=0:modulation=64:transmission=8:\
guard=32:hierarchy=-1 --program=1537
Cependant, tous les paramètres ne sont pas indispensables car la plupart des paramètres sont auto-détectés. Par exemple, pour voir les chaînes TNT sur Paris, voici les commandes que j’utilise :
TF1
$ vlc -vvv dvb-t:adapter=0:frequency=562167000:bandwidth=8 --program=1537
France 2
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=257
France 3
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=273
France 4
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=259
France 5
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=260
M6
$ vlc -vvv dvb-t:adapter=0:frequency=498167000:bandwidth=8 --program=1025
TMC
$ vlc -vvv dvb-t:adapter=0:frequency=474167000:bandwidth=8 --program=514
Direct 8
$ vlc -vvv dvb-t:adapter=0:frequency=474167000:bandwidth=8 --program=513
W9
$ vlc -vvv dvb-t:adapter=0:frequency=498167000:bandwidth=8 --program=1026
ARTE
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=261
NT1
$ vlc -vvv dvb-t:adapter=0:frequency=498167000:bandwidth=8 --program=1027
NRJ-12
$ vlc -vvv dvb-t:adapter=0:frequency=562167000:bandwidth=8 --program=1538
LCP
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=262
Canal +
$ vlc -vvv dvb-t:adapter=0:frequency=522167000:bandwidth=8 --program=769
TPS star
$ vlc -vvv dvb-t:adapter=0:frequency=562167000:bandwidth=8 --program=1541
Enregistrer la télévision
Vidéo non compressée :
Comme précédemment, il y a 2 méthodes pour enregistrer une émission :
- 1ère méthode : grâce à la magie de GNU/Linux, l’enregistrement d’une émission est très simple. Il faut ouvrir 2 consoles et taper dans chacune les commandes suivantes :
$ tzap -s -r <CHAINE>
$ cat /dev/dvb/adapter0/dvr0 > video.avi
- 2ème méthode (support de dvb dans mplayer/mencoder)
$ mencoder dvb://<CHAINE> -ovc copy -oac copy -idx -o video.avi
Vidéo compressée :
[en cours de test].. J’utilise le logiciel mencoder pour enregistrer et encoder à la volée la télévision. J’ai testé les commandes suivantes :
$ mencoder dvb://<CHAINE> -o video.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg2video
$ mencoder dvb://<CHAINE> -o video.avi -oac copy -ovc divx4
$ mencoder dvb://<CHAINE> -o video.avi -oac lavc -ovc lavc -lavcopts acodec=mp2:vcodec=mpeg2video:vhq:vbitrate=4096
$ mencoder dvb://<CHAINE> -o video.avi -oac mp3lame -lameopts cbr:br=128:mode=0 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500:keyint=25 -noencodedups
kaffeine
- Lancer au moins une fois kaffeine pour initialisez les fichiers de configuration ; puis le fermer.
- Editer le fichier &tilde/.kde/share/apps/kafeine/dvb-t/fr-Paris
# Paris - France (DVB-T transmitter of the Eiffel tower)
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 474167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 498167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 522167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 562167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 586167000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
- Lancer kaffeine, aller dans le menu DVB, puis Chaînes.
- Choisir dans la liste : fr-Paris puis cliquer sur le bouton "Démarrer le scanner..."

- kaffeine - chaines
- Valider puis choisir une chaîne dans la liste

- kaffeine
Rq (mise à jour Novembre 2006) : l’interface de la nouvelle version 0.8.6 (cf : Sortie de Kaffeine 0.8.3) est plus pratique : la liste des chaînes TNT est directement disponible dans une colonne à gauche, et non plus dans un onglet à part.
Streaming avec VLC 0.8.1 : Videolan Client
Unicast (envoi d’une chaine TNT sur un poste client)
Pour streamer une chaine (par exemple France 2) et afficher la video simultanément sur le serveur, taper la commande suivante :
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=257 --sout='#duplicate{dst=display,dst=standard{access=udp,mux=ts,url=192.168.1.2,sap,name="France2"}}'
(192.168.1.2 est l’adresse IP du poste client)
Pour streamer une chaine (par exemple France 2) sans afficher la video simultanément sur le serveur, taper la commande suivante :
$ vlc -vvv dvb-t:adapter=0:frequency=586167000:bandwidth=8 --program=257 --sout='#standard{access=udp,mux=ts,url=192.168.1.2,sap,name="France2"}}'
(192.168.1.2 est l’adresse IP du poste client)
... et sur le poste client, taper la commande suivante :
$ vlc udp:
Unicast (envoi de plusieurs chaines TNT sur plusieurs postes client)
Pour streamer plusieurs chaines sur le même transpondeur sur plusieurs postes clients avec des adresses IP différentes (par exemple France2, France3, France4 et France5), taper la commande suivante :
$ vlc -vvv --color --ttl=12
--ts-ed-id-pid
--programs 257,273,259,260
dvb-t:adapter=0:frequency=586167000:bandwidth=8
--sout='#duplicate{
dst=standard{access=udp,mux=ts,url=192.168.1.2,sap,name="France2",group="TNT"},select="program=257",
dst=standard{access=udp,mux=ts,url=192.168.1.3,sap,name="France3",group="TNT"},select="program=273",
dst=standard{access=udp,mux=ts,url=192.168.1.4,sap,name="France4",group="TNT"},select="program=259",
dst=standard{access=udp,mux=ts,url=192.168.1.5,sap,name="France5",group="TNT"},select="program=260"
}'
(192.168.1.2, 192.168.1.3, 192.168.1.4 et 192.168.1.5 sont les adresses IP des postes client)
... et sur chaque poste client, taper la commande suivante :
$ vlc udp:
Multicast (envoi de plusieurs chaines TNT sur une adresse multicast)
Pour streamer plusieurs chaines sur le même transpondeur vers une même adresse multicast (par exemple France2, France3, France4 et France5), taper la commande suivante :
$ vlc -vvv --color --ttl=12
--ts-ed-id-pid
--programs 257,273,259,260
dvb-t:adapter=0:frequency=586167000:bandwidth=8
--sout='#duplicate{
dst=standard{access=udp,mux=ts,url=239.20.30.40:3002,sap,name="France2",group="TNT"},select="program=257",
dst=standard{access=udp,mux=ts,url=239.20.30.40:3003,sap,name="France3",group="TNT"},select="program=273",
dst=standard{access=udp,mux=ts,url=239.20.30.40:3004,sap,name="France4",group="TNT"},select="program=259",
dst=standard{access=udp,mux=ts,url=239.20.30.40:3005,sap,name="France5",group="TNT"},select="program=260"
}'
(239.20.30.40 est l’adresse multicast utilisée)
... et sur le poste client, taper la commande suivante :
$ vlc udp:239.20.30.40:3002 udp:239.20.30.40:3003 udp:239.20.30.40:3004 udp:239.20.30.40:3005
Pour zapper entre les chaines TNT, ouvrir le menu "Vue->Liste de lecture..." (ou taper le raccourci clavier Ctrl+P) et double-cliquer sur une entrée de la liste.

- VLC - Liste de lecture avec les adresses Multicast
.. mais ce n’est pas très parlant. Une solution est d’utiliser le protocole SAP (Session Announcement Protocol, protocole de découverte de service qui permet d’annoncer sur une adresse multicast une liste des flux disponibles sur le serveur VLC). Pour activer le module SAP, il faut ouvrir le menu "Paramètres->Préférences" et sélectionner l’entrée "Paramètres généraux->Interface" puis rajouter dans la liste Modules d’interface supplémentaires le module : sap.

- VLC - Activation du module SAP (Session Announcement Protocol)
Dans la version vlc-0.8.2, le menu Préférences a changé et se présente sous forme d’arborescence :

- VLC-0.8.2 - Activation du module SAP (Session Announcement Protocol)
Relancer vlc et ouvrir de nouveau la liste de lecture avec le menu "Vue->Liste de lecture..." (ou taper le raccourci clavier Ctrl+P). Vous devriez voir le nom des chaines TNT dans la liste :)

- VLC - Liste de lecture avec le nom des chaînes streamées (SAP)
Mosaic avec VLC 0.8.2
La version 0.8.2 de videolan client permet de créer une mosaique des chaînes streamées (comme c’est le cas pour la freebox). Cependant, le nombre de chaînes en TNT étant limité actuellement, je n’utilise pas cette fonction...
Commentaires
1. mercredi 13 juillet 2005 à 16:08, par JAvel Neko
2. mercredi 13 juillet 2005 à 16:56, par JAvel Neko
3. jeudi 28 juillet 2005 à 15:25,
4. jeudi 27 octobre 2005 à 19:21, par julien
5. samedi 29 octobre 2005 à 17:26, par julien
6. mardi 22 novembre 2005 à 18:49, par starmate
7. vendredi 3 février 2006 à 11:59, par tetao
8. samedi 11 mars 2006 à 17:18, par mapomme
9. samedi 26 avril 2008 à 22:51,
Ajouter un commentaire