Diffuser la télé et la radio sur son réseau local

Sommaire

Je présente ici ma configuration pour diffuser la télévision (TNT) et la radio (FM et DAB+) reçues par voie hertzienne sur mon réseau local. Voyons le matériel nécessaire, les types de signaux à traiter et les différents logiciels utilisés.

Le matériel de réception

Tout d'abord un point sur la partie matérielle. Nous parlons de radiofréquences et de signaux transportés dans l'air, pour les recevoir il nous faut un bon lieu de réception dégagé en hauteur, par exemple un toit, et une antenne accordée à la fréquence que l'on veut recevoir.

Antennes toit

  • Une antenne UHF pour la TNT, polarisation horizontale, directive et orientée plein nord vers la tour Eiffel dans mon cas
  • Une antenne DAB+, polarisation verticale, omnidirectionnelle
  • Une antenne FM, polarisation verticale, omnidirectionnelle

Raspberry Pi + clé RTL-SDR

  • Une clé USB RTL-SDR connectée aux antennes
  • Une Raspberry Pi connectée en filaire au réseau local

La télévision TNT

La TNT, télévision numérique terrestre, est la technologie employée depuis 2005 en France métropolitaine pour la diffusion broadcast. La réception est anonyme et gratuite.

Depuis 2016, la norme technique de diffusion est le DVB-T avec une compression MPEG-4 AVC (H.264). Les fréquences utilisées vont de 470 MHz à 694 MHz (bande UHF).

Depuis fin 2023 débute la diffusion en DVB-T2 et la norme HEVC (H.265) de France 2 UHD et France 3 UHD.

En TNT, les chaînes de télévision sont regroupées dans plusieurs multiplex. Un multiplex est affecté à un canal, et un canal correspond à une fréquence en MHz. Voici un tableau récapitulatif des canaux, fréquences, multiplex, et chaînes associées (pour la région parisienne). Chaque multiplex (mux) a une bande passante de 8 MHz, la fréquence indiquée est la fréquence centrale. J'ai limité la liste des canaux à ceux autorisés en France. En France, la polarisation est Horizontale pour l'ensemble des chaînes TNT. Toutes les chaînes sont diffusées en full HD (1920x1080) à l'exception des chaînes "SD" (720x576). Le (#) signifie chaîne à péage, mais je ne sais même plus comment recevoir la TNT payante...

Canal Fréquence Mux Chaînes
21 474 MHz
22 482 MHz R3
CNH3
DVB-T
769 Canal+
776 LCI (SD)
777 Paris Première (SD)
771 Canal+ Sport (#)
770 Canal+ Cinéma (#)
772 Planète+ (#)
23 490 MHz
24 498 MHz R9
DVB-T2
2305 France 2 UHD
2306 France 3 UHD
25 506 MHz R2
NTN2
DVB-T
513 C8
515 BFM TV
516 CNews
517 CStar
518 Gulli
26 514 MHz
27 522 MHz
28 530 MHz R15
DVB-T
2050 Canal 31
2051 20 minutes TV
2053 Le Figaro TV IDF
29 538 MHz
30 546 MHz R4
Multi 4
DVB-T
1045 France 5
1025 M6
1031 Arte
1026 W9
1046 6ter
1047 Arte.Tv
31 554 MHz
32 562 MHz R6
SMR6
DVB-T
1537 TF1
1542 TMC
1544 TFX
1538 NRJ 12
1545 LCP
33 570 MHz
34 578 MHz
35 586 MHz R1
SGR1
DVB-T
257 France 2
273 F3 Paris IDF
260 France 4
262 franceinfo: (SD)
368 BFM Paris
36 594 MHz
37 602 MHz
38 610 MHz
39 618 MHz
40 626 MHz
41 634 MHz
42 642 MHz R7
MHD7
DVB-T
2561 TF1 Séries Films
2562 L'Équipe
2565 RMC Story
2564 RMC Découverte
2563 Chérie 25
43 650 MHz
44 658 MHz
45 666 MHz
46 674 MHz
47 682 MHz
48 690 MHz

Capture GQRX - télévision TNT
Visualisation de la partie supérieure du multiplex R4 (ma clé SDR ne permettant pas une largeur de bande de 8MHz).

Streamer la TNT

Sur la raspberry fraichement installée de raspbian, installez l'outil dvblast :

1sudo apt install dvblast

Vérifiez que la clé sdr est bien reconnue, vous devez avoir présent les fichiers suivants

1$ ls /dev/dvb/adapter0
2demux0  dvr0  frontend0  net0

Les modules suivants doivent également être chargés :

1$ lsmod | grep dvb
2dvb_usb_rtl28xxu       28672  0
3dvb_usb_v2             28672  1 dvb_usb_rtl28xxu
4dvb_core              114688  2 dvb_usb_v2,rtl2832
5mc                     40960  8 bcm2835_isp,bcm2835_codec,videobuf2_common,videodev,dvb_core,dvb_usb_v2,v4l2_mem2mem,videobuf2_v4l2

Importez ensuite dans un répertoire les fichiers de configurations et le script suivants :

r1.conf

1# Multiplex R1 - SGR1 - 586.166MHz
2239.255.0.2:1234  1 257 # France 2
3239.255.0.3:1234  1 273 # France 3 Paris Ile-de-France
4239.255.0.14:1234 1 260 # France 4
5239.255.0.19:1234 1 261 # Culturebox
6239.255.0.27:1234 1 262 # franceinfo:
7239.255.0.30:1234 1 368 # BFM Paris

r2.conf

1# Multiplex R2 - NTN2 - 506.166 MHz
2239.255.0.8:1234  1 513 # C8
3239.255.0.15:1234 1 515 # BFM TV
4239.255.0.16:1234 1 516 # CNews
5239.255.0.17:1234 1 517 # CStar
6239.255.0.18:1234 1 518 # Gulli

r3.conf

1# Multiplex R3 - CNH3 - 482.166 MHz
2239.255.0.4:1234  1 769 # Canal+
3239.255.0.43:1234 1 770 # Canal+ Cinéma
4239.255.0.42:1234 1 771 # Canal+ Sport
5239.255.0.45:1234 1 772 # Planète+
6239.255.0.26:1234 1 776 # LCI
7239.255.0.41:1234 1 777 # Paris Première
8239.255.0.46:1234 1 778 # Canal+

r4.conf

1# Multiplex R4 - Multi 4 - 546.166MHz
2239.255.0.6:1234  1 1025 # M6
3239.255.0.9:1234  1 1026 # W9
4239.255.0.7:1234  1 1031 # Arte
5239.255.0.05:1234 1 1045 # France 5
6239.255.0.22:1234 1 1046 # 6ter

r6.conf

1# Multiplex R6 - SMR6 - 562.166 MHz
2239.255.0.1:1234  1 1537 # TF1
3239.255.0.12:1234 1 1538 # NRJ12
4239.255.0.10:1234 1 1542 # TMC
5239.255.0.11:1234 1 1544 # TFX
6239.255.0.13:1234 1 1545 # LCP / Public Sénat

r7.conf

1# Multiplex R7 - MHD7 - 642.166 MHz
2239.255.0.20:1234 1 2561 # TF1 Séries Films
3239.255.0.21:1234 1 2562 # L'Équipe
4239.255.0.25:1234 1 2563 # Chérie 25
5239.255.0.24:1234 1 2564 # RMC Découverte
6239.255.0.23:1234 1 2565 # RMC Story

r15.conf

1# Multiplex local R15 - 530.166MHz
2239.255.0.31:1234 1 2050 # Canal 31 / Télé Bocal / Night TV
3239.255.0.32:1234 1 2051 # 20 minutes TV
4239.255.0.34:1234 1 2053 # Le Figaro TV IDF

hevc.conf

1# Multiplex R9 - 498MHz
2239.255.0.52:1234 1 2305 # France 2 UHD
3239.255.0.53:1234 1 2306 # France 3 UHD

stream.sh

 1#!/usr/bin/env bash
 2
 3##
 4# Lancement de diffusion d'un multiplex avec dvblast
 5# source: https://aerogus.net/posts/diffuser-tele-radio-reseau-local/
 6##
 7
 8[[ $# -lt 1 ]] && echo "mux manquant" && exit
 9
10case $1 in
11  r1)
12    dvblast -f 586000000 -c r1.conf
13    ;;
14  r2)
15    dvblast -f 506000000 -c r2.conf
16    ;;
17  r3)
18    dvblast -f 482000000 -c r3.conf
19    ;;
20  r4)
21    dvblast -f 546000000 -c r4.conf
22    ;;
23  r6)
24    dvblast -f 562000000 -c r6.conf
25    ;;
26  r7)
27    dvblast -f 642000000 -c r7.conf
28    ;;
29  r9)
30    dvblast -f 498000000 -c r9.conf
31    ;;
32  r15)
33    dvblast -f 530000000 -c r15.conf
34    ;;
35  *)
36    echo "mux inconnu"
37    ;;
38esac

n'oubliez pas de rendre exécutable ce script :

1chmod +x stream.sh

Usage : stream.sh r1

Ceci lancera dvblast et streamera le multiplex r1 sur les adresses des groupes multicast indiquées dans le fichier de conf.

Côté client, prenons VLC

1vlc rtp://239.255.0.19:1234

Cette ip:port correspond à la chaine Culturebox, elle devrait donc s'afficher à l'écran.

Capture VLC - télévision TNT
Capture d'écran de VLC avec un flux TNT

Enfin si on veut lancer en plein écran, et avec le désentrelacement, on peut ajouter des paramètres :

1vlc --fullscreen --deinterlace=1 --deinterlace-mode=yadif2x rtp://239.255.0.19:1234

La radio FM

  • Bande II VHF (de 88 MHz à 108 MHz)
  • Bande passante 200 kHz par station

Voici un relevé des stations que je capte.

ressources: https://www.commune-mairie.fr/frequence-radio/essonne-91/

Station Fréquence RDS Signal Émetteur
France Inter 87.6 MHz ? Faible
France Inter 87.8 MHz F201 Fort
? 88.0 MHz ? Moyen
Generations 88.2 MHz FE50 Bon
? 88.4 MHz ? Moyen
? 88.5 MHz ? Brouillé
R SOLEIL 88.6 MHz F230 Bon
Rire&Chansons 88.7 MHz ? Brouillé
Evasion 88.8 MHz ? Brouillé
R F I 89.0 MHz FE10 Bon
Sensations 89.2 MHz ? Moyen
Radio Libertaire 89.4 MHz FE5E Bon
Franc Culture 89.6 MHz F202 Bon
? 89.7 MHz ? Brouillé
TSF Jazz 89.9 MHz F223 Bon
Terre de Mixes 90.1 MHz FE5F Moyen+
Nostalgie 90.4 MHz F218 Fort
France Musique 90.7 MHz F203 Moyen
Chante France 90.9 MHz FE43 Bon
? 91.0 MHz ? Brouillé
? 91.1 MHz ? Brouillé
Cherie FM 91.3 MHz F224 Bon
France Musique 91.5 MHz ? Brouillé
France Musique 91.7 MHz F203 Fort
France Musique 91.8 MHz ? Brouillé
France Musique 91.9 MHz F203 Fort
Mouv' 92.1 MHz F208 Bon
? 92.3 MHz ? Faible
? 92.4 MHz ? Brouillé
Tropiques FM 92.6 MHz FE43 Bon
Mille Pattes 92.9 MHz FE96 Bon Saulx-les-Chartreux
France Culture 93.0 MHz F202 Brouillé Milly-la-Forêt
? 93.1 MHz ? Faible
France Culture 93.2 MHz F202 Moyen Etrechy
? 93.3 MHz ? Brouillé
Culture 93.5 MHz F202 Bon
? 93.8 MHz ? Brouillé
? 93.9 MHz ? Moyen
Orient 94.3 MHz F22B Bon
? 94.7 MHz ? Brouillé
? 94.8 MHz F097 Bon
? 95.0 MHz F201 Moyen
? 95.2 MHz ? Moyen
? 95.4 MHz ? Moyen/souffle
? 95.6 MHz ? Moyen
? 95.8 MHz ? Moyen
Skyrock 96.0 MHz F214 Fort
BFM Business 96.4 MHz F227 Bon
? 96.9 MHz ? Bon
Rire&Chansons 97.4 MHz ? Bon
? 97.8 MHz ? Moyen
France Culture 98.0 MHz ? Bon (Villebon)
? 98.2 MHz ? Moyen Brouillé
Latina 99.0 MHz ? Faible Brouillé
Evasion 99.3 MHz FE35 Très Fort
Sud Radio 99.9 MHz ? Moyen
NRJ 100.3 MHz ? Moyen
F. Protestante 100.7 MHz FE32 Bon
Classique 101.1 MHz F221 Bon
? 101.3 MHz ? Moyen
? 101.5 MHz ? Moyen+
FUN RADIO 101.9 MHz F217 Moyen+
OUI FM 102.3 MHz F21D Moyen/souffle
? 102.5 MHz ? Faible/bruit
M RADIO 102.7 MHz F225 Bon
? 102.9 MHz ? Mauvais
RMC 103.1 MHz F216 Bon
VIRGIN 103.5 MHz F219 Bon
RFM 103.9 MHz F212 Très bon
RTL 104.3 MHz F211 Bon
EUROPE 1 104.5 MHz ? Brouillé
EUROPE 1 104.7 MHz F213 Bon
FUN RADIO 104.9 MHz F217 Moyen
FIP 105.1 MHz F204 Bon
France Info 105.5 MHz F206 Bon
France Info 105.7 MHz F206 Bon
RTL2 105.9 MHz F215 Fort
? 106.2 MHz ? Moyen
? 106.3 MHz ? Moyen brouillé
LOVELY 106.5 MHz FE82 Fort
? 106.7 MHz ? Moyen
? 106.9 MHz ? Moyen
France Bleu 107.1 MHz F20A Bon
Handi FM 107.3 MHz ? Moyen
? 107.5 MHz ? Moyen
Autoroute FM 107.7 MHz ? Moyen souffle

Capture GQRX - radio FM
Visualisation de la forme d'onde de la bande FM. Accordé sur OÜI FM 102.3, on remarque les gros sons des voisins 101.9 (Fun Radio) et 102.7 (M Radio)

Streamer la FM

Méthode 1

Sur la raspberry fraichement installée de raspbian, installez l'outil rtl_tcp issu du paquet rtl-sdr. C'est un "serveur de spectre de signal en quadrature". Ceci va nous permettre de partager sur le réseau les données radio reçues par la clé. Attention, la bande passante d'un signal I/Q est assez gros (5Mo/s), la connexion filaire c'est mieux.

1sudo apt install rtl-sdr

saisissez le fichier suivant :

/etc/systemd/system/rtlsdr.service

 1[Unit]
 2Description=RTL-SDR Server
 3Wants=network-online.target
 4After=network-online.target
 5
 6[Service]
 7ExecStart=/bin/sh -c '/usr/bin/rtl_tcp -a $(hostname -I)'
 8WorkingDirectory=/home/pi
 9StandardOutput=inherit
10StandardError=inherit
11Restart=always
12
13[Install]
14WantedBy=multi-user.target

Puis chargez le serveur rtl_tcp au démarrage de la pi

1sudo systemctl daemon-reload
2sudo systemctl enable rtlsdr
3sudo systemctl start rtlsdr

Note: pour la section Streamer le DAB+, méthode 1, le prérequis côté serveur sera le même.

côté client

GQRX

au démarrage :

  • device: other
  • device string: rtl_tcp=ip_raspberry_pi:1234

Méthode 2

  • côté serveur: rtl_fm_streamer
  • côté client: lecture via vlc http://ip_raspberry/fm/102300000

rédaction à finir

La radio DAB+

  • Bande III VHF (de 180MHz à 220 MHz)
  • Bande passante de 1,536 MHz par multiplex
  • Le code service semble être le même que le code PI du RDS en FM, pour les stations sur les 2 supports
Canal Fréquence Multiplex Service Station
5A 174.928 MHz EXPE TDF TFL 5A
(démarré le 01/06/2022)
(arrêté le 21/12/2022)
F00D TEST DAB+ TFL
F00E TEST2 DAB+ TFL
6A 181.936 MHz PARIS 6A F21B ADO dab+
F229 Beur FM
FEE8 CROONER RADIO
F4F4 DANCE ONE
FED6 FG CHIC
F22D FRANCE MAGHREB 2
FEF3 HELLO PARIS
F21C LATINA
FEF2 MAXXIMUM
FEEA NRJ PARIS
F22B Radio Orient
FEA3 Vivre FM
6C 185.360 MHz towerCast-m1
(démarré le 12/10/2021)
F2FE AirZen Radio
F2F9 CHERIE FM
F217 FUN RADIO
F21C LATINA DAB+
F225 M RADIO
F2FA NOSTALGIE
F2F8 NRJ
F221 RADIO CLASSIQUE
F226 RIRE ET CHANSONS
F211 RTL
F215 RTL2
F214 SKYROCK
F2FC SKYROCK KLASSIKS
6D 187.072 MHz PARIS 6D FE93 AFRICA RADIO
FED0 Antinea Radio
FAB6 EURADIO+
FE82 LOVELY
FE53 MBS
FEFC MCD (début le 09/02/2021)
FEEC MyZen radio
FEE3 Phare FM
FA84 RADIO BONHEUR
F228 Radio Courtoisie
F9F4 RADIO MARIAFR
FE89 URBAN HIT
F835 VIRAGE RADIO
8C 199.360 MHz towerCast-m2
(démarré le 12/10/2021)
F227 BFM BUSINESS
F2FD BFM RADIO
F213 EUROPE 1
F20E EUROPE 2
F204 FIP
F202 FRANCE CULTURE
F206 FRANCE INFO
F201 FRANCE INTER
F203 FRANCE MUSIQUE
F208 MOUV'
F20D RFM
F216 RMC
9A 202.928 MHz RNT Associative FE46 ALIGRE
FED1 AYP
FEE7 CAMPUS
F9F1 CAPSAO
FEF8 CAUSE COMMUNE
FEFF FreqProtestante
FED7 Frequence India
FEDB ICI & MAINTENANT
FEEF MANDARIN
F21A NEO
F68C Radio TER
FEFE WRP
9B 204.640 MHz PARIS 9B FEE0 AASMAN RADIO
FEF5 AMI La Radio
FEE5 CINEMUSIC Radio
FEDC HopeRadio
FE52 IDFM RADIO
FEDF MEDI 1
FEE4 PI-MG
FEE6 Radio ALFA
FEF1 RADIO J
F8FE RADIO PITCHOUN
FEF6 RCJ culturejuive
FE86 SENSATIONS+
F7FA TT NODE PARIS
11A 216.928 MHz PARIS 11A FEE1 Collector
F439 EMOTION
FE41 ESPACE FM
F4F7 FIGARO RADIO
FECF Inrocks Radio
FEE2 PANAME
FEED Radio LiFE
FEF0 Radio Monaco
FEEE Sanef 107.7 IDF
FEF7 SEQUENCE FM
F4F5 So good Radio
FEFA TRACE FM PARIS
FE34 TROPIQUES FM
11B 218.640 MHz Paris-Etendu
(démarrage le 13/04/2021)
F20A BLEU PARIS
FE43 CHANTE FRANCE
FE35 EVASION
F22C FG. DJ Radio
FE50 GENERATIONS
F22F J A Z Z Radio
F9F5 Melody
F22A NOVA
F21D OUI FM dab+
FEFB Radio Notre Dame
F650 SUD RADIO
F223 TSF JAZZ
FE45 VOLTAGE dab+

Multiplex captés avec qualité du signal et localisation

Canal SNR Nom mux Site(s) d'émission (puissance)
5A ⭐⭐
16.0 dB
±0.0 dB
EXPE TDF TFL 5A - TDF, Tour Eiffel (75) (⚡ 10 kW, bientôt 20 kW)
6A ⭐⭐
17.0 dB
±0.1 dB
PARIS 6A - TDF, Étoile du Pavé de Meudon, Meudon (92) (⚡ 10 kW)
- TDF, Fort de Romainville, Les Lilas (93) (⚡ 8 kW)
6C ⭐⭐⭐
21.5 dB
±0.5 dB
towerCast-m1 - towerCast, Tour Mercuriales Ouest, Bagnolet (93) (⚡ 14 kW)
- towerCast, Hôtel Hyatt Regency Paris Étoile, Paris 17e arr. (75) (⚡ 10 kW)
- TDF, Tour DTRN, Lisses (91) (⚡ 3 kW)
- TDF, Tour DTRN, Videlles (91) (⚡ 6 kW)
- plusieurs autres + loin
6D ⭐⭐
10.5 dB
±0.8 dB
PARIS 6D - TDF, Fort de Romainville, Les Lilas (93) (⚡ 8 kW)
- TDF, Étoile du Pavé de Meudon, Meudon (92) (⚡ 10 kW)
8C ⭐⭐⭐
22.0 dB
±1.0 dB
towerCast-m2 - towerCast, Tour Mercuriales Ouest, Bagnolet (93) (⚡ 14 kW)
- towerCast, TourÉvry2, Terrasse de l'Agora, Évry-Courcouronnes (91) (⚡ 2.6 kW)
9A
5.6 dB
±0.4 dB
RNT Associative - Château d'Eau du Mont Cenis, 16, rue du Mont-Cenis, 75018 Paris (⚡ 4 kW)
9B ⭐⭐⭐
19.5 dB
±0.5 dB
PARIS 9B - TDF, Fort de Romainville, Les Lilas (93) (⚡ 8 kW)
11A ⭐⭐
15.5 dB
±2.0 dB
PARIS 11A - TDF, Fort de Romainville, Les Lilas (93) (⚡ 4 kW)
11B ⭐⭐⭐
19.0 dB
±0.2 dB
Paris-Etendu - towerCast, Hôtel Hyatt Regency Paris Étoile, Paris 17e arr. (75) (⚡ 10 kW)
- towerCast, Tour Mercuriales Ouest, Bagnolet (93) (⚡ 14 kW)

Capture GQRX - radio DAB+
Une visualisation du multiplex 6A autour de 182MHz, je ne sais pas pourquoi la chute d'eau forme ces vaguelettes hypnotisantes à regarder 🤪

Streamer le DAB+

Méthode 1

  • côté serveur: rtl_tcp /!\ bande passante réseau 5Mo/s, filaire mieux. Cf. méthode 1 de streamer la FM
  • côté client: welle.io (avec GUI)

Capture welle.io - écoute de CINEMUSIC Radio en DAB+
Écoute de CINEMUSIC Radio en DAB+ avec welle.io

Méthode 2

dab_transmitter ?

à tester et finir la rédaction

Sources

J'ai eu comme sources d'inspiration mes différents boulots dans des stations de radio, et de l'autre côté de l'émetteur ma mission à l'INA au service captation Radio/TV (dépôt légal de l'audiovisuel). Voici quelques images glannées de cette dernière mission où j'ai eu à moderniser la chaine de captation de la radio FM.

Autres sources d'infos comme Wikipédia, le CSA, Radiodigi, Thierry Vignaud, Digitalbitrate...

comments powered by Disqus