Projet

Général

Profil

Streaming de chaînes TNT sur un réseau local » Historique » Version 1

Julien Aubé, 03/09/2011 22:56

1 1 Julien Aubé
h1. Streaming de chaînes TNT sur un réseau local
2 1 Julien Aubé
3 1 Julien Aubé
Cette page explique l'une des installations possible pour diffuser les chaînes de la TNT sur un réseau local, en multicast.
4 1 Julien Aubé
5 1 Julien Aubé
h2. Matériel
6 1 Julien Aubé
7 1 Julien Aubé
Il faut:
8 1 Julien Aubé
9 1 Julien Aubé
* Un PC, relativement puissant, sous Linux. J'ai choisi un AMD Fusion E350, avec 8Go de RAM.
10 1 Julien Aubé
* Autant de tuners TV que de multiplex à diffuser. Sur Cahors, il y a 4 multiplex, j'ai choisi 2 cartes TV double-tuner : Terratec Cinergy T DualRC ( http://www.terratec.net/fr/produkte/Cinergy_T_Stick_Dual_RC_102264.html )
11 1 Julien Aubé
* Un amplificateur TV muni de autant de sorties que de tuners TV, si possible placé au plus près de l'antenne. Un simple dérivateur dégrade le signal, et les cartes TV n'aiment pas.
12 1 Julien Aubé
* Je conseille de faire toute l'installation en connecteurs de type "F" (filetés, comme pour le satellite). J'ai simplement utilisé des convertisseurs au niveau de la prise murale, et des cartes TV. La raison, c'est que ces connecteurs sont moins sujets aux vibrations et aux perturbations transitoires.
13 1 Julien Aubé
* Au niveau réseau , un switch capable de faire de l'IGMP-Snooping (sinon vous avez le risque d'inonder le réseau).
14 1 Julien Aubé
15 1 Julien Aubé
h2. Driver des cartes TV
16 1 Julien Aubé
17 1 Julien Aubé
Il vous faut arriver à la situation suivante:
18 1 Julien Aubé
<pre>
19 1 Julien Aubé
 /dev/dvb/adapter0/demux0
20 1 Julien Aubé
                  /dvr0
21 1 Julien Aubé
                  /frontend0
22 1 Julien Aubé
                  /net0
23 1 Julien Aubé
         /adapter1/demux0
24 1 Julien Aubé
                  /dvr0
25 1 Julien Aubé
                  /frontend0
26 1 Julien Aubé
                  /net0
27 1 Julien Aubé
         /adapter2/demux0
28 1 Julien Aubé
                  /dvr0
29 1 Julien Aubé
                  /frontend0
30 1 Julien Aubé
                  /net0
31 1 Julien Aubé
         /adapter3/demux0
32 1 Julien Aubé
                  /dvr0
33 1 Julien Aubé
                  /frontend0
34 1 Julien Aubé
                  /net0
35 1 Julien Aubé
</pre>
36 1 Julien Aubé
37 1 Julien Aubé
Dans le cas des cartes USB de type Terratec Cinergy T DualRC  , le driver est _dvb_usb_af9015_ .
38 1 Julien Aubé
39 1 Julien Aubé
Ce driver nécessite un firmware, et après plusieurs essais, le firmware (http://otit.fi/~crope/v4l-dvb/af9015/af9015_firmware_cutter/firmware_files/ ) qui marche le mieux est le 4.65 , à placer dans /lib/firmware/<kernel-version>/dvb-usb-af9015.fw . 
40 1 Julien Aubé
Attention, souvent la distribution *écrase* ce fichier et place une version différente du firmware, ça crée des bugs bizarres.
41 1 Julien Aubé
42 1 Julien Aubé
Dans /etc/modprobe.d/dvb/cof j'ai placé les options suivantes:
43 1 Julien Aubé
<pre>
44 1 Julien Aubé
options dvb_usb_af9015  remote=-1
45 1 Julien Aubé
options dvb_usb         disable-rc-polling=1
46 1 Julien Aubé
options usbcore         autosuspend=-1
47 1 Julien Aubé
</pre>
48 1 Julien Aubé
Ceci désactive la télécommande (qui ne marche pas sur ces adaptateurs de toute façon) et évite de flooder les logs, mais aussi désactive la suspension USB , qui fait planter la carte et nécessite un redémarrage à froid.
49 1 Julien Aubé
50 1 Julien Aubé
Une fois que ça marche, j'ai ceci dans les logs:
51 1 Julien Aubé
52 1 Julien Aubé
<pre>
53 1 Julien Aubé
[   14.632591] dvb-usb: found a 'TerraTec Cinergy T Stick Dual RC' in cold state, will try to load a firmware
54 1 Julien Aubé
[   14.694155] dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'
55 1 Julien Aubé
[   14.762381] dvb-usb: found a 'TerraTec Cinergy T Stick Dual RC' in warm state.
56 1 Julien Aubé
[   14.762638] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
57 1 Julien Aubé
[   14.763897] DVB: registering new adapter (TerraTec Cinergy T Stick Dual RC)
58 1 Julien Aubé
[   14.827810] af9013: firmware version:4.65.0.0
59 1 Julien Aubé
[   14.834356] DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...
60 1 Julien Aubé
[   14.846115] mxl5007t 1-00c0: creating new instance
61 1 Julien Aubé
[   14.849933] mxl5007t_get_chip_id: unknown rev (3f)
62 1 Julien Aubé
[   14.850017] mxl5007t_get_chip_id: MxL5007T detected @ 1-00c0
63 1 Julien Aubé
[   14.852144] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
64 1 Julien Aubé
[   14.852906] DVB: registering new adapter (TerraTec Cinergy T Stick Dual RC)
65 1 Julien Aubé
[   15.501354] af9013: found a 'Afatech AF9013 DVB-T' in warm state.
66 1 Julien Aubé
[   15.505639] af9013: firmware version:4.65.0.0
67 1 Julien Aubé
[   15.521986] DVB: registering adapter 1 frontend 0 (Afatech AF9013 DVB-T)...
68 1 Julien Aubé
[   15.522339] mxl5007t 2-00c0: creating new instance
69 1 Julien Aubé
[   15.525602] mxl5007t_get_chip_id: unknown rev (3f)
70 1 Julien Aubé
[   15.525687] mxl5007t_get_chip_id: MxL5007T detected @ 2-00c0
71 1 Julien Aubé
[   15.528612] dvb-usb: TerraTec Cinergy T Stick Dual RC successfully initialized and connected.
72 1 Julien Aubé
[   15.974156] dvb-usb: found a 'TerraTec Cinergy T Stick Dual RC' in cold state, will try to load a firmware
73 1 Julien Aubé
[   15.984388] dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'
74 1 Julien Aubé
[   16.051462] dvb-usb: found a 'TerraTec Cinergy T Stick Dual RC' in warm state.
75 1 Julien Aubé
[   16.051719] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
76 1 Julien Aubé
[   16.052967] DVB: registering new adapter (TerraTec Cinergy T Stick Dual RC)
77 1 Julien Aubé
[   16.060942] af9013: firmware version:4.65.0.0
78 1 Julien Aubé
[   16.067817] DVB: registering adapter 2 frontend 0 (Afatech AF9013 DVB-T)...
79 1 Julien Aubé
[   16.068222] mxl5007t 3-00c0: creating new instance
80 1 Julien Aubé
[   16.071530] mxl5007t_get_chip_id: unknown rev (3f)
81 1 Julien Aubé
[   16.071615] mxl5007t_get_chip_id: MxL5007T detected @ 3-00c0
82 1 Julien Aubé
[   16.073434] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
83 1 Julien Aubé
[   16.074030] DVB: registering new adapter (TerraTec Cinergy T Stick Dual RC)
84 1 Julien Aubé
[   16.717317] af9013: found a 'Afatech AF9013 DVB-T' in warm state.
85 1 Julien Aubé
[   16.721354] af9013: firmware version:4.65.0.0
86 1 Julien Aubé
[   16.737449] DVB: registering adapter 3 frontend 0 (Afatech AF9013 DVB-T)...
87 1 Julien Aubé
[   16.737808] mxl5007t 4-00c0: creating new instance
88 1 Julien Aubé
[   16.741072] mxl5007t_get_chip_id: unknown rev (3f)
89 1 Julien Aubé
[   16.741157] mxl5007t_get_chip_id: MxL5007T detected @ 4-00c0
90 1 Julien Aubé
[   16.743857] dvb-usb: TerraTec Cinergy T Stick Dual RC successfully initialized and connected.
91 1 Julien Aubé
</pre>
92 1 Julien Aubé
93 1 Julien Aubé
h2. Software
94 1 Julien Aubé
95 1 Julien Aubé
h3. Chaînes TV
96 1 Julien Aubé
97 1 Julien Aubé
Il vous faudra connaître les chaînes TV qui vous sont accessibles.
98 1 Julien Aubé
Pour cela, l'utilitaire a utiliser est _scan_ :
99 1 Julien Aubé
100 1 Julien Aubé
<pre>scan -a 0 /usr/local/share/dvb/dvb-t/fr-Cahors</pre>
101 1 Julien Aubé
102 1 Julien Aubé
(Bien sur il faut remplacer le fichier par celui de votre zone géographique)
103 1 Julien Aubé
104 1 Julien Aubé
Ceci va vous lister la liste des chaînes sur chaque multiplex.
105 1 Julien Aubé
106 1 Julien Aubé
h3. Mumudvb
107 1 Julien Aubé
108 1 Julien Aubé
J'ai commencé par utiliser mumudvb. Il est plus simple d'utilisation et supporte l'igmp-snooping, mais malheureusement je l'ai trouvé moins stable dans le temps: Une erreur dans le flux TV (ce qui arrive de temps en temps) le fait planter sèchement. J'ai malgré tout inséré les fichiers de configuration que j'ai utilisé en attachement de cet article.
109 1 Julien Aubé
(Attention, ces fichiers ne diffusent pas en multicast - ils sont configurés pour l'unicast)