Présentation du projet

TSDuck est un ensemble d'outils open-source conçu pour l'acquisition, l'analyse, la transformation et la manipulation de flux MPEG Transport Stream (MPEG-TS). Le projet se positionne comme un framework de référence dans le domaine de la télévision numérique et du streaming vidéo, destiné aux professionnels pour des tâches de test, surveillance, intégration, débogage et démonstration en laboratoire.

Fonctionnalités principales

L'outil permet l'acquisition et la transmodulation de flux transport, incluant les standards DVB, ATSC, ISDB, les interfaces ASI et la multidiffusion IP. Il est capable d'analyser en profondeur les flux : PSI/SI (information de service et de programmation), débits binaires et horodatages. Les utilisateurs peuvent effectuer des transformations en temps réel, extraire ou injecter du contenu et de la signalisation. La manipulation des tables et des descripteurs est supportée en formats XML, JSON ou binaire. Les principales tables et descripteurs des normes MPEG, DVB, ISDB, ATSC et SCTE sont pris en charge.

Parmi les cas d'usage avancés, TSDuck permet de modifier, supprimer, renommer ou extraire des services. Il offre des fonctionnalités d'analyse et d'injection d'informations de coupure publicitaire SCTE 35, ainsi que l'extraction ou l'injection de l'encapsulation multi-protocole (MPE) entre flux TS et UDP/IP. Le logiciel peut générer un guide électronique des programmes (EPG) et injecter des tables EIT conformément à la spécification ETSI TS 101 211.

Surveillance et métriques

En matière de surveillance, TSDuck peut rapporter des conditions sur le flux (propriétés vidéo et audio, débits binaires, périodes de cryptage, signalisation). Il est capable d'envoyer des métriques de débit et des indicateurs ETSI TR 101 290 vers les bases de données InfluxDB et le tableau de bord Grafana pour un monitoring système. L'outil mesure également le temps entre paquets (IAT) sur les réseaux à base de datagrammes.

Compatibilité matérielle

Le projet supporte le travail sur des flux transport en direct (DVB-S/C/T, ATSC, ISDB-S/T, ASI, IP-TV, HTTP, HLS, SRT, RIST) ainsi que sur des fichiers hors ligne (fichiers TS et captures pcap). Pour la réception et l'émission, TSDuck est compatible avec divers matériels spécialisés :

  • Tuners bon marché DVB, ATSC ou ISDB (USB, PCI) ;
  • Dispositifs professionnels Dektec (ASI, modulateurs, USB, PCI) ;
  • Modulateurs USB HiDes ;
  • Modulateurs USB basés sur AstroMeta (anciennement VATek), tels que le Suntechtv U3.

Autres capacités

L'outil peut rediriger les flux transport vers d'autres applications et extraire des données encapsulées spécifiques comme le Télétexte, T2-MI ou DVB-NIP. Il permet également d'émuler une tête de réseau CAS (système d'accès conditionnel) en utilisant les interfaces DVB SimulCrypt.

Disponibilité et communauté

TSDuck est hébergé sur GitHub, où le projet compte plus d'un millier d'étoiles. La plateforme propose une documentation complète : guide utilisateur, guide développeur, référence de programmation, journal des modifications, ainsi que des présentations sur le projet et une introduction au MPEG-TS. Les binaires sont disponibles en téléchargement, de même que les archives source et des versions nightly. Des dépôts de flux d'exemple et un groupe de signalement sont également mis à disposition. Le projet encourage les contributions et les signalements de problèmes via GitHub.

Licence et accès

Le logiciel est distribué sous licence libre (open-source), avec une page dédiée sur le site officiel. Les utilisateurs peuvent également soutenir le projet par des dons. L'équipe de développement est joignable par courriel pour toute question.

En résumé, TSDuck se présente comme une solution complète et polyvalente pour tous les professionnels travaillant avec des flux MPEG Transport Stream, couvrant un large éventail de standards et de cas d'usage, de l'acquisition matérielle à la surveillance réseau en passant par la manipulation fine de la signalisation.