DVB-Empfänger

Perfect Streamer arbeitet mit den im System installierten DVB-Adaptern: unterstützt werden die Standards DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C und ATSC. Zusätzlich sind die T2-MI-Dekapselung (ETSI TS 102 773) sowie die Entschlüsselung BISS-1 / BISS-E und CI/CAM implementiert. Grundvoraussetzung ist ein korrekt installierter und funktionierender Adaptertreiber; der Bildschirm „DVB-Adapter“ (DVB-Adapter) ist verfügbar, sobald im System DVB-Geräte erkannt werden. DVB-ASI-Geräte werden anders angebunden — über einen Datei-Eingang des Streams auf den Gerätepfad, ohne einen DVB-Adapter-Eintrag.

Adapter

Ein Adapter ist ein Eintrag, der einen physischen Tuner (das Paar „Adapter/Gerät“ im System) an die Empfangsparameter bindet; ist das Signal eingerastet, liefert der Adapter den MPTS-Multiplex des Transponders. Ein Adapter wird im Fenster „DVB-Adapter hinzufügen“ (DVB-Adapter-Editor) hinzugefügt:

  • Modus: Stream — Empfang des Streams; Frontend monitor — ausschließlich Signalüberwachung, ohne den Stream zu lesen (der veraltete Wert Scanner wird nicht verwendet). Der Modus und das „Übertragungssystem“ werden bei der Anlage festgelegt und sind danach unveränderlich.

  • Hardware — der Tuner wird aus der Liste der im System erkannten Tuner ausgewählt; belegte Tuner sind gekennzeichnet.

  • Abstimmparameter — hängen vom Übertragungssystem ab: Frequenz (für Satellit in MHz, für terrestrischen Empfang und Kabel in kHz), „Symbolrate, ksym/s“, „FEC“, „Modulation“, „Spektrale Inversion“, „Stream id (ISI/PLP)“ (siehe unten); für den terrestrischen Empfang — „Bandbreite“, „Übertragungsmodus“, „Schutzintervall“, „Hierarchie“.

Die Hardware ist in beiden Modi Pflicht — auch der Frontend-Monitor beobachtet einen bestimmten Tuner —, und für DVB-S, DVB-S2 und DVB-C im Modus Stream sind zusätzlich die Frequenz und die Symbolrate Pflicht. Der Knoten deklariert diese Schlüssel mit einem Standardwert unterhalb seiner eigenen Untergrenze und prüft sie beim Anlegen des Adapters, sodass der Standardwert nicht eingesetzt werden kann: Die Dialoge zum Anlegen und Bearbeiten lassen den Adapter nicht speichern, solange die Werte nicht gesetzt sind (DVB-Adapter-Editor).

Für Satellitensysteme wird der Abschnitt „LNB“ konfiguriert: die Oszillatorfrequenzen (universelles Ku — 9750/10600, Umschaltung bei 11700 MHz; für zirkulare Polarisation und das C-Band gelten eigene Werte), „Polarisation“ (der Adapter steuert die Speisung des Konverters: 18 V — horizontal, 13 V — vertikal), „DiSEqC-Port“ und „22-kHz-Ton erzwingen“.

Die Polarisation muss ein Adapter im Modus Stream ausdrücklich erhalten: einen Automatikmodus gibt es nicht, standardmäßig ist keine ausgewählt, und mit nicht ausgewählter Polarisation wird der Adapter nicht abgestimmt — er bleibt im Fehlerzustand und meldet, dass die Polarisation nicht gesetzt ist. Die Fenster zum Anlegen und Bearbeiten des Adapters lassen einen Satellitenadapter im Modus Stream nicht speichern, solange nicht horizontal oder vertikal ausgewählt ist. Auszuwählen ist sie auch beim „LNB-Sharing“: dort wirkt sich der Wert auf nichts aus, weil die Speisung vom Besitzer des Konverters gesteuert wird, aber ohne sie wird der Adapter trotzdem nicht abgestimmt.

„LNB-Sharing“ deaktiviert die Steuerung von Speisespannung, Polarisation und Ton — diese werden von einem anderen Empfänger gesetzt, der den Konverter besitzt. Der Modus wird verwendet, wenn mehrere Tuner über einen Verteiler an ein und demselben LNB angeschlossen sind (empfangen werden können nur die vom Besitzer gewählte Polarisation und das gewählte Band), sowie um verschiedene PLPs desselben Transponders auf getrennte Adapter zu verteilen — die Nummer wird für jeden von ihnen im Feld „Stream id (ISI/PLP)“ festgelegt.

„Stream id (ISI/PLP)“ wählt auf Tuner-Ebene einen Stream aus einem Multistream-Transponder aus: die ISI bei DVB-S2 Multistream, die PLP bei DVB-T2. Ab 2.0.2.291 hat das Feld drei unterscheidbare Zustände, und sie sind keine Synonyme:

-1

„Auto“ — es wird kein Filter angewendet, der Tuner nimmt den Standardstream des Treibers. So steht es im Hinweis unter dem Feld; im Feld selbst steht eine Zahl. Mit diesem Wert wird ein neuer Adapter angelegt.

0

Eine ausdrückliche Auswahl des Streams mit der Nummer null. Das ist ein echter Filter und nicht „nicht gesetzt“.

1 und aufwärts

Der Stream mit der angegebenen Nummer.

Die Oberfläche akzeptiert Werte von -1 bis 255: eine PLP-Nummer ist acht Bit breit, und diese Schranke ist eine Begrenzung der Oberfläche und des Scanners, nicht des Nodes. Vor 2.0.2.291 gab es den Wert „auto“ nicht: null war zugleich Minimum und Standardwert und bedeutete „nicht gesetzt“ — es wurde kein Filter angewendet. Nach der Aktualisierung des Nodes wird eine gespeicherte Null zu einem echten Filter, sodass ein Adapter mit 0 in den Einstellungen nur noch den Stream null empfängt; wird kein Filter gewünscht, setzen Sie -1. Auf einem Node älter als 2.0.2.291 bietet die Oberfläche „auto“ nicht an und weist darauf hin, in welcher Version es erscheint; ein dort eingegebenes -1 wird als 0 gespeichert.

Entschlüsselungsschlüssel und die CAM-Programmliste werden im laufenden Betrieb übernommen; Änderungen an den Abstimmparametern stimmen das Frontend neu ab. Die Einstellung „EPG exportieren“ schreibt die Programmvorschau des Multiplex in die EPG-Datenbank des Knotens (EPG/XMLTV-Import).

Anbindung an Streams

Der empfangene Multiplex wird auf zwei Arten genutzt:

  • vollständig — ein Eingang vom Typ dvb an einem MPTS-Stream: der gesamte Transponder geht in den Transit oder in das Remultiplexing (MPTS-Streams);

  • als einzelne Programme — ein Demultiplexer-Eingang an SPTS-Streams (Demultiplexer): das Programm wird anhand der PNR aus der Liste der erkannten Dienste ausgewählt.

In der Programmliste des Adapters ist ersichtlich, welche Programme bereits genutzt werden: die Markierung „Aktiv“ mit einem Zusatz — als einzelnes Programm extrahiert (SPTS) oder als Teil des vollständigen Multiplex gelesen (MPTS). Solange mindestens ein Stream auf den Adapter verweist, kann er nicht gelöscht werden.

Scan

Um die Empfangsparameter nicht von Hand eingeben zu müssen, ist ein Transponder-Scanner eingebaut (Fenster „DVB-Scan“, DVB-Scan). Der Scanner geht die Transponder des ausgewählten Satelliten oder des regionalen Bands durch, rastet auf jeden einzelnen ein, sammelt die PSI/SI-Tabellen und stellt eine Liste der Multiplexe mit ihren Programmen zusammen: PNR, Dienstname, Anbieter, Verschlüsselungskennzeichen und die wichtigsten PIDs. Jeder gefundene Multiplex lässt sich mit einer einzigen Schaltfläche in einen fertig konfigurierten Adapter überführen; es können auch mehrere zugleich ausgewählt und hinzugefügt werden.

Besonderheiten:

  • Frequenzquelle ist der „Katalog“ (Verzeichnisse der Satelliten und der regionalen Bänder) oder der „Blind-Scan“ über ein synthetisiertes Frequenzraster mit optionalem Bereich und optionaler Schrittweite. Die Verzeichnisse umfassen Hunderte von Zeilen, daher sind sie nach Namen sortiert und über der Liste steht ein Suchfeld (DVB-Scan);

  • für Satellit wird eine „LNB-Voreinstellung“ gewählt (universelles Ku, zirkulare Polarisation, C-Band) oder es werden eigene Oszillatorfrequenzen angegeben;

  • der Scanner belegt den physischen Tuner vollständig — erforderlich ist ein Tuner, der weder vom System noch von anderen aktiven Einträgen belegt ist; ein pausierter Eintrag gibt seinen Tuner frei, daher kann ein laufender Adapter vorübergehend pausiert und für den Scan genutzt werden; belegte Tuner sind in der Liste mit Angabe des Grundes zu sehen und lassen sich nicht auswählen;

  • pro Node gibt es einen Suchlauf — gemeinsam für alle Adapter. Der Start eines neuen Durchlaufs beendet den vorherigen und nimmt dessen Platz ein; der Node lehnt nur dann ab, wenn der vorherige Durchlauf den Tuner nicht innerhalb der vorgesehenen Zeit freigegeben hat — der Start wird dann nach einigen Sekunden wiederholt;

  • ein Durchlauf wird mit der Schaltfläche „Stopp“ beendet; er endet ebenso, wenn das Suchlauffenster geschlossen wird — auf welchem Weg auch immer, einschließlich des Hinzufügens eines gefundenen Multiplexes. Das Anhalten löscht die Ergebnisse nicht: die gefundenen Multiplexe bleiben auf dem Bildschirm, bis sie mit der Schaltfläche „Neuer Suchlauf“ entfernt werden oder das Fenster geschlossen wird;

  • auf das Ende des Durchlaufs zu warten, um einen Adapter auf demselben Tuner hochzufahren, ist nicht nötig: ein konfigurierter Adapter nimmt sich den Tuner. Trifft er auf den Scanner, fordert er diesen auf, den Tuner freizugeben; für einen Versuch geht der Adapter mit der Meldung über ein belegtes Gerät in den Fehlerzustand und kommt beim nächsten hoch — nach etwa einer Sekunde. Der Suchlauf endet dabei als abgebrochen, seine Ergebnisse bleiben jedoch verfügbar. Die Priorität ist hier einseitig: unterbrochen wird immer der Suchlauf, selbst wenn er zuerst begonnen hat und bereits den größten Teil der Transponder durchlaufen ist. Das betrifft nur Adapter im Modus Stream — der Modus Frontend monitor liest den Tuner, ohne ihn zu belegen, und trifft nicht auf den Scanner;

  • standardmäßig durchläuft der Scanner einen Transponder einmal: auf der PLP, die das Verzeichnis dafür angibt, und ist keine angegeben — ohne Filter auf derjenigen, auf die der Tuner eingerastet ist. Das Feld „PLP prüfen bis“ fügt einen Durchlauf hinzu: der Scanner stellt sich zusätzlich auf die PLPs von der ersten bis zur angegebenen Nummer ein und hält bei der ersten an, auf der nichts ist. Durchlaufen werden nur DVB-T2-Transponder; jede nicht vorhandene PLP kostet etwa fünf Sekunden Wartezeit, deshalb ist der Durchlauf standardmäßig ausgeschaltet. Jede gefundene PLP wird zu einer eigenen Ergebniszeile mit eigener Programmliste, und ihre Nummer wird in die „Stream id (ISI/PLP)“ des angelegten Adapters übernommen. Eigene Zeilen auf einer Frequenz erscheinen auch ohne Durchlauf — dort, wo das Verzeichnis selbst verschiedene PLPs aufführt;

  • in T2-MI steigt der Scanner nicht hinein: die Dekapselungsparameter werden erst in den Einstellungen des angelegten Adapters festgelegt. Der oben beschriebene PLP-Durchlauf hat mit T2-MI nichts zu tun — das sind PLPs auf Tuner-Ebene, eine Schicht unterhalb der Träger.

T2-MI-Dekapselung

T2-MI (T2-Modulator Interface, ETSI TS 102 773) ist ein Format für den Transport von DVB-T2-Strömen über Verteilstrecken, üblicherweise satellitengestützte DVB-S/S2 (Multistream eingeschlossen): der äußere Transponder führt einen oder mehrere T2-MI-Träger, von denen jeder BBFRAME mit einer oder mehreren PLPs kapselt. Nach der Dekapselung wird der innere MPEG-TS mit seinen Programmen und PSI/SI-Tabellen gewonnen.

Perfect Streamer arbeitet im Multi-Carrier-Modus: ein einzelner Adapter liefert gleichzeitig den äußeren Multiplex und sämtliche dekapselten T2-MI-Träger. Einstellungen (Abschnitt „T2-MI“):

„T2-MI-Modus“

Off — die Dekapselung ist deaktiviert, der äußere Stream wird unverändert weitergegeben (wird T2-MI im Multiplex erkannt, weist der Knoten im Protokoll darauf hin); Manual — die Dekapselung ist stets aktiv; Auto — die Träger werden anhand der PMT-Tabellen automatisch erkannt, fehlen diese, arbeitet der Adapter als gewöhnlicher Multiplex.

«T2-MI PID»

Vorabanlage eines Trägers auf einer bekannten PID, bevor die Tabellen eintreffen; die übrigen Träger werden dennoch automatisch erkannt.

«T2-MI PLP»

Die PLP-Nummer, die aus jedem Träger extrahiert wird; einen trägerspezifischen Wert gibt es nicht — für verschiedene PLPs werden getrennte Adapter mit LNB-Sharing konfiguriert. Treffen keine BBFRAME mit der angegebenen PLP ein, schreibt der Knoten die Liste der beobachteten PLPs in das Protokoll; dieselbe Liste ist in der Adapter-Statistik im Abschnitt „T2-MI-Träger“ zu sehen. Das Feld „T2-MI-TSID-Filter (-1 = beliebig)“ ist reserviert.

Das ist eine andere PLP als die in „Stream id (ISI/PLP)“: hier wird die Nummer innerhalb des Trägers gewählt, bereits nach der Dekapselung, dort dagegen auf Tuner-Ebene, davor. Auch die Bedeutung von -1 unterscheidet sich: beim TSID-Filter ist es „beliebig“, bei „Stream id (ISI/PLP)“ ist es „auto“.

Die Programme innerer Multiplexe erscheinen in der gemeinsamen Programmliste des Adapters mit einer PLP-Kennzeichnung. Um ein solches Programm an einen SPTS-Stream anzubinden, wird die zusammengesetzte PNR verwendet — Trägernummer × 65536 + PNR innerhalb des Trägers (Demultiplexer); Träger 0 ist der äußere Multiplex. Programme innerhalb eines Trägers, die denselben Satz von Medien-PIDs haben, betrachtet der Node als Spiegel voneinander und kennzeichnet sie mit „[test]“ — ausnahmslos alle, ohne ein „echtes“ darunter; ebenso gekennzeichnet werden über den Namen erkannte Test-Feeds (erkannt werden englische Bezeichnungen der Art „test card“ und „feeds“). Ein gekennzeichnetes Programm löst keine Alarme über den eigenen Zustand aus: ein Duplikat, das wegen der gemeinsamen PIDs keine eigenen Pakete erhält, sähe sonst ungeprüft aus. Die Kennzeichnung verbirgt das Programm jedoch nicht — es lässt sich gleichberechtigt mit den übrigen anbinden, und in der Programmauswahl stehen solche Zeilen an letzter Stelle.

Entschlüsselung

BISS. Ein Software-Entschlüssler für BISS-1 / BISS-E (Abschnitt „BISS-Entschlüsselung“). Festgelegt werden Paare aus „Slot — Schlüssel“; auf einem Adapter können mehrere Entschlüssler gleichzeitig aktiv sein:

  • Slot — die Programmnummer (PNR) im äußeren Multiplex: alle PIDs des Programms werden entschlüsselt;

  • Slot — die PLP eines T2-MI-Trägers: der Schlüssel wird vor der Dekapselung auf den gesamten Träger angewendet. Für verschlüsselte Multistream-Ströme ist dies zwingend — ohne Schlüssel verwirft die Dekapselungsstufe jedes verschlüsselte Paket.

Der Slot wird aus der Liste „Programm / PLP“ gewählt: Zeilen sind mit · BISS · bei einem Programm mit BISS-ECM gekennzeichnet, mit · CA · bei den übrigen verschlüsselten, mit · T2-MI · bei Trägern und mit · clear · bei unverschlüsselten Programmen — die unverschlüsselten stehen am Ende. Sie sind absichtlich in der Liste: der Schlüssel wird häufig im Voraus eingetragen, ein Event-Feed ist zwischen den Ereignissen unverschlüsselt, und auf einem Multiplex ohne ein einziges verschlüsseltes Programm bliebe die Liste sonst leer. Die Liste stammt aus einer Momentaufnahme des laufenden Adapters, daher gibt es sie bei einem neuen und bei einem gestoppten Adapter nicht — das Feld heißt dann „Slot-Id (PNR ≥ 0 oder -(plp+1))“, und die Nummer wird von Hand eingegeben.

Das Schlüsselformat ergibt sich aus der Länge: 12 Hex-Ziffern — BISS-1 (die Prüfbytes werden automatisch berechnet), 16 — BISS-E. Schlüssel werden im laufenden Betrieb übernommen, ohne Neustart des Adapters. Ob ein Schlüssel wirkt, zeigen die Zähler in der Adapter-Statistik: steigt „entschlüsselt“ — der Schlüssel funktioniert; steigt „Schlüssel fehlt“ — der Schlüssel ist nicht gesetzt oder auf der falschen Ebene gesetzt; steigt „Fehler“ — der Schlüssel ist falsch.

CI/CAM. Ein Adapter mit installiertem CAM-Modul entschlüsselt ausgewählte Programme über das Common Interface (Abschnitt „CI/CAM-Entschlüsselung“): die Programmnummern werden aufgeführt, das Modul entschlüsselt sie unmittelbar im Empfangspfad. Die Liste wird im laufenden Betrieb übernommen und ist vom Übertragungssystem unabhängig. Der Zustand des Moduls, die unterstützten CA-Systeme und der Entschlüsselungsstatus jedes Programms sind in der Adapter-Statistik und im Bildschirm „Hardware“ (Hardware) ersichtlich; das Entnehmen des Moduls, ein fehlendes Abonnement und CA-Fehler lösen Alarme aus (Katalog der Alert-Codes).

„CA aus entschlüsselter Ausgabe entfernen“ (erweiterte Einstellung) räumt die CAS-Tabellen und -Meldungen aus den bereits entschlüsselten Programmen — analog zum Stream-Filter „CAT / ECM / EMM löschen“ (MPEG-TS-Filterung).

Signalüberwachung

In der Adapterliste sind Signaleinrastung, Signalstärke, SNR, BER und die Eingangsbitrate jedes Adapters ersichtlich. Das Statistikfenster des Adapters (Adapter-Statistik) zeigt den Signalverlauf (Signalstärke, SNR, BER, unkorrigierte Blöcke), die aktuellen Frontend-Kennwerte, die Programmliste mit Mediendaten, die Zähler der T2-MI-Träger und der Entschlüssler, den Zustand des CAM-Moduls sowie das Protokoll; die kumulativen Zähler werden mit der Schaltfläche „Statistik zurücksetzen“ gelöscht. Zur Überwachung der Antenne ohne Lesen des Streams wird der Adapter im Modus Frontend monitor angelegt.

Verlust der Einrastung, ein Abfall von Pegel oder Qualität des Signals sowie eine Zunahme von BER-Fehlern und unkorrigierten Blöcken lösen Alarme mit konfigurierbaren Schwellen aus (Benachrichtigungen (Alerter), die Schwellen stehen in den Einstellungen des Alerters).

Empfangspuffer. „Demux-Puffer (Blöcke)“ (erweiterte Einstellung) legt die Größe des Empfangs-Ringpuffers in Blöcken zu je 64 KB fest. Der Vorgabewert 512 (32 MB) deckt Volltransponder-Szenarien in DVB-S/S2 mit mehreren Verbrauchern ab; auf schwach ausgelasteten oder eingebetteten Systemen kann er verringert werden. Bei Pufferüberläufen (der Zähler ist in der Statistik, die Meldung im Protokoll zu sehen) erhöhen Sie den Puffer oder verringern Sie das Volumen der empfangenen Daten — verzichten Sie beispielsweise auf das Lesen des vollständigen Multiplex, wenn er nicht benötigt wird. Berücksichtigen Sie den Speicherbedarf: jeder Adapter reserviert „Blöcke × 64 KB“.

Zugriffsrechte auf Geräte

Werden die DVB-Adapter in Perfect Streamer nicht angezeigt, obwohl sie im System vorhanden sind, erteilen Sie dem Dienst die Rechte an den DVB-Geräten. Legen Sie die Datei /etc/udev/rules.d/99-dvb-permissions.rules mit der folgenden Zeile an:

SUBSYSTEM=="dvb", GROUP="video", MODE="0660"

Fügen Sie anschließend den Dienstbenutzer der Gruppe video hinzu und wenden Sie die Rechte an:

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

Nach einem Neustart des Systems setzt die udev-Regel die Rechte automatisch.