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'enregistrement pur ne consomme pratiquement pas de ressources; en effet, pour la TNT, les tuners transmettent un flux MPEG2 complet, il suffit juste de le démultiplexer pour choisir la bonne chaine. Il n'y a pas de décodage vidéo (MPEG4) à faire.

L'interface graphique, appelée “frontend”, est conçue 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”.

Architecture Mythtv avec des backend et frontend

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

L'IHM du “frontend” est conçue pour s'afficher sur la télévision en grand écran. Elle permet la navigation dans les enregistrements ainsi que leurs visionnages, le parcours des photos et l'écoute de la musique. Voici l'écran d'accueil :

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

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.

Interface Web

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)

Installation

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 (guide des programmes) et PVR (magnétoscope numérique), je l'ai depuis 2005… 8-)

Voici mes notes d'installation sous Debian du frontend.

Pour le “backend”, j'ai utilisé alternativement Olive puis Popeye. Plusieurs cartes tuner se sont succédées dans mes différentes configurations : analogique, DVB-C, DVB-T…

Carte tuner

Coté “frontend”, j'ai également commencé avec Olive puis j'ai utilisé une configuration dediée Mimosa pour afficher l'interface sur la télévision.

Boitier Compucase 8K07