Linux & Co
Accueil du siteLinux
Dernière mise à jour :
mercredi 13 décembre 2006
Statistiques éditoriales :
44 Articles
1 Brève
3 Sites Web
81 Auteurs

Statistiques des visites :
4 aujourd'hui
0 hier
13891 depuis le début
   
La TNT sous Linux
Installation et configuration
mardi 17 mai 2005
par Johann Lahitte

Cette article à été récuperer sur un autre site internet (voir post scriptum de la page). Les informations qui sont ici contenu n’ont pas encore été testé par nos soins.

La TNT Installation de la carte

Comme dit plus haut, j’ai choisi un une Avermedia 771 (http://www.avermedia.com/cgi-bin/products_digitvtuner_dvbt771.asp) qui offre un bon rapport qualité prix ainsi qu’un support annoncé sous Linux (même si c’est un peu succinct, ca a le mérite d’exister), notamment au travers du document texte disponible ici : http://www.avermedia.com/docs/pdffiles/linux.txt . Pour toute information sur le DVB sous Linux (satellite, terrestre, cable), consultez le Wiki de linuxtv.org dispo ici : http://www.linuxtv.org/wiki/index.php/Main_Page .

Je conseille fortement d’utiliser un kernel > 2.6.10, qui intègre tous les drivers permettant de gérer cette carte. Personnellement, j’ai opté pour un 2.6.11.8, qui fonctionne parfaitement. Une fois votre kernel recompilé/installé, vous devriez obtenir ce genre de message durant le boot (commande dmesg pour vérifier bien sûr).

Linux video capture interface : v1.00 bttv : driver version 0.9.15 loaded bttv : using 8 buffers with 2080k (520 pages) each for capture bttv : Bt8xx card found (0). PCI : Found IRQ 10 for device 0000:00:09.0 PCI : Sharing IRQ 10 with 0000:00:09.1 bttv0 : Bt878 (rev 17) at 0000:00:09.0, irq : 10, latency : 64, mmio : 0xcfdfc000 bttv0 : detected : AVermedia AverTV DVB-T 771 [card=123], PCI subsystem ID is 1461:0771 bttv0 : using : AVerMedia AVerTV DVB-T 771 [card=123,autodetected] bttv0 : gpio : en=00000000, out=00000000 in=00ffff5f [init] bttv0 : using tuner=4 bttv0 : registered device video0 bttv0 : registered device vbi0 bttv0 : PLL : 28636363 => 35468950 .. ok bttv0 : add subdevice "remote0" bttv0 : add subdevice "dvb0" tvaudio : TV audio decoder + audio/video mux driver tvaudio : known chips : tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6320,tea6420,tda8425,pic16c54 (PV951),ta8874z

Ensuite, une essayez de charger les modules suivants :

  • Code :

    modprobe mt352
    modprobe dvb-bt8xx

dmesg devrait alors afficher les lignes suivantes :

bt878 : AUDIO driver version 0.0.0 loaded bt878 : Bt878 AUDIO function found (0). PCI : Found IRQ 10 for device 0000:00:09.1 PCI : Sharing IRQ 10 with 0000:00:09.0 bt878(0) : Bt878 (rev 17) at 00:09.1, irq : 10, latency : 64, memory : 0xcfdfd000 DVB : registering new adapter (bttv0). DVB : registering frontend 0 (Zarlink MT352 DVB-T)...

Normalement, votre carte est alors correctement installée. Logiciels et tests

Il faut alors installer les outils suivants :

 Une fois tout ceci compilé (je vous le conseille, car les versions embarquées par défaut dans les distributions ont des comportements ... aléatoires), il faut ensuite contruire le fameux fichier channels.conf, qui va servir à configurer tout le reste.

 Pour ce faire, nous allons utiliser l’utilitaire dvbscan du package dvb-apps, qui a besoin toutefois de connaitre les fréquences de base des transpondeurs. La mauvaise nouvelle, c’est que ces fréquences ne sont pas facile à trouver à ma connaissance pour la France, mais heureusement, la base de config de DVB-SCAN commence à être mise à jour sous le CVS de linuxtv.org (au moins pour Rennes et Paris). Télécharger ces fichiers selon votre localisation et stocker les sous /usr/share/dvb/dvb-t/ :

 Il suffit ensuite de lancer la commande :

  • Code : dvbscan -c /usr/share/dvb/dvb-t/fr-Rennes > tnt-channels.conf

 Votre fichier tnt-channels.conf devrait ressembler à ça (pour Rennes au moins) :

TF1:562000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVAL _1_32 :HIERARCHY_NONE:120:130:1537 NRJ12:562000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERV AL_1_32 :HIERARCHY_NONE:220:230:1538 TPS Star:562000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INT ERVAL_1_32 :HIERARCHY_NONE:520:0:1541 France 2:586000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INT ERVAL_1_32 :HIERARCHY_NONE:120:130:257 France 4:586000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INT ERVAL_1_32 :HIERARCHY_NONE:420:430:259 France 5:586000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INT ERVAL_1_32 :HIERARCHY_NONE:320:330:260 ARTE:586000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVA L_1_32 :HIERARCHY_NONE:520:530:261 LCP:586000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVAL _1_32 :HIERARCHY_NONE:620:630:262 France 3:586000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INT ERVAL_1_32 :HIERARCHY_NONE:220:230:278 Canal +:650000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTE RVAL_1_32 :HIERARCHY_NONE:160:80:769 Direct 8:674000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INT ERVAL_1_32 :HIERARCHY_NONE:160:80:513 TMC:674000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVAL _1_32 :HIERARCHY_NONE:161:84:514 M6:626000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVAL_ 1_32 :HIERARCHY_NONE:120:130:1025 W9:626000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVAL_ 1_32 :HIERARCHY_NONE:220:230:1026 NT1:626000000 :INVERSION_AUTO :BANDWIDTH_8_MHZ :FEC_1_2 :FEC_AUTO :QAM_16 :TRANSMISSION_MODE_8K :GUARD_INTERVAL _1_32 :HIERARCHY_NONE:320:330:1027

 Copier le fichier tnt-channels.conf sous ~/.mplayer/channels.conf et testez la commande suivante :

  • Code : mplayer dvb://TMC -vo x11

Et ca devrait marcher .... !! Voir les chaines de la TNT sous Freevo

 Pour que Freevo affiche les chaines TNT correctement, il faut editer/modifer les variables de config suivantes :

VIDEO_GROUPS[0].group_type = ’dvb’ TV_CHANNELS = [(’C1.telepoche.com’, ’TF1’, ’TF1’ ), (’C2.telepoche.com’, ’France 2’, ’France2’ ), (’C3.telepoche.com’, ’France 3’, ’France3’ ), (’C28.telepoche.com’, ’France 4’, ’France4’ ), (’C7.telepoche.com’, ’La cinq’, ’France5’ ), (’C4.telepoche.com’, ’Canal+’, ’CANAL’ ), (’C5.telepoche.com’, ’Arte’, ’ARTE’ ), (’C6.telepoche.com’, ’M6’, ’M6’ ), (’C38.telepoche.com’, ’W9’, ’W9’ ), (’C167.telepoche.com’, ’Direct 8’, ’Direct8’ ), (’C9.telepoche.com’, ’TMC’, ’TMC’ ), (’C169.telepoche.com’, ’NRJ12’, ’NRJ12’ ), (’C168.telepoche.com’, ’NT1’, ’NT1’ ), (’C170.telepoche.com’, ’LCP’, ’LCP’ ) ]

 Il faut aussi vérifier que le champ dvb est bien présent dans la variable MPLAYER_ARGS :

MPLAYER_ARGS = ’dvd’ : ’-cache 8192’, ’vcd’ : ’-cache 4096’, ’cd’ : ’-cache 8192 -cdda speed=1’, ’tv’ : ’-nocache -vf pp=fd’, ’avi’ : ’-cache 16384 -idx ’, ’dvb’ : ’-ao alsa :device=hw=2.0 -vf pp=md -cache 1024’, ’mkv’ : ’-cache 16384 -sid 0’, ’rm’ : ’-cache 5000 -forceidx’, ’webcam’ : ’tv :// -tv driver=v4l :width=352 :height=288 :outfmt=yuy2 :device=/dev/video2’, ’default’ : ’-cache 5000’

 Naturellement, les "CX.telepoche.com’ sont les clés générées par le grabbeur XMLTV officiel, si vous utilisez un autre grabbeur, il faut les modifier.

 Relancer Freevo et essayer de lancer une chaine (a noter que le temps de selection de chaine dure environ 4 secondes, certainement le temps que le tuner "s’accroche" correctement). Enregistrer les chaines de la TNT sous Freevo

 C’est beaucoup plus simple qu’avec nos vieilles chaine hertziennes. Selon la puissance de votre CPU, vous avez grosso-mode deux possibilités :

  • encodage temps rée en MPEG4 (ou autre standard). Avantage : réduction de la taille des fichiers générés. Inconvénients : Ca consomme pas mal de CPU, puisque que l’on fait du MPEG2 -> YUV -> MPEG4 (donc décodage + encodage)
  • "copier" directement le flux DVB MPEG2. Avantage : Trés peu de CPU consommée, puisque les paquets MPEG-TS sont simplement "démuxés" et stockés tel quels dans un fichier. Inconvénients : Ca fait des GROS fichiers.

 Personnellement, j’ai atteint les limites de mon vieux Duron 800 en ce qui concerne l’enregistrement MPEG4. J’obtiens au maximum du 20 Fps par seconde en encodage et les résultats sont catastrophique. J’enregistre donc directement le flux MPEG2 en positionnant la commande VCR_CMD comme suit :

VCR_CMD = ( ’nice -n -20 ’ + CONF.mencoder + ’ ’ + ’dvb ://%(channel)s’ + ’ -ovc copy -oac copy ’ + # Direct stream copy ’ -idx ’ + # Fix idx ’-endpos %(seconds)s ’ + # only mencoder uses this so do it here. ’-o %(filename)s ’ ) # Filled in by Freevo

Ca génère un fichier d’environ 2 ou 3 Go par heure d’enregistrement. Ce chiffre dépend naturellement du débit de la chaine concernée, par exemple j’observe que TF1 broadcaste en 4Mbs/s la plupart du temps et que TMC reste plutot autour des 3Mbs/s.

 L’enregitrement "natif" du flux offre de plus un avantage non négligeble à la Biboobox : comme ce mode ne consomme que 6% de la CPU, il reste tout à fait possible de regarder un DivX ou un DVD pendant l’enregistrement d’une émission. Enregistrer les chaines de la TNT sous Freevo

Etant donné la taille des fichiers générés (et sans compter les publicités, les délais avant/après, etc, etc), il vaut mieux convertir les fichiers MPEG2 en MPEG4-part2 (aka Xvid/DivX). Personnellement, je fais ça en trois étapes :

  1. Conversion du flux MPEG2-TS en flux MPEG4+MP3 avec la commande suivante : mencoder FICHIER_INPUT -vf scale=512:384 -oac mp3lame -lameopts cbr :br=128 -ovc lavc -lavcopts vcodec=mpeg4 :vbitrate=900 :vmax_b_frames=3 :vhq :v4mv :keyint=300 -ffourcc divx -o FICHIER_OUTPUT.AVI
  2. Edition du fichier FICHIER_OUTPUT.AVI avec avidemux (http://fixounet.free.fr/avidemux/ ) afin de remettre les index à jour (menu "MISC->Rebuid Frames (I & B)") -> je n’ai encore pas compris pourquoi mencoder me génère un fichier qui pose problème avec les index, à creuser ...
  3. Réouverture du fichier FICHIER_OUTPUT_IDX.AVI (donc ré-indéxer à l’étape 2) et suppression des publicités et positionnement correct des frames de début et de fin, puis sauvegarde

Le fichier est prêt à être sauvegardé, avec une taille plus raisonnable.

Post Scriptum :
Pour voir l’article source, rendez-vous sur : http://www.lahiette.com/biboobox/ ?Freevo/La+TNT