Adaptateurs DVB

Perfect Streamer prend en charge tout adaptateur DVB installé dans le système. Standards pris en charge : DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, ATSC. Implémentés en outre : la décapsulation T2-MI (ETSI TS 102 773) et le désembrouillage BISS-1 / BISS-E.

La condition principale est un pilote d’adaptateur correctement installé et fonctionnel dans le système.

La section DVB n’apparaît que si le système comporte des adaptateurs DVB valides. La reconfiguration à la volée n’est pas prise en charge ; un redémarrage du streamer est nécessaire.

Connexion de l’adaptateur

Pour ajouter un nouvel adaptateur DVB, accédez à la section correspondante et ajoutez l’adaptateur :

  • Définir le nom de l’adaptateur.

  • Sélectionner un adaptateur dans la liste de ceux disponibles dans le système.

  • Sélectionner le mode Stream.

  • Spécifier le type de système de transmission : DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C.

  • Spécifier les paramètres de réception : Fréquence porteuse, Polarisation, Débit symbole, FEC, Modulation, ID du flux DVB, Fréquence de l’oscillateur, Oscillateur bande haute, Limite bande haute, Mode DiSEqC 1.0 et d’autres paramètres selon le type.

L’enregistrement EIT dans la base EPG peut être activé en option (Enregistrer EIT dans la base EPG).

Répéter l’ajout pour chaque adaptateur présent dans le système.

Balayage DVB

Pour éviter de saisir manuellement les paramètres de réception (fréquence, polarisation, débit symbole, FEC, modulation), Perfect Streamer intègre un scanner de transpondeurs. Le scanner parcourt les transpondeurs du satellite sélectionné (DVB-S/S2) ou de la bande régionale (DVB-C, DVB-T/T2), effectue l’accord et la capture de chacun, collecte les tables PSI/SI (PAT, PMT, SDT) et constitue la liste finale des multiplex avec leurs programmes. Tout multiplex trouvé peut être ajouté à la liste des adaptateurs DVB d’un seul clic.

Le scanner mobilise l’adaptateur physique en totalité ; pour le démarrer, il faut un adaptateur qui n’est utilisé ni par le noyau du système d’exploitation ni par une entrée d’adaptateur DVB active dans Perfect Streamer.

Adaptateurs disponibles

À l’ouverture de l’écran de balayage dans l’interface d’administration, une liste des adaptateurs DVB physiques du système est affichée avec leur état d’occupation :

  • free — l’adaptateur est disponible pour le balayage.

  • kernel — le périphérique est détenu par un autre processus du système d’exploitation.

  • pss-id-N — l’adaptateur est déjà utilisé par une entrée d’adaptateur DVB dans Perfect Streamer portant l’identifiant indiqué. Le scanner ne peut pas y être lancé tant que cette entrée est active. Pour libérer temporairement l’adaptateur, l’entrée d’adaptateur DVB existante doit être suspendue (l’indicateur Pause dans ses paramètres).

Listes de transpondeurs

Le scanner s’appuie sur des listes de référence au format Enigma2 : la liste des satellites satellites.xml et les listes régionales cables.xml / terrestrial.xml. Chaque fichier contient un ensemble de transpondeurs pour une position orbitale connue ou pour une bande régionale DVB-T/C (pour plus de détails, voir le site du projet oe-alliance-tuxbox-common).

Les fichiers se trouvent dans le répertoire sat/ relatif à pss.json (par défaut /etc/pss/sat/). Ils sont fournis avec la distribution Perfect Streamer et sont chargés à l’ouverture de l’écran de balayage. Ils peuvent être mis à jour en cas de besoin en remplaçant le fichier XML correspondant.

Dans l’interface d’administration, les listes de référence sont présentées sous la forme de trois listes :

  • Satellite — positions orbitales (par exemple Hot Bird 13.0°E, Astra 19.2°E).

  • Région câble — pays ou fournisseur DVB-C.

  • Région terrestre — région DVB-T/T2.

Si le satellite ou la région requis n’est pas présent dans les listes de référence, le fichier XML peut être mis à jour ou le balayage aveugle peut être utilisé à la place (voir ci-dessous).

Démarrage

Dans la boîte de dialogue de balayage, les éléments suivants sont définis dans l’ordre :

  • Un adaptateur physique libre.

  • Type de système de transmission : DVB-S, DVB-S2, DVB-T, DVB-T2 ou DVB-C.

  • Source :

    • pour DVB-S/S2 — une position orbitale dans la liste des satellites et les paramètres LNB (fréquences d’oscillateur local LO1 et LO2, limite de la bande supérieure, port DiSEqC) ;

    • pour DVB-C — une région câble ;

    • pour DVB-T/T2 — une région terrestre.

Après avoir appuyé sur Démarrer, le balayage s’exécute en arrière-plan. La progression est affichée dans l’interface d’administration :

  • le pourcentage d’avancement basé sur le nombre de transpondeurs traités ;

  • la fréquence et la polarisation actuelles ;

  • les compteurs Multiplex trouvés et Programmes trouvés ;

  • un arbre des multiplex déjà trouvés, déployable jusqu’aux programmes.

Le scanner est une ressource partagée au niveau du streamer : au plus un balayage s’exécute à la fois. Si un nouveau balayage est lancé alors qu’un autre est déjà en cours, le précédent est automatiquement annulé. Le bouton Annuler interrompt le balayage et vide la liste accumulée.

La durée du balayage dépend du nombre de transpondeurs dans la liste de référence sélectionnée (typiquement jusqu’à 5 secondes par transpondeur : jusqu’à 2 secondes pour le verrouillage du signal et jusqu’à 5 secondes pour la collecte des PSI). Valeurs typiques :

  • DVB-S Hot Bird 13.0°E — environ 2 minutes (44 transpondeurs).

  • DVB-S Astra 19.2°E — environ 1,5 minute.

  • DVB-T région européenne — moins d’une minute.

Résultat

Le résultat du balayage est affiché sous la forme d’un arbre multiplex → programmes.

Paramètres du multiplex :

  • fréquence, polarisation, débit symbole ;

  • FEC, modulation, delivery system ;

  • identifiant du flux de transport (TSID) ;

  • les relevés du frontend au moment de la fin de la collecte des PSI — SNR, Signal, BER ;

  • les compteurs pmt-total / pmt-recv — le nombre de tables PMT annoncées par la PAT et le nombre de tables effectivement collectées dans le délai imparti.

Paramètres du programme :

  • PNR (program_number) — l’identifiant du service au sein du multiplex ;

  • Nom et Fournisseur — issus de la table SDT, en UTF-8 ;

  • scrambled — l’indicateur d’embrouillage. Sa source est déterminée dans l’ordre suivant : le bit free_CA_mode issu de la SDT (déclaration du broadcaster) → les drapeaux d’embrouillage de transport issus de la PMT. Si ni la SDT ni la PMT ne sont reçues dans le délai imparti, la valeur par défaut est 0 (« non embrouillé ») ; l’état réel est déterminé lors de la tentative de réception ;

  • video-pid, audio-pid, pcr-pid — les principaux flux élémentaires du service.

Application du résultat

Le multiplex sélectionné dans l’arbre est ajouté à la liste des adaptateurs DVB par un seul bouton. Une nouvelle entrée est créée avec les paramètres issus du résultat du balayage (fréquence, polarisation, débit symbole, FEC, modulation, delivery system) ainsi que les paramètres LNB et le couple adapter/device spécifiés au démarrage du balayage. Le nom de l’adaptateur est défini par l’utilisateur ; les paramètres complémentaires (clés BISS pour les chaînes embrouillées, T2-MI, LNB partagé, etc.) sont renseignés une fois l’entrée créée, via ses paramètres.

Les programmes issus des multiplex trouvés sont appliqués séparément — en créant un flux (Stream) avec une source d’entrée demuxer désignée par la PNR (voir la section Connexion d’un flux SPTS à un service de multiplex DVB).

Balayage aveugle

Le mode aveugle est utilisé lorsque :

  • le satellite requis ne figure pas dans les listes de référence (position orbitale non standard, liaison montante locale) ;

  • les listes de référence régionales DVB-T/C sont insuffisantes ou obsolètes pour un site donné ;

  • un segment de la bande doit être revérifié indépendamment de la liste des transpondeurs connus.

Dans ce mode, le scanner ne consulte pas les listes de référence ; il synthétise une liste de transpondeurs à partir d’une grille de fréquences. Par défaut, les plages typiques suivantes sont utilisées :

  • DVB-S/S2 Ku — 10700..12750 MHz, pas de 4 MHz, les deux polarisations (H et V), débits symbole typiques 22000 / 27500 / 30000 ksym/s.

  • DVB-C — 47000..862000 kHz, pas de 8000 kHz, QAM-64 et QAM-256, débits symbole typiques 6875 / 6900 / 6952 ksym/s.

  • DVB-T/T2 — 174000..862000 kHz, pas de 8000 kHz.

Un balayage aveugle complet de la bande Ku prend de l’ordre de 100 minutes (plusieurs milliers de points d’accord). En pratique, la plage est restreinte manuellement dans l’interface d’administration — fréquence minimale/maximale et pas de la grille. Par exemple, un balayage de 11700..11800 MHz au pas de 4 MHz pour une seule bande LNB dure environ 5 minutes.

Le format du résultat d’un balayage aveugle est identique à celui d’un balayage normal. Particularités :

  • les champs FEC et Modulation des multiplex trouvés sont fixés à la valeur AUTO — le scanner ne détermine pas leurs valeurs exactes ;

  • le delivery system est égal à celui demandé (DVB-S, DVB-S2, …). Pour les réseaux mixtes, il est recommandé d’effectuer deux passages — DVB-S et DVB-S2 séparément.

L’application d’un multiplex issu d’un balayage aveugle s’effectue de la même manière que pour un balayage normal — via le bouton qui l’ajoute à la liste des adaptateurs DVB. Les champs FEC et Modulation sont généralement laissés à AUTO et, si nécessaire, affinés après un verrouillage stable du signal sur le transpondeur concerné.

Taille du tampon de réception kernel

Le paramètre buffer-size (entier, valeur par défaut 512) définit la taille du tampon circulaire DVB demux du kernel en blocs de 65536 octets.

  • 512 (32 Mo) — valeur par défaut recommandée. Couvre les scénarios DVB-S/S2 sur transpondeur entier (>= 33 Mbit/s) avec un ou plusieurs consommateurs MPTS. Choisi sur la base des tests sur banc avec un adaptateur TBS à pleine charge du transpondeur.

  • 8..64 (512 Ko .. 4 Mo) — acceptable pour les systèmes embarqués à RAM limitée ou pour les adaptateurs en modes Scanner / Femon avec un trafic faible.

  • 0 — conserver la valeur par défaut du pilote (en général 8…32 Ko). Convient uniquement aux scénarios très peu chargés. Au-delà de 10 Mbit/s des pertes apparaîtront.

Lorsqu’un message du type suivant apparaît dans le journal :

DVB adapter X/Y dvr buffer overflow (NN so far, KK pids);
raise 'buffer-size' or reduce pid filter

augmenter buffer-size ou réduire le nombre de PIDs traversant le filtre (par exemple, abandonner la sortie MPTS si elle n’est pas nécessaire).

Coût mémoire : la valeur N consomme N × 64 Ko de mémoire kernel par adaptateur. Avec beaucoup d’adaptateurs (8 et plus) il convient d’en tenir compte (8 × 32 Mo = 256 Mo).

Connexion d’un flux SPTS à un service de multiplex DVB

Lors de l’ajout d’un nouveau canal SPTS à l”input du flux, sélectionner :

  • Type : demuxer.

  • Source : adaptateur DVB.

  • Multiplex créé sur l’adaptateur DVB, par nom d’adaptateur.

  • PNR — sélectionné dans la liste contextuelle des services détectés dans le multiplex ou saisi manuellement.

Droits d’accès aux périphériques DVB

Si les adaptateurs DVB ne sont pas affichés dans Perfect Streamer, effectuer les actions suivantes :

sudo nano /etc/udev/rules.d/99-dvb-permissions.rules
SUBSYSTEM=="dvb", GROUP="video", MODE="0660"

sudo usermod -aG video pss
sudo chown -R root:video /dev/dvb/*
sudo reboot

Décapsulation T2-MI

T2-MI (T2-Modulator Interface, ETSI TS 102 773) est un format de transport des flux DVB-T2 sur DVB-S2 multistream. Le transpondeur externe DVB-S/S2 porte un ou plusieurs T2-MI carrier-PIDs, chacun encapsulant des BBFRAMEs avec un ou plusieurs PLPs (Physical Layer Pipe). Après décapsulation, le MPEG-TS interne contenant les programmes et les tables PSI/SI est extrait du BBFRAME.

L’implémentation Perfect Streamer fonctionne en mode multi-carrier : un seul adaptateur physique fournit simultanément le multiplex DVB-S/S2 externe et tous les carriers T2-MI décapsulés (un par carrier-PID trouvé dans le PMT du flux externe).

Paramètres de configuration

t2mi-mode (Int, 0..2, valeur par défaut 0) — mode de décapsulation :

  • 0 — Désactivé. Le MPEG-TS externe est transmis sans traitement. Si un descripteur T2-MI (tag 0x51) est détecté dans le PMT, un indice unique est journalisé.

  • 1 — Manuel. La décapsulation est toujours active. Si t2mi-pid est non nul, un carrier est pré-créé sur ce PID au démarrage. Les carriers supplémentaires continuent d’être détectés automatiquement à partir du PMT.

  • 2 — Auto. Les carriers sont détectés automatiquement à partir du PMT du multiplex externe pour tous les ES qui ressemblent à du T2-MI (descripteur 0x51 ou unique ES avec stream_type=0x06 sur un service sans autres ES A/V). Si aucun carrier n’est trouvé, l’adaptateur fonctionne comme un multiplex DVB ordinaire.

t2mi-pid (Int, 0..8191, valeur par défaut 0) — PID pour la pré-création d’un carrier au démarrage, avant l’arrivée du PMT :

  • 0 — pas de pré-création. Les carriers sont détectés à partir du PMT (recommandé pour le mode auto 2).

  • 1..8191 — pré-créer un carrier sur ce PID. Les T2-MI ES supplémentaires trouvés dans le PMT obtiennent quand même leurs propres carriers.

En mode multi-carrier, le paramètre t2mi-pid n’est pas un sélecteur de carrier unique — chaque ES T2-MI détecté obtient son propre carrier avec son propre décapsulateur. Le paramètre fournit une initialisation précoce pour un PID connu.

t2mi-plp (Int, 0..255, valeur par défaut 0) — identifiant du PLP extrait de chaque carrier T2-MI sur l’adaptateur. Appliqué à tous les carriers — la surcharge par carrier n’est pas prise en charge dans la version actuelle. Si en production différents carriers portent des PLPs différents, il faut :

  • spécifier un PLP commun à tous les carriers, ou

  • configurer des adaptateurs séparés pour différents PLPs à l’aide de lnb-sharing.

Il s’agit de l’identifiant du champ plp_id du BBFRAME, non du ISI multistream DVB-S2 (défini par le paramètre dvb-stream-id). Ce sont des identifiants différents à des couches différentes.

Diagnostic de sélection PLP :

  • Cinq secondes après le démarrage d’un carrier, si aucun BBFrame n’a été reçu pour le PLP configuré mais que d’autres PLPs sont visibles, un avertissement est journalisé avec la liste des plp_id observés.

t2mi-tsid (Int, -1..255, valeur par défaut -1) — réservé pour un usage futur. Sélecteur de l’identifiant de flux T2-MI lorsque plusieurs flux T2-MI partagent un même carrier-PID. Ignoré dans la version actuelle.

PNR composite — connexion SPTS depuis T2-MI

Un adaptateur peut exposer plusieurs multiplex logiques :

  • carrier-id = 0 — multiplex DVB-S/S2 externe (services A/V ordinaires).

  • carrier-id = 1..N — carriers T2-MI décapsulés (un par ES T2-MI externe).

Désembrouillage BISS

Le désembrouillage des flux DVB chiffrés selon BISS-1 (mode E1) et BISS-E (mode E2) est pris en charge. Applicable aux systèmes de transmission DVB-S, DVB-S2, DVB-T, DVB-T2.

L’implémentation permet de garder plusieurs désembrouilleurs actifs simultanément sur un même adaptateur :

  • Par PNR dans le multiplex externe (service ordinaire).

  • Par plp_id pour décrypter le carrier-PID T2-MI avant décapsulation (requis pour les flux multistream chiffrés — sinon le décapsulateur rejette chaque paquet chiffré, voir le compteur <t2mi scrambledDropped>).