Flux SPTS¶
SPTS (Single Program Transport Stream) — flux MPEG-TS comportant un seul programme ; c’est l’unité de traitement de base de Perfect Streamer. Le type de flux — SPTS ou MPTS — est choisi à la création et ne peut pas être modifié par la suite. Pour un flux SPTS, on choisit en outre le type de contenu (valeurs telles qu’affichées dans l’interface) : Default (audio + video), Audio only (son sans vidéo, chaînes radio) ou Video only.
Les flux embrouillés (chiffrés) sont pris en charge : l’embrouillage est détecté automatiquement et les contrôles des flux élémentaires sont suspendus pendant ce temps. Le paramètre « Canal embrouillé » déclare le flux embrouillé en permanence et désactive la détection automatique.
Les exigences générales relatives au flux d’entrée sont énumérées dans Exigences relatives au flux d’entrée, les protocoles de réception et de transmission — dans la section Planification et protocoles de transmission de données. Le traitement des multiplex est décrit dans Flux MPTS. La création et la configuration des flux s’effectuent dans l’interface web (Flux).
Chaîne de traitement¶
Chaîne de traitement d’un flux SPTS : entrées, traitement au niveau du flux (commutateur d’entrées, filtre TS, analyseur, lissage du débit, synchroniseur), sous-système OTT / DVR et sorties.¶
Toutes les entrées du flux convergent vers le commutateur d’entrées, après quoi le flux traverse les étapes de traitement successives :
Commutateur d’entrées — sélectionne la source active et bascule le flux vers une entrée de secours en cas de défaillance (Redondance des sources).
Filtre TS — filtrage et modification MPEG-TS optionnels (Filtrage MPEG-TS, Modification du flux).
Analyseur — contrôle continu de la validité et mesure du flux (Analyseur) ; c’est sur son verdict que le commutateur d’entrées déclare une source défaillante. Les données de l’analyseur sont également utilisées par la mosaïque (Mosaïque, désactivée par le paramètre « Générer la mosaïque »), par l’import EPG et par le décodeur de sous-titres.
Lissage du débit — bourrage optionnel jusqu’à un débit constant et correction de l’intervalle PAT/PMT (Gestion du débit).
Synchroniseur — émission des paquets au rythme des PCR avec compensation de la gigue réseau (Synchronisation). C’est également ici que le générateur EIT insère les tables du guide des programmes (Générateur EIT).
Depuis la sortie du synchroniseur, le flux est distribué vers toutes les sorties : protocoles de transport (Protocoles Peer de transmission fiable), enregistrement dans un fichier, multiplexeur MPTS (Multiplexeur), transcodeur (Transcodeurs), ainsi que vers le sous-système OTT / DVR (OTT et DVR). Un flux SPTS peut également avoir pour source un programme individuel d’un multiplex — une entrée démultiplexeur (type demuxer) l’extrait d’un flux MPTS ou d’un récepteur DVB d’après le numéro de programme (Démultiplexeur).
Redondance des sources¶
Un flux peut comporter plusieurs entrées, mais une seule est active à tout instant. L’ordre des entrées dans la liste définit leur priorité : la première est l’entrée principale, les autres sont des entrées de secours. Si l’entrée active est déclarée défaillante, le flux bascule vers l’entrée suivante de la liste ; après la dernière entrée, le parcours reprend à la première. Une entrée mise en pause n’est pas prise en compte lors du basculement.
Le numéro sous lequel une entrée est désignée partout — dans la liste des flux, dans la ligne dépliée, dans l’éditeur de flux et dans le texte d’une alerte — est précisément sa place dans la liste : #1 est l’entrée principale, viennent ensuite les entrées de secours dans l’ordre. La valeur de priorité enregistrée peut différer de ce numéro : en enregistrant les paramètres, le nœud ne renumérote pas les priorités, et dans un fichier modifié à la main les valeurs peuvent être nulles, éparses ou répétées (Le fichier de configuration pss.json). Les entrées de même valeur restent dans l’ordre où elles sont enregistrées, et cet ordre survit aux modifications ultérieures.
La défaillance est déterminée par l’analyseur : une entrée est considérée comme défaillante si le flux ne passe pas le contrôle de validité ou si aucune donnée n’arrive pendant une durée supérieure au délai configuré. Le fonctionnement du flux sur une entrée de secours est consigné par une alerte (Alertes (alerter)).
L’entrée que le flux a quittée est arrêtée mais conserve la cause pour laquelle elle a été abandonnée : l’interface l’affiche en ligne atténuée avec un âge, et non comme une défaillance en cours, et l’alerte sur l’erreur de cette entrée est levée. Si en revanche l’entrée s’est mise elle-même en attente et requiert l’intervention de l’administrateur, son alerte reste active même après le basculement. « Arrêtée » accompagné de « Dernière défaillance … » sous une entrée de secours d’un flux sain est un état normal et non une panne. Une telle ligne se maintient longtemps sous une entrée située dans la liste en dessous de l’entrée active : le flux n’y revient pas de lui-même. Une entrée située au-dessus de l’active est revérifiée à l’intervalle de vérification (voir « Revérifier l’entrée principale » ci-dessous), et après la vérification suivante la ligne au-dessous d’elle est actualisée ou disparaît. La cause portée par la ligne est la sienne, de niveau transport (Input data timeout (30 sec), un refus d’autorisation, une connexion rejetée), si l’entrée a eu le temps de la signaler elle-même ; une entrée déclarée défaillante par le contrôle de validité ne signale rien d’elle-même, et la ligne portera la formulation générale sur un délai dépassé et le passage au secours.
Les paramètres de basculement se trouvent sur l’onglet « Flux » de l’éditeur de flux (Configurer le flux) :
- « Délai d’attente du flux (s) »
Durée sans flux d’entrée valide au terme de laquelle le basculement vers l’entrée suivante est effectué. 30 secondes par défaut.
- « Intervalle de vérification (s) »
Période de revérification des sources. 60 secondes par défaut.
- « Revérifier l’entrée principale »
Tant que le flux fonctionne sur une entrée de secours, les entrées situées plus haut dans la liste sont revérifiées à l’intervalle de vérification. Dès qu’une source de priorité supérieure redevient valide, le flux y revient. Activé par défaut.
Filtrage MPEG-TS¶
Par défaut, le flux est transmis tel quel. Le filtrage s’applique à deux niveaux : les règles PID — séparément sur chaque entrée, les filtres de tables — au niveau du flux.
Les règles PID se configurent sur l’onglet « MPEG-TS PID » de la fenêtre de l’entrée (Éditeur d’entrée et de sortie) :
- « Accepter les PID (liste blanche) »
Liste des PID autorisés. Si la liste est vide, tout est autorisé, hormis ce qu’interdit la liste noire.
- « Rejeter les PID (liste noire) »
Liste des PID interdits. Un PID figurant simultanément dans les deux listes est rejeté.
Après le filtrage, la PMT est régénérée à partir de la composition réelle des flux élémentaires. Les règles de PID sont appliquées avant l’agencement automatique des PID (Agencement automatique des PID), s’il est activé.
Les filtres de niveau flux se trouvent sur l’onglet « MPEG-TS » de l’éditeur de flux, section « Filtres » (tous désactivés par défaut) :
- « Nettoyer les tables inutiles »
Supprime les données de service n’appartenant pas au programme ainsi que les flux élémentaires de types inconnus ; les flux de types connus (vidéo, audio, télétexte, sous-titres) et les tables PAT/PMT sont conservés. Les tables individuelles (SDT, EIT, NIT, TDT, CAT) sont commandées par leurs propres filtres.
- « Supprimer CAT / ECM / EMM »
Supprime les tables et les messages des systèmes d’accès conditionnel (CAS), y compris les descripteurs CA de la PMT — par exemple pour éliminer les résidus de CAS après désembrouillage.
- « Supprimer EIT »
Supprime les tables du guide des programmes de la source. Par défaut, l’EIT est transmise telle quelle.
- « Supprimer NIT », « Supprimer TDT »
Suppriment les tables de réseau et d’horodatage de la source.
- « Supprimer le télétexte », « Supprimer les sous-titres »
Suppriment les flux de télétexte et de sous-titres DVB ainsi que leurs entrées dans la PMT.
- « Supprimer la SDT d’origine » (section « SDT »)
Supprime la table de description de service de la source — par exemple lorsque le flux est transmis à un multiplexage ultérieur. Lorsqu’un nom de service propre est attribué (Modification du flux), la SDT d’origine est remplacée automatiquement et il n’est pas nécessaire d’activer ce filtre séparément.
Note
La suppression des tables obligatoires (SDT, NIT, TDT, EIT, CAT) enfreint les exigences de TR 101 290 quant à leur présence dans le flux — il s’agit d’un choix délibéré de l’opérateur, justifié par exemple lorsque le flux est transmis à un multiplexage ultérieur. En outre, tout filtrage modifie la composition des paquets du flux ; pour l’incidence sur la précision des PCR, voir Gestion du débit.
Modification du flux¶
Les données de service propres sont définies dans la section « SDT » de l’onglet « MPEG-TS ». La génération de la table est activée par le champ « Nom du service » (ainsi que par une génération EIT à partir de l’EPG active) : si la source ne comporte pas de SDT, la table est générée ; si elle en comporte une, celle-ci est remplacée par la table générée. Les champs « Nom du fournisseur » et « Langue » renseignent les champs correspondants de la table générée. Le paramètre « ID de réseau » définit l’identifiant de réseau des tables EIT générées lorsque la source ne signale pas d’identifiant de réseau propre ; si la source en comporte un, c’est celui-ci qui est utilisé.
Le numéro de programme est réattribué dans la section « Numéro de programme » : activez « Modifier le numéro de programme » et indiquez « Nouveau numéro de programme ». Les tables PAT et PMT sont régénérées avec le nouveau numéro ; la SDT et l’EIT sont également régénérées.
« Fixer l’intervalle PAT/PMT » — régénère les PAT/PMT et les insère à un intervalle conforme à TR 101 290. S’applique aux sources dont les tables sont rares ou irrégulières.
« Corriger la référence PCR dans la PMT » — répare une table qui ne déclare pas de référence PCR utilisable : soit PCR_PID vaut 0x1FFF (« pas de PCR »), soit il pointe vers un PID sur lequel aucune PCR n’est transportée. Le nœud trouve le PID sur lequel la PCR passe réellement et déclare celui-ci dans la PMT. La première table est retenue jusqu’à deux secondes pendant la détection, et part inchangée si aucun PID convenable n’a été trouvé dans ce délai. Seule la déclaration est corrigée : la PCR elle-même reste obligatoire, et un flux qui n’en a aucune ne démarrera pas davantage. L’activation force l’activation du filtre MPEG-TS — avec la même conséquence que l’attribution automatique des PID : les PID non déclarés dans la PMT et la CAT cessent d’être transmis. Sur les entrées du transcodeur et du flux de test, le paramètre est sans effet : elles n’appliquent pas les paramètres MPEG-TS.
La réattribution des PID et des langues s’effectue sur l’entrée, onglet « MPEG-TS PID » de la fenêtre de l’entrée :
- « Réattribuer les PID »
Paires « De PID » / « Vers PID » — remplacement des identifiants des flux élémentaires, par exemple pour aligner le flux sur le plan de PID du réseau. Lorsque l’agencement automatique des PID (Agencement automatique des PID) est activé, ces paires sont sans effet.
- « Réattribuer la langue audio »
Paires « PID audio » / « Nouvelle langue » — remplacement de la langue de la piste audio dans la PMT.
La génération de l’EIT à partir d’une source EPG externe s’active dans la section « Générer l’EIT à partir de l’EPG » de l’onglet « Flux » : on y sélectionne la « Source EPG » et le « Canal EPG », et des tables EIT contenant le guide des programmes sont insérées dans le flux (Générateur EIT). L’opération inverse est le paramètre « Extraire l’EIT vers la base de données EPG », qui exporte le guide des programmes du flux vers la base EPG du nœud (Import EPG/XMLTV).
Pour les entrées qui reçoivent le flux de transport d’origine, un désembrouillage logiciel BISS est disponible : une clé BISS-1 ou BISS-E est définie sur l’entrée, et le flux est déchiffré avant l’analyse et les traitements ultérieurs. La réception de services embrouillés depuis un récepteur DVB (CAM, BISS au niveau de l’adaptateur) est décrite dans Récepteur DVB.
Agencement automatique des PID¶
Par défaut, les identifiants des flux élémentaires passent de la source au flux de sortie sans modification ; lors du basculement sur une entrée de secours, l’agencement des PID en sortie suit donc celui de la source. L’agencement automatique attribue les PID lui-même, selon la même règle pour toutes les entrées : le plan de PID du flux de sortie reste inchangé quelle que soit la source active.
Le mode n’est disponible que pour le SPTS et s’active dans la section « MPEG-TS » de l’onglet « MPEG-TS » de l’éditeur de flux :
- « Agencement automatique des PID »
Active le mode.
- « PID de base »
Le premier PID de la fenêtre : de 32 à 8127, 32 par défaut. La borne inférieure place la fenêtre hors de la plage réservée aux tables PSI/SI, la borne supérieure maintient toute la fenêtre en dessous du PID des paquets nuls.
Le programme est renuméroté dans une fenêtre de 64 PID commençant au PID de base :
PID |
Rôle |
|---|---|
base |
PMT |
base + 1 |
vidéo |
ensuite |
pistes audio |
ensuite |
les autres flux élémentaires : télétexte, sous-titres DVB, données, SCTE-35 |
ensuite |
PCR, s’il n’est pas transporté dans l’un des flux ci-dessus |
ensuite |
ECM : d’abord d’après les descripteurs de niveau programme, puis d’après ceux des flux individuels |
depuis la fin de la fenêtre vers le bas |
EMM |
Au sein de chaque groupe, l’ordre de la PMT d’origine est conservé. Si le programme ne comporte pas de vidéo, l’agencement se resserre : la première piste audio suit immédiatement la PMT. Les EMM sont attribués depuis la fin de la fenêtre, car la CAT est analysée indépendamment de la PMT et peut arriver avant — leurs adresses ne doivent pas dépendre du nombre de flux élémentaires.
Les tables PAT, PMT et CAT sont reconstruites pour le nouvel agencement. Les SDT, NIT, EIT et TDT restent inchangées : elles ne contiennent aucune référence de PID.
À prendre en compte lors de l’activation du mode :
Le mode force le filtrage MPEG-TS : les PID non déclarés dans la PMT et la CAT ne sortent plus. Un flux qui comptait sur le transit des PID non déclarés les perdra.
La réaffectation manuelle des PID sur les entrées est sans effet et ignorée, avec un avertissement inscrit au journal. L’interface web masque ces champs tant que le mode est actif ; les paires enregistrées ne sont pas perdues et réapparaissent à sa désactivation.
Les listes d’acceptation et de rejet de PID continuent de fonctionner et s’appliquent avant la renumérotation : seuls les flux élémentaires conservés reçoivent un emplacement, et aucun trou ne subsiste dans la fenêtre (Filtrage MPEG-TS).
Le mode ne s’applique pas à l’entrée transcodeur (Transcodeurs) ni à l’entrée du générateur de test (Flux de test) : le plan de PID y est construit par l’encodeur ou le générateur, leurs propres champs PMT PID restent donc accessibles.
Si le programme ne tient pas dans la fenêtre, aucune renumérotation n’est effectuée — l’agencement reste celui d’origine et un avertissement est consigné au journal ; un flux à moitié renuméroté n’est jamais émis.
La modification de l’un ou l’autre des deux paramètres est appliquée à la volée : le flux lui-même n’est pas redémarré, mais ses entrées et sorties sont relancées — quelques secondes de resynchronisation.
Dans les statistiques du flux, le bloc « Informations média — source » affiche les PID arrivés en entrée, tandis que « Informations média — résultat » et le tableau des débits par PID affichent les PID attribués ; lorsque le mode est activé, un écart entre les deux est normal.
L’agencement automatique des PID n’a aucun rapport avec l’attribution des PID dans le multiplexeur MPTS (Affectation des PID) — il s’agit d’un paramètre distinct de l’entrée muxer.
Gestion du débit¶
Le mode de gestion du débit est défini par le champ « Mode de débit » de l’onglet « MPEG-TS » (valeurs telles qu’affichées dans l’interface) :
- Original (par défaut)
Le flux est transmis sans modification ; les marques PCR de la source ne sont pas recalculées.
- VBR
Supprime les paquets NULL de la source, ce qui réduit le débit au minimum. Convient lorsque le flux n’est utilisé que pour la diffusion OTT ou le transit. Les marques PCR ne sont pas recalculées dans ce mode, la précision des PCR selon TR 101 290 n’est donc pas garantie en sortie.
- CBR (auto stuffing)
Lisse le débit jusqu’à une valeur constante par insertion de paquets NULL (bourrage). Le débit cible est déterminé automatiquement : il est figé quelques secondes après l’activation, relevé en cas de dépassement durable et abaissé progressivement si le pic de contenu reste longtemps inférieur à la cible. Un changement de cible n’interrompt pas l’émission du flux.
- CBR (explicit stuffing)
Identique, mais le débit cible est défini explicitement par le champ « Débit de bourrage (kbps) ». Indiquez une valeur supérieure au débit réel du contenu, avec une marge.
Dans les modes CBR, les marques PCR sont recalculées d’après les octets effectivement transmis ; la sortie est donc conforme aux exigences de TR 101 290 en matière de précision des PCR. De plus, lorsque le bourrage est actif, la fréquence de répétition des PCR en sortie est maintenue dans les limites de la norme, y compris sur les images vidéo longues. L’analyseur mesure alors précisément le flux émis, lissé (Analyseur).
Quand le CBR est nécessaire. Toute opération qui insère ou supprime des paquets — filtres de tables et de PID, génération de la SDT et de l’EIT, correction de l’intervalle PAT/PMT, changement du numéro de programme, ainsi que le mode VBR lui-même — déplace le contenu par rapport à ses marques PCR. Si le destinataire du flux exige la conformité à TR 101 290, par exemple pour une diffusion DVB, activez un mode CBR : le bourrage masque ces modifications par le recalcul des PCR. Pour un flux situé après le transcodeur, activez un mode CBR sur le flux récepteur (PCR et débit du flux de sortie).
L’état courant du bourrage — débit cible et débit d’insertion des paquets NULL — est affiché dans les données de l’entrée active sur la page du flux (Flux, section « Bourrage » ; la section n’est visible que tant que le bourrage est actif).
Synchronisation¶
Le synchroniseur émet les paquets vers les sorties au rythme des marques PCR de la source — des PCR valides sont donc obligatoires pour le flux d’entrée. Entre la réception et l’émission, le flux est retardé dans un tampon de gigue, qui lisse l’irrégularité d’arrivée des paquets en provenance du réseau.
Le tampon se configure séparément sur chaque entrée (fenêtre de l’entrée, Éditeur d’entrée et de sortie ; paramètres avancés, noms tels qu’affichés dans l’interface) :
- Auto jitter buffer
Sélection automatique du retard selon le type d’entrée : les entrées TCP et HLS utilisent un tampon agrandi, les autres un tampon standard. Activé par défaut.
- Jitter buffer (ms)
Taille du tampon définie manuellement, lorsque le mode automatique est désactivé (500 ms par défaut). Augmentez la valeur si, sur un réseau instable, le tampon se vide régulièrement.
- Auto PCR discontinuity window
Choix automatique de la fenêtre de saut de PCR admissible : 400 ms sur l’entrée d’un flux SPTS et 1000 ms sur l’entrée d’un flux MPTS. Activé par défaut ; une valeur saisie à la main est acceptée et conservée, mais reste sans effet, ce dont le nœud avertit dans le journal à l’ouverture de l’entrée.
- PCR discontinuity window (ms)
La fenêtre saisie à la main, lorsque le choix automatique est désactivé (1000 ms par défaut).
Un saut de PCR à l’intérieur de la fenêtre est attendu par le nœud — et sur une source avec splice, insertion publicitaire ou boucle de playout, une fenêtre large ajoute ainsi cette attente à la file de synchronisation de façon permanente. C’est pourquoi le choix automatique retient 400 ms pour le SPTS : exactement ce qu’exige la cadence admissible la plus faible des marques PCR (ISO/IEC 13818-1 autorise 100 ms entre elles). Un saut au-delà de la fenêtre est une rupture de la ligne temporelle de la source, et le nœud la mène sans perte lorsqu’il le peut : un saut en avant est repris sur un nouveau point de référence directement en diffusion, l’accumulé est joué jusqu’au bout, et le destinataire ne voit qu’un seul décalage d’horloge — celui-là même qu’avait la source. Le contenu est perdu sur un recul du PCR survenant pendant la diffusion : il est impossible de se raccrocher au travers, le tampon de synchronisation est rejeté, la diffusion se rompt, et un transcodeur qui lit cette entrée redémarre. Le nœud compte les deux issues séparément et déclenche pour elles des alertes différentes (Catalogue des codes d’alerte).
Un écart lent entre le rythme des PCR de la source et l’horloge du nœud est corrigé par le compensateur de dérive : la correction est appliquée en douceur, par micro-décalages, sans resynchronisation forcée ni interruption de l’émission. La commande se trouve sur l’onglet « Analyse » de l’éditeur de flux : « Compensation de la dérive de synchronisation » (activée par défaut) et « Fenêtre souple de dérive de synchronisation (ms) » — la zone d’insensibilité à l’intérieur de laquelle aucune correction n’est appliquée (500 ms par défaut). La resynchronisation forcée reste le mécanisme de repli en cas de véritables discontinuités du flux.
Le compensateur ne rattrape un retard que jusqu’à la fenêtre souple, et une mémoire tampon une fois vidée ne se remplit pas d’elle-même — c’est pourquoi une entrée qui a survécu à un arrêt de sa source peut poursuivre avec une file presque vide et transmettre aux sorties chaque à-coup suivant. Le nœud sort de cet état de lui-même : si la compensation fonctionne et que la file reste plus de dix secondes sous le quart de la mémoire tampon définie, l’émission est arrêtée une fois et reprend déjà remplie. Cela coûte une coupure en sortie d’une durée voisine de la taille de la mémoire tampon et ne se répète pas plus d’une fois par minute. Le nombre de ces reconstructions est communiqué par l’API de statistiques du flux (Connexion de systèmes de supervision externes) : une valeur isolée est la trace d’un creux ponctuel de la source, une valeur croissante signifie que la source ne tient pas le délai défini.