SPTS-Streams¶
SPTS (Single Program Transport Stream) ist ein MPEG-TS-Stream mit einem einzigen Programm; er ist die grundlegende Verarbeitungseinheit von Perfect Streamer. Der Stream-Typ — SPTS oder MPTS — wird bei der Erstellung gewählt und kann später nicht mehr geändert werden. Für einen SPTS-Stream wird zusätzlich der Inhaltstyp gewählt (Werte wie in der Oberfläche): Default (audio + video), Audio only (Ton ohne Bild, Radiokanäle) oder Video only.
Verwürfelte (verschlüsselte) Streams werden unterstützt: Die Verwürfelung wird automatisch erkannt, und die Prüfungen der Elementarströme werden für diese Zeit ausgesetzt. Die Einstellung „Verschlüsselter Kanal“ erklärt den Stream als dauerhaft verwürfelt und deaktiviert die automatische Erkennung.
Die allgemeinen Anforderungen an den Eingangsstream sind in Anforderungen an den Eingangsstream aufgeführt, die Empfangs- und Sendeprotokolle im Abschnitt Planung und Datenübertragungsprotokolle. Die Verarbeitung von Multiplexen ist in MPTS-Streams beschrieben. Streams werden in der Weboberfläche angelegt und konfiguriert (Streams).
Verarbeitungspipeline¶
Pipeline eines SPTS-Streams: Eingänge, Verarbeitung auf Stream-Ebene (Eingangsumschalter, TS-Filter, Analysator, Bitratenangleichung, Synchronisierer), das Subsystem OTT / DVR und die Ausgänge.¶
Alle Eingänge eines Streams laufen im Eingangsumschalter zusammen, anschließend durchläuft der Stream die aufeinanderfolgenden Verarbeitungsstufen:
Eingangsumschalter — wählt die aktive Quelle aus und schaltet den Stream bei einer Störung auf die Reserve um (Quellenredundanz).
TS-Filter — optionale Filterung und Modifikation des MPEG-TS (MPEG-TS-Filterung, Modifikation des Streams).
Analysator — fortlaufende Gültigkeitsprüfung und Vermessung des Streams (Analysator); auf sein Urteil hin erklärt der Eingangsumschalter eine Quelle für gestört. Die Daten des Analysators nutzen außerdem das Mosaik (Mosaik, wird über die Einstellung „Mosaik erzeugen“ deaktiviert), der EPG-Import und der Untertiteldecoder.
Bitratenangleichung — optionales Auffüllen (Stuffing) auf eine konstante Bitrate und Korrektur des PAT/PMT-Intervalls (Bitratensteuerung).
Synchronisierer — Paketausgabe im Takt der PCR mit Kompensation des Netzwerk-Jitters (Synchronisation). An derselben Stelle fügt der EIT-Generator die Tabellen des Programmführers ein (EIT-Generator).
Vom Ausgang des Synchronisierers wird der Stream an alle Ausgänge verteilt: Transportprotokolle (Peer-Protokolle für zuverlässige Übertragung), Aufzeichnung in eine Datei, MPTS-Multiplexer (Multiplexer), Transcoder (Transcoder) sowie das Subsystem OTT / DVR (OTT und DVR). Als Quelle eines SPTS-Streams kann auch ein einzelnes Programm eines Multiplexes dienen — ein Demultiplexer-Eingang (Typ demuxer) extrahiert es anhand der Programmnummer aus einem MPTS-Stream oder von einem DVB-Empfänger (Demultiplexer).
Quellenredundanz¶
Ein Stream kann mehrere Eingänge besitzen, aktiv ist jedoch immer nur einer. Die Reihenfolge der Eingänge in der Liste bestimmt die Priorität: Der erste ist der Haupteingang, die übrigen sind Reserveeingänge. Wird der aktive Eingang als gestört erklärt, schaltet der Stream auf den nächsten Eingang der Liste um; nach dem letzten Eingang wird der Durchlauf beim ersten fortgesetzt. Ein pausierter Eingang wird beim Umschalten übergangen.
Über eine Störung entscheidet der Analysator: Ein Eingang gilt als gestört, wenn der Stream die Gültigkeitsprüfung nicht besteht oder länger als das eingestellte Timeout keine Daten eintreffen. Der Betrieb des Streams auf einem Reserveeingang wird durch einen Alarm festgehalten (Benachrichtigungen (Alerter)).
Die Einstellungen für das Umschalten befinden sich im Reiter „Stream“ des Stream-Editors (Stream konfigurieren):
- „Stream-Timeout (s)“
Die Zeit ohne gültigen Eingangsstream, nach der auf den nächsten Eingang umgeschaltet wird. Standardmäßig 30 Sekunden.
- „Prüfintervall (s)“
Der Zeitraum, in dem die Quellen erneut geprüft werden. Standardmäßig 60 Sekunden.
- „Haupteingang erneut prüfen“
Während der Stream auf einem Reserveeingang läuft, werden die in der Liste höher stehenden Eingänge im Prüfintervall erneut geprüft. Sobald eine höher priorisierte Quelle wieder gültig ist, kehrt der Stream zu ihr zurück. Standardmäßig aktiviert.
MPEG-TS-Filterung¶
Standardmäßig wird der Stream unverändert durchgereicht. Die Filterung wird auf zwei Ebenen angewendet: die PID-Regeln jeweils einzeln an jedem Eingang, die Tabellenfilter auf Stream-Ebene.
Die PID-Regeln werden im Reiter „MPEG-TS PID“ des Eingangsfensters konfiguriert (Editor für Eingang und Ausgang):
- „PIDs annehmen (Whitelist)“
Die Liste der erlaubten PIDs. Ist die Liste leer, ist alles erlaubt, was nicht durch die Blacklist verboten ist.
- „PIDs verwerfen (Blacklist)“
Die Liste der verbotenen PIDs. Eine PID, die gleichzeitig in beiden Listen steht, wird verworfen.
Nach der Filterung wird die PMT anhand der tatsächlichen Zusammensetzung der Elementarströme neu erzeugt. Die PID-Regeln werden vor der automatischen PID-Anordnung (Automatische PID-Anordnung) angewendet, sofern diese aktiviert ist.
Die Filter auf Stream-Ebene befinden sich im Reiter „MPEG-TS“ des Stream-Editors, Abschnitt „Filter“ (standardmäßig alle deaktiviert):
- „Nicht benötigte Tabellen bereinigen“
Entfernt Dienstdaten, die nicht zum Programm gehören, sowie Elementarströme unbekannter Typen; Ströme bekannter Typen (Video, Ton, Teletext, Untertitel) und die Tabellen PAT/PMT bleiben erhalten. Einzelne Tabellen (SDT, EIT, NIT, TDT, CAT) werden über eigene Filter gesteuert.
- „CAT / ECM / EMM löschen“
Entfernt die Tabellen und Nachrichten der Systeme für bedingten Zugriff (CAS) einschließlich der CA-Deskriptoren aus der PMT — zum Beispiel, um die Rückstände des CAS nach der Entwürfelung zu beseitigen.
- „EIT löschen“
Entfernt die Programmführer-Tabellen der Quelle. Standardmäßig wird die EIT unverändert durchgereicht.
- „NIT löschen“, „TDT löschen“
Entfernen die Netzwerk- und Zeitstempeltabellen der Quelle.
- „Teletext löschen“, „Untertitel löschen“
Entfernen die Teletext- und DVB-Untertitelströme zusammen mit ihren Einträgen in der PMT.
- „Ursprüngliche SDT löschen“ (Abschnitt „SDT“)
Entfernt die Service-Description-Tabelle der Quelle — zum Beispiel bei der Weitergabe des Streams zur weiteren Multiplexierung. Bei der Vergabe eines eigenen Servicenamens (Modifikation des Streams) wird die ursprüngliche SDT automatisch ersetzt; dieser Filter muss dann nicht zusätzlich aktiviert werden.
Bemerkung
Das Entfernen der obligatorischen Tabellen (SDT, NIT, TDT, EIT, CAT) verletzt die Anforderungen von TR 101 290 an deren Vorhandensein im Stream — dies ist eine bewusste Entscheidung des Betreibers, die zum Beispiel bei der Weitergabe des Streams zur weiteren Multiplexierung angebracht ist. Darüber hinaus verändert jede Filterung die Paketzusammensetzung des Streams; zur Auswirkung auf die PCR-Genauigkeit siehe Bitratensteuerung.
Modifikation des Streams¶
Eigene Servicedaten werden im Abschnitt „SDT“ des Reiters „MPEG-TS“ festgelegt. Die Erzeugung der Tabelle aktiviert das Feld „Servicename“ (ebenso die aktive Erzeugung der EIT aus EPG): Enthält die Quelle keine SDT, wird die Tabelle erzeugt; ist eine vorhanden, wird sie durch die erzeugte ersetzt. Die Felder „Providername“ und „Sprache“ füllen die entsprechenden Felder der erzeugten Tabelle. Die Einstellung „Netzwerk-ID“ legt den Netzwerkidentifikator für die erzeugten EIT-Tabellen fest, wenn die Quelle keinen eigenen Netzwerkidentifikator meldet; ist in der Quelle ein Identifikator vorhanden, wird dieser verwendet.
Die Programmnummer wird im Abschnitt „Programmnummer“ neu vergeben: Aktivieren Sie „Programmnummer ändern“ und legen Sie „Neue Programmnummer“ fest. Die Tabellen PAT und PMT werden mit der neuen Nummer neu erzeugt; SDT und EIT werden ebenfalls neu erzeugt.
„PAT/PMT-Intervall fixieren“ — erzeugt PAT/PMT neu und fügt sie in einem Intervall gemäß TR 101 290 ein. Anzuwenden bei Quellen mit seltenen oder unregelmäßigen Tabellen.
Die Neuzuordnung von PIDs und Sprachen erfolgt am Eingang, im Reiter „MPEG-TS PID“ des Eingangsfensters:
- „PIDs neu zuordnen“
Paare „Von PID“ / „Zu PID“ — Ersetzen der Identifikatoren der Elementarströme, zum Beispiel um den Stream an den PID-Plan des Netzwerks anzupassen. Bei aktivierter automatischer PID-Anordnung (Automatische PID-Anordnung) bleiben diese Paare wirkungslos.
- „Audiosprache neu zuordnen“
Paare „Audio-PID“ / „Neue Sprache“ — Ersetzen der Sprache der Tonspur in der PMT.
Die Erzeugung der EIT aus einer externen EPG-Quelle wird im Abschnitt „EIT aus EPG erzeugen“ des Reiters „Stream“ aktiviert: Es werden „EPG-Quelle“ und „EPG-Kanal“ ausgewählt, und in den Stream werden EIT-Tabellen mit dem Programmführer eingefügt (EIT-Generator). Die umgekehrte Operation ist die Einstellung „EIT in die EPG-Datenbank extrahieren“, die den Programmführer aus dem Stream in die EPG-Datenbank des Knotens exportiert (EPG/XMLTV-Import).
Für Eingänge, die den ursprünglichen Transportstrom empfangen, steht eine softwareseitige BISS-Entwürfelung zur Verfügung: Am Eingang wird ein BISS-1- oder BISS-E-Schlüssel hinterlegt, und der Stream wird vor der Analyse und der weiteren Verarbeitung entschlüsselt. Der Empfang verwürfelter Services von einem DVB-Empfänger (CAM, BISS auf Adapterebene) ist in DVB-Empfänger beschrieben.
Automatische PID-Anordnung¶
Standardmäßig werden die Identifikatoren der Elementarströme unverändert von der Quelle in den Ausgangsstream übernommen; beim Umschalten auf einen Reserveeingang ändert sich die PID-Anordnung am Ausgang daher zusammen mit der Quelle. Die automatische Anordnung vergibt die PIDs selbst, nach ein und derselben Regel für jeden Eingang: Der PID-Plan des Ausgangsstreams bleibt unverändert, unabhängig davon, welche Quelle gerade aktiv ist.
Der Modus steht nur für SPTS zur Verfügung und wird im Abschnitt „MPEG-TS“ des Reiters „MPEG-TS“ des Stream-Editors aktiviert:
- „Automatische PID-Anordnung“
Aktiviert den Modus.
- „Basis-PID“
Der erste PID des Fensters: von 32 bis 8127, Standardwert 32. Die untere Grenze legt das Fenster außerhalb des für die PSI/SI-Tabellen reservierten Bereichs, die obere hält das gesamte Fenster unterhalb des PIDs der Nullpakete.
Das Programm wird in ein Fenster aus 64 PIDs umnummeriert, das beim Basis-PID beginnt:
PID |
Zweck |
|---|---|
Basis |
PMT |
Basis + 1 |
Video |
danach |
Tonspuren |
danach |
die übrigen Elementarströme: Teletext, DVB-Untertitel, Daten, SCTE-35 |
danach |
PCR, sofern er nicht in einem der aufgeführten Ströme übertragen wird |
danach |
ECM: zuerst nach den Deskriptoren auf Programmebene, danach nach den Deskriptoren der einzelnen Ströme |
vom Ende des Fensters abwärts |
EMM |
Innerhalb jeder Gruppe bleibt die Reihenfolge der ursprünglichen PMT erhalten. Enthält das Programm kein Video, wird die Anordnung verdichtet: Unmittelbar nach der PMT folgt die erste Tonspur. Die EMM werden vom Ende des Fensters aus vergeben, da die CAT unabhängig von der PMT ausgewertet wird und früher eintreffen kann — ihre Adressen dürfen nicht von der Anzahl der Elementarströme abhängen.
Die Tabellen PAT, PMT und CAT werden für die neue Anordnung neu aufgebaut. SDT, NIT, EIT und TDT bleiben unverändert: Sie enthalten keine PID-Verweise.
Was beim Aktivieren des Modus zu beachten ist:
Der Modus erzwingt die MPEG-TS-Filterung, sodass PIDs, die nicht in PMT und CAT deklariert sind, nicht mehr nach außen gelangen. Ein Stream, der auf den Durchlauf undeklarierter PIDs angewiesen war, verliert diese.
Die manuelle PID-Neuzuordnung an den Eingängen ist wirkungslos und wird ignoriert; darüber wird eine Warnung ins Protokoll geschrieben. Die Weboberfläche blendet diese Felder aus, solange der Modus aktiv ist; die gespeicherten Paare gehen nicht verloren und kehren beim Deaktivieren zurück.
Die Annahme- und Ablehnungslisten für PIDs bleiben wirksam und werden vor der Umnummerierung angewendet: Einen Slot erhalten nur die verbliebenen Elementarströme, und im Fenster bleiben keine Lücken (MPEG-TS-Filterung).
Auf den Transkoder-Eingang (Transcoder) und den Eingang des Testgenerators (Teststreams) wirkt der Modus nicht: Dort erstellt der Encoder bzw. der Generator den PID-Plan, weshalb deren eigene PMT-PID-Felder verfügbar bleiben.
Passt das Programm nicht in das Fenster, findet überhaupt keine Umnummerierung statt — die Anordnung bleibt die ursprüngliche und eine Warnung geht ins Protokoll; ein halb umnummerierter Stream wird nicht ausgegeben.
Eine Änderung an einer der beiden Einstellungen wird im laufenden Betrieb übernommen: Der Stream selbst wird nicht neu gestartet, seine Ein- und Ausgänge werden jedoch neu aufgebaut — einige Sekunden für die Neusynchronisation.
In der Stream-Statistik zeigt der Block „Medieninformation — Quelle“ die am Eingang eingetroffenen PIDs, „Medieninformation — Ergebnis“ und die Bitratentabelle nach PID dagegen die vergebenen; bei aktiviertem Modus ist eine Abweichung zwischen beiden normal.
Die automatische PID-Anordnung hat nichts mit der PID-Vergabe im MPTS-Multiplexer (PID-Zuweisung) zu tun — das ist eine eigene Einstellung des muxer-Eingangs.
Bitratensteuerung¶
Der Modus der Bitratensteuerung wird über das Feld „Bitratenmodus“ im Reiter „MPEG-TS“ festgelegt (Werte wie in der Oberfläche):
- Original (Standard)
Der Stream wird unverändert durchgereicht; die PCR-Marken der Quelle werden nicht neu berechnet.
- VBR
Entfernt die NULL-Pakete der Quelle, wodurch die Bitrate minimiert wird. Geeignet, wenn der Stream ausschließlich für die OTT-Ausstrahlung oder den Transit verwendet wird. Die PCR-Marken werden dabei nicht neu berechnet, daher ist die PCR-Genauigkeit nach TR 101 290 am Ausgang nicht gewährleistet.
- CBR (auto stuffing)
Gleicht die Bitrate durch Einfügen von NULL-Paketen (stuffing) auf einen konstanten Wert an. Die Zielbitrate wird automatisch ermittelt: Sie wird einige Sekunden nach dem Einschalten festgelegt, bei anhaltender Überschreitung angehoben und schrittweise gesenkt, wenn die Spitze des Inhalts lange unterhalb des Ziels bleibt. Ein Wechsel des Ziels unterbricht die Ausgabe des Streams nicht.
- CBR (explicit stuffing)
Ebenso, jedoch wird die Zielbitrate explizit über das Feld „Stuffing-Bitrate (kbps)“ festgelegt. Legen Sie den Wert mit einer Reserve oberhalb der tatsächlichen Bitrate des Inhalts fest.
In den CBR-Modi werden die PCR-Marken anhand der tatsächlich übertragenen Bytes neu berechnet, daher erfüllt der Ausgang die Anforderungen von TR 101 290 an die PCR-Genauigkeit. Zusätzlich wird bei aktivem Stuffing am Ausgang die Wiederholrate der PCR auch bei langen Videoframes innerhalb der Norm gehalten. Der Analysator misst in diesem Fall genau den ausgegebenen, angeglichenen Stream (Analysator).
Wann CBR erforderlich ist. Jede Operation, die Pakete einfügt oder entfernt — die Tabellen- und PID-Filter, die Erzeugung von SDT und EIT, die Korrektur des PAT/PMT-Intervalls, der Wechsel der Programmnummer sowie der VBR-Modus selbst — verschiebt die Lage des Inhalts gegenüber seinen PCR-Marken. Wenn der Empfänger des Streams die Konformität mit TR 101 290 verlangt, zum Beispiel bei der DVB-Ausstrahlung, aktivieren Sie einen CBR-Modus: Das Stuffing maskiert diese Änderungen durch die Neuberechnung der PCR. Für einen Stream hinter dem Transcoder aktivieren Sie den CBR-Modus am empfangenden Stream (PCR und Bitrate des Ausgangsstreams).
Der aktuelle Zustand des Stuffings — die Zielbitrate und die Einfügerate der NULL-Pakete — wird in den Daten des aktiven Eingangs auf der Stream-Seite angezeigt (Streams, Abschnitt „Stuffing“; der Abschnitt ist nur sichtbar, solange das Stuffing aktiv ist).
Synchronisation¶
Der Synchronisierer gibt die Pakete im Takt der PCR-Marken der Quelle an die Ausgänge aus — gültige PCR sind daher für den Eingangsstream zwingend erforderlich. Zwischen Empfang und Ausgabe wird der Stream in einem Jitter-Puffer verzögert, der die Ungleichmäßigkeit des Paketeintreffens aus dem Netz ausgleicht.
Der Puffer wird für jeden Eingang separat konfiguriert (Eingangsfenster, Editor für Eingang und Ausgang; erweiterte Einstellungen, Bezeichnungen wie in der Oberfläche):
- Auto jitter buffer
Automatische Wahl der Verzögerung anhand des Eingangstyps: Für TCP- und HLS-Eingänge wird ein vergrößerter Puffer verwendet, für die übrigen der Standardpuffer. Standardmäßig aktiviert.
- Jitter buffer (ms)
Die manuell eingestellte Puffergröße, wenn der automatische Modus deaktiviert ist (standardmäßig 500 ms). Erhöhen Sie den Wert, wenn der Puffer in einem instabilen Netz regelmäßig leerläuft.
- PCR discontinuity window (ms)
Das Fenster des zulässigen PCR-Sprungs (standardmäßig 1000 ms). Ein Sprung über das Fenster hinaus gilt als Unterbrechung des Streams und löst eine harte Neusynchronisation aus.
Eine langsame Abweichung zwischen dem Takt der PCR der Quelle und der Uhr des Knotens beseitigt der Drift-Kompensator: Die Korrektur wird gleitend in Mikroverschiebungen angewendet, ohne harte Neusynchronisation und ohne Unterbrechung der Ausgabe. Die Steuerung befindet sich im Reiter „Analyse“ des Stream-Editors: „Kompensation der Synchronisationsdrift“ (standardmäßig aktiviert) und „Weiches Fenster der Synchronisationsdrift (ms)“ — die Totzone, innerhalb derer keine Korrektur angewendet wird (standardmäßig 500 ms). Die harte Neusynchronisation bleibt der Rückfallmechanismus für echte Unterbrechungen des Streams.