MythTV

MythTV est un logiciel libre et open source distribué sous GPL v2 pour Linux et OSX, transformant un ordinateur en magnétoscope numérique et en centre de divertissement multimédia.

C'est un système qui permet de programmer l'enregistrement d'émissions de télévision à l'aide d'un guide électronique des programmes (EPG), et de regrouper des fonctions telles que la navigation sur le Web, la lecture de DVD, le visionnement de photos numériques et un lecteur audio numérique. Les fonctionnalités de timeshifting (pause du direct ou retour arrière) sont également de la partie.

Je l'utilise depuis la version 0.18 (fev 2005) avec succès.

Cette suite logiciel s'installe sur une ou plusieurs machine(s) équipé(és) de cartes d'acquisitions analogique ou numérique (type DVB-{T,C,S} en PCI ou USB) pour enregistrer les émissions de TV. Le démon en charge de réaliser ces opérations est appelé “backend”. Plusieurs “backend” peuvent se répartir des tâches lourdes telles que des transcodes de vidéos ou d'exécuter des opérations de détection de publicités. Le stockage peut également être reparti entre les différentes instances.

L'interface graphique, appelée “frontend”, est conçues pour s'afficher sur une télévision et être pilotée avec une télécommande ou un smartphone.

La communication entre les différents éléments s'effectue via un protocole réseau spécifique. Plusieurs “frontends” peuvent fonctionner en même temps interrogeant le même “master backend”.

MythTV est écrit en C++ avec Qt5 et utilise une base de donnée Mysql pour stocker le paramétrage et données.

Architecture Mythtv avec des backend et frontend

L'IHM du “frontend” permet la navigation dans les enregistrements ainsi que leurs visionnages, le parcours des photos et l'écoute de la musique. L'écran d'accueil propose ces différentes actions :

Ecran d'accueil

L'écran de parcours des enregistrements offre un classement par émissions et par catégories :

Vue des enregistrements

Je le pilote à l'aide d'une télécommande IR couplé avec un récepteur sur port série, ça marche très bien 8-) :

Récepteur infrarouge

  Télécommande Hauppauge

MythTV est capable d'exploiter différents type de cartes tuner compatibles V4L-DVB (DVB-T par exemple). Une fois les cartes reconnues et ajoutées dans MythTV, il faut leurs associer un guide des programmes pour connaitre les heures de diffusion des programmes et par conséquent les enregistrer. En branchant plusieurs cartes tuner, MythTV est en mesure d'enregistrer des émissions sur des chaines différentes : une par tuner (ou plus, voir le multirec ci dessous).

Voici les différents modèles que j'ai utilisé :

PVR 350
  • Réception : Analogique hertzien
  • Tuner : 1
  • Connectique : PCI
Carte Hauppauge PVR 350
Nova-T-500
  • Réception : Numérique hertzien (DVB-T)
  • Tuners : 2
  • Connectique : PCI
Carte Hauppauge NOVA-T-500
SATELCO EasyWatch
  • Réception : Numérique câble (DVB-C)
  • Tuner : 1
  • Connectique : PCI
Carte SATELCO EasyWatch PCI DVB-C
Pinnacle PCTV 2000e
  • Réception : Numérique hertzien (DVB-T)
  • Tuners : 2
  • Connectique : USB 2.0
Dongle USB Pinnacle PCTV 2000e

Multirec

Une des forces de MythTV est sa fonctionnalité multirec : celle ci permet l'enregistrement de plusieurs chaines sur un même tuner tant que ces chaines sont sur le même transpondeur DVB. En pratique, cela permet d'enregistrer M6 et 6ter en n'utilisant qu'un seul tuner et NT1 sur un second. Très pratique est flexible !

Ce fonctionnement est possible car lorsqu'une application demande à un tuner de se caler sur fréquence, le flux DVB retourné contient toute les chaines associées à cette fréquence, charge à l'application de filtrer sur les bons PID. Il suffit ainsi de récupérer plusieurs flux simultanément.

Voici la liste des chaînes ainsi que le transpondeur auxquels elles sont associées :

Chaine Transpondeur
C8 R2 - NTN
BFM TV
i>TELE
D17
Gulli
TF1 R6 - SMR6
NRJ12
TMC
NT1
LCP
HD1 R7 - MHD7
Chérie 25
L'Equipe 21
RMC Découverte
NUMERO 23
(Suite)
Chaine Transpondeur
France 2 R1 - SGR1
France 4
France Ô
F3 Pays de la Loire
Telenantes
M6 R4 - Multi 4
W9
Arte
France 5
6ter

A l'aide de cette liste, les enregistrements simultané de plusieurs chaine sur un même tuner est plus clair : M6, W9, Arte, France 5 et 6ter sont sur le même transpondeur R4 - Multi 4. Ainsi avec un seul tuner physique, il est possible d'enregistrer toutes ces chaines simultannement ou d'avoir 2 enregistrements qui se suivent sur la même chaine dans 2 fichiers différents.

MythWeb est un interface web permettant de naviguer facilement dans l'EPG et programmer les enregistrements. Il est possible de consulter la liste des prochains enregistrements et des éventuels conflits (trop d'enregistrements sur la même tranche avec un nombre insufisant de tuner). Voici quelques copies d'écrans :

Caractéristiques des flux vidéos

Le débit d'enregistrement est d'environ 1,6 Go / h pour une chaine HD.

Voici les propriétés d'un flux vidéo :

Input #0, mpegts, from 'Grey s Anatomy - 2017-05-24, 21-36 - Les fantomes du passe.mpg':
  Duration: 00:52:27.03, start: 32135.888533, bitrate: 3969 kb/s
  Program 1 
    Stream #0:0[0x78]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 24.67 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x82](fra): Audio: eac3 ([135][0][0][0] / 0x0087), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:2[0x83](qaa): Audio: eac3 ([135][0][0][0] / 0x0087), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:3[0x84](qad): Audio: eac3 ([135][0][0][0] / 0x0087), 48000 Hz, stereo, fltp, 96 kb/s
    Stream #0:4[0x96](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
    Stream #0:5[0x97](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:6[0xaa]: Unknown: none ([5][0][0][0] / 0x0005)

La configuration est longue, il est possible d'y passer plusieurs heures mais j'en suis extrèmement satisfait. Ce que les box internet peinent à proposer au niveau EPG et PVR, je l'ai depuis 2005… 8-)

Voici mes notes d'installation sous Debian du frontend.