OTT und DVR¶
Das OTT-Subsystem liefert Streams über HTTP-basierte Protokolle aus: HLS (über MPEG-TS), MPEG-DASH und Low-Latency HLS (über CMAF — fragmentiertes MP4) sowie MPEG-TS over HTTP. HTTPS und HTTP/3 (QUIC) werden unterstützt. Die Auslieferung wird auf der Registerkarte „OTT“ des Stream-Editors (Stream konfigurieren) aktiviert und steht ausschließlich SPTS-Streams zur Verfügung; ein Programm eines Multiplex wird durch den Demultiplexer in einen SPTS-Stream ausgekoppelt (Demultiplexer).
DVR ist ein dauerhaftes Archiv des Streams auf der Festplatte. Es wird parallel zur OTT-Auslieferung geschrieben (ein separater Aufzeichnungsdienst ist nicht erforderlich) und über dieselben URLs wiedergegeben wie die Live-Ausstrahlung; unterschiedlich sind nur die Abfrageparameter (DVR: Archiv des Streams).
Eine Änderung der Einstellungen für OTT, DVR und Inhaltsschutz eines laufenden Streams startet nur die OTT-Auslieferung und die Archivaufzeichnung neu: Eingänge und Ausgänge des Streams (UDP, SRT und andere) arbeiten ohne Unterbrechung weiter, die Uptime des Streams wird nicht zurückgesetzt. Neue Segmente beginnen nach der Änderung wie bisher mit einem Keyframe. „Aufbewahrung (Stunden)“, „Geschützte Untergrenze (Stunden)“ und „LL-Part-Zieldauer (ms)“ werden im laufenden Betrieb übernommen, ohne Neustart. Einstellungen, die den Transportstrom selbst ändern (Dienstname, Programm, PID-Filter, PAT/PMT/PCR-Korrekturen, EPG-Quelle), starten Eingänge und Ausgänge des Streams weiterhin neu.
Auslieferungsmodi¶
Die progressive MPEG-TS-Auslieferung über HTTP wird mit der Einstellung „HTTP-Dienst“ (Wert Live) aktiviert: kontinuierliche Übertragung des ursprünglichen Transportstroms innerhalb einer einzigen HTTP-Antwort.
Die segmentierte Auslieferung wird über die Einstellung „HLS-Dienst“ gesteuert (Werte wie in der Oberfläche):
- Peering / HLS
Einfache Segmentierung. Der Modus ist für die Übertragung eines Streams zwischen Perfect-Streamer-Knoten vorgesehen: Der ausliefernde Knoten gibt HLS über MPEG-TS aus, der empfangende Knoten verbindet sich mit einem Eingang vom Typ HLS. WebVTT-Untertitel und DRM sind in diesem Modus nicht verfügbar, eine DVR-Aufzeichnung ist nicht konfigurierbar.
- OTT / HLS
Segmentierung, die auf einen schnellen Start der Player bei der OTT-Ausstrahlung optimiert ist (höhere CPU-Last). Ausgeliefert wird HLS über MPEG-TS; die GOP-Ausrichtung der Segmente ist wirksam (Segmentierer).
- OTT / LL-HLS / DASH
Auslieferung über CMAF: der Stream erzeugt fMP4-Segmente, auf deren Grundlage MPEG-DASH und Low-Latency HLS ausgeliefert werden. Bei aktivierter Einstellung „Veraltete MPEG-TS-HLS-Chunks“ (standardmäßig aktiviert) wird zusätzlich gewöhnliches HLS über MPEG-TS ausgeliefert; ihre Deaktivierung spart Speicherplatz und CPU. MPEG-DASH und Low-Latency HLS sind ausschließlich in diesem Modus verfügbar.
Low-Latency HLS zerlegt die Medienwiedergabeliste in Teilsegmente (Parts): Der Player beginnt die Wiedergabe, ohne ein vollständiges Segment abzuwarten; dabei kommen das blockierende Neuladen der Wiedergabeliste und der Preload-Hinweis zum Einsatz. Die Zieldauer eines Parts wird mit der Einstellung „Zieldauer des LL-Parts (ms)“ festgelegt (erweiterte Einstellung; standardmäßig 500 ms, wird im laufenden Betrieb übernommen und muss kleiner als das minimale Chunk-Intervall sein). Für eine präzise niedrige Latenz enthält das DASH-Manifest die Zuordnung der Medienzeit zu UTC, und die CMAF-Segmente führen Zeitstempel des Produzenten mit.
Bemerkung
Die CMAF-Verpackung überträgt ausschließlich Audiospuren in AAC und AC-3; Spuren in anderen Codecs werden verworfen, worüber ein Alarm ausgelöst wird (Benachrichtigungen (Alerter)).
Segmentierer¶
In den OTT-Modi wird der Stream anhand der PAT/PMT-Tabellen und der Keyframes analysiert, und die Segmente werden nach dem Kriterium eines schnellen Player-Starts geschnitten. Der Schnitt wird über die Einstellungen „Min. Chunk-Intervall (s)“ und „Max. Chunk-Intervall (s)“ gesteuert: Die Analyse beginnt beim minimalen Intervall, und wird kein Schnittpunkt gefunden, so wird das Segment beim maximalen Intervall zwangsweise abgeschlossen.
„GOP-ausgerichtete Segmente“ (standardmäßig aktiviert; wirksam im Modus OTT / HLS) — der Segmentierer richtet die Segmentgrenzen an den Random-Access-Punkten aus und unterscheidet zwischen einem IDR- und einem gewöhnlichen I-Frame. Bei Quellen mit Closed-GOP beginnt jedes Segment garantiert mit SPS/PPS/IDR — einem vollständigen Einstiegspunkt; der „Rest“ des vorangehenden GOP wird abgeschnitten. Damit entfällt das Schwarzbild zu Beginn von VOD-Sitzungen, und die Auslieferung entspricht den Anforderungen von HLS (RFC 8216). Der Typ der GOP-Struktur der Quelle ist an den Metriken des Analysators ablesbar (Vertiefte Analysen). Wegen der Ausrichtung kann die tatsächliche Segmentdauer das minimale Intervall überschreiten; die in der Wiedergabeliste angegebene Zieldauer gibt das tatsächliche Maximum wieder.
URLs und Autorisierung¶
Die Auslieferung wird vom Streaming-HTTP-Server des Knotens bedient (Streaming-HTTP-Server). Eine URL wird nach folgendem Schema gebildet:
http://host:port/hls/<Stream>/<Login>/<Passwort>/index.m3u8
http://host:port/hls/<Stream>/<Login> — Autorisierung per Token
http://host:port/hls/<Stream>/ — Autorisierung per IP
Anstelle von /hls/ wird /dash/, /llhls/ oder /http/ eingesetzt; für adaptive Bundles — /hls/adaptive/ und entsprechende (Adaptive Bundles). <Stream> ist die Kennung des Streams oder der Name, der mit der Einstellung „Stream-Name in der URL“ festgelegt wurde. Unautorisierter Zugriff ist untersagt: Logins und Berechtigungen der Clients werden in der Weboberfläche konfiguriert (Benutzer / Logins).
Fertige URL-Vorlagen mit den aktuell aktivierten Auslieferungsmodi werden im Statistikfenster des Streams angezeigt — Abschnitt „Auslieferungs-URLs“ mit Schaltfläche zum Kopieren (Stream-Statistik). Aktive Client-Sitzungen sind auf dem Bildschirm „Clients“ sichtbar (Clients).
HTTP/3 (QUIC)¶
Der Streaming-HTTP-Server kann die OTT-Routen (HLS, DASH, LL-HLS, MPEG-TS over HTTP) über QUIC ausliefern. HTTP/3 wird in den Einstellungen des Streaming-HTTP-Servers aktiviert (Streaming-HTTP-Server); es wird dasselbe Zertifikat wie für HTTPS verwendet, HTTPS selbst muss jedoch nicht aktiviert sein — QUIC lauscht getrennt und liest die Zertifikatsdateien direkt. Genau diese werden benötigt: Ohne Zertifikat und Schlüssel startet der HTTP/3-Listener nicht.
Browser-Clients wechseln über die standardmäßige Alt-Svc-Ankündigung zu QUIC: Die Ankündigung wird auf ausdrückliche Anforderung des Clients ausgegeben, mit dem Parameter ?h3 an der Master-URL. Kommt die QUIC-Verbindung nicht zustande (geschlossener UDP-Port, nicht vertrauenswürdiges Zertifikat), verbleibt der Client auf HTTPS, und die Ausstrahlung wird nicht unterbrochen. Administrative Anfragen werden ausschließlich über TCP bedient. Low-Latency HLS und DASH über QUIC werden inkrementell ausgeliefert — die Parts gehen an den Client, sobald sie bereitstehen.
WebVTT-Untertitel¶
Die Einstellung „Teletext-Untertitel in WebVTT“ (standardmäßig aktiviert, wirksam in den OTT-Modi) wandelt die Untertitel DVB Teletext / DVB Subtitling des Eingangsstreams in WebVTT-Spuren um: Der HLS-Master-Wiedergabeliste wird eine Untertitelspur hinzugefügt, dem DASH-Manifest ein Text-Adaptationset. Das Vorhandensein von Untertiteln in der Quelle ist in den Medieninformationen im Statistikfenster ersichtlich. Die Untertitel werden parallel zu den Mediensegmenten im DVR archiviert und stehen bei der Archivwiedergabe zur Verfügung; durch DRM werden sie nicht verschlüsselt. Zur Diagnose dient die Einstellung „Untertitelmeldungen protokollieren“ (erweiterte Einstellung).
Adaptive Bundles¶
Ein adaptives Bundle fasst mehrere OTT-Streams desselben Kanals mit unterschiedlichen Bitraten unter einer einzigen HLS-Master-Wiedergabeliste oder einem DASH-Manifest zusammen — der Player wechselt selbsttätig zwischen den Varianten entsprechend der verfügbaren Bandbreite.
Ein Bundle wird als Stream vom Typ „Adaptiv“ angelegt (Neuer Stream, Bundle-Editor — Adaptives Bundle). Die Teilnehmer sind SPTS-Streams mit aktiviertem OTT-Modus: OTT / HLS für adaptives HLS über MPEG-TS, OTT / LL-HLS / DASH für adaptives DASH und Low-Latency HLS. Für jeden Teilnehmer lässt sich die Bitrate manuell festlegen; beim Wert 0 wird die gemessene Bitrate übernommen.
Die Master-URLs des Bundles werden nach den Schemata /hls/adaptive/, /dash/adaptive/, /llhls/adaptive/ mit denselben Autorisierungsvarianten gebildet. Ein einem Client für ein adaptives Bundle gewährter Zugriff erstreckt sich automatisch auf alle darin enthaltenen Streams.
Inhaltsschutz (DRM)¶
Die OTT-Auslieferung eines Streams kann verschlüsselt werden. Verschlüsselt wird einmal, beim Erzeugen des Segments: Die Live-Auslieferung und das DVR-Archiv erhalten dieselben verschlüsselten Daten; das Archiv wird in verschlüsselter Form auf der Festplatte gespeichert. Die Einstellungen sind im Abschnitt „Inhaltsschutz“ der Registerkarte „OTT“ zusammengefasst; die Übernahme einer beliebigen davon startet die OTT-Auslieferung des Streams neu, seine Eingänge und Ausgänge arbeiten dabei ohne Unterbrechung weiter (OTT und DVR).
Modi (Feld „DRM“, Werte wie in der Oberfläche):
HLS AES-128Vollständige Verschlüsselung der gesamten TS-Segmente; die Entschlüsselung übernimmt jeder standardkonforme HLS-Player. Erfordert „HLS-Dienst“ = OTT / HLS.
CENC cenc (DASH),CENC cbcs (DASH)Frameweise Verschlüsselung nach MPEG Common Encryption (ISO/IEC 23001-7) — Schema cenc (AES-CTR) oder cbcs (musterbasiertes AES-CBC, Ökosystem Apple FairPlay). Sie erfordern den Modus OTT / LL-HLS / DASH mit deaktivierter Auslieferung der TS-Chunks; die Auslieferung erfolgt ausschließlich über MPEG-DASH.
Jeder Schutzmodus erfordert einen deaktivierten „HTTP-Dienst“ — die progressive Auslieferung umgeht die Verschlüsselung. Eine unverträgliche Kombination von Einstellungen weist der Server unter Angabe des Grundes zurück.
Schlüssel und Schlüsselzustellung:
„Inhaltsschlüssel (32 hex)“ ist der Verschlüsselungsschlüssel (für statisches AES-128 und für CENC). „Schlüssel-ID (CENC KID)“ ist die Kennung des CENC-Schlüssels; bei leerem Feld wird die Kennung deterministisch aus der Kennung des Streams abgeleitet.
„Schlüsselzustellung“ (AES-128, Werte wie in der Oberfläche): Built-in (PSS serves the key) — der Server gibt den Schlüssel selbst über eine Sitzungs-URL mit derselben Autorisierung wie die Segmente aus; External key server — das Schlüssel-Tag in der Wiedergabeliste verweist auf „Schlüssel-URI (EXT-X-KEY)“, die integrierte Zustellung wird abgeschaltet. Bei CENC gibt der Server den Playern keine Schlüssel aus: Die Schlüssel stellt die DRM-Infrastruktur zu (Lizenzserver).
Schlüsselrotation (nur AES-128): „Schlüsselquelle“ = Derived (rotating), „Rotationsgeheimnis“ (mindestens 16 Zeichen) und „Schlüsselfenster (Minuten)“. Der Schlüssel jedes Fensters wird mit einer Einwegfunktion aus dem Geheimnis berechnet; das DVR-Archiv lässt sich über beliebig viele Rotationen hinweg wiedergeben — die Fensternummer wird aus dem Aufzeichnungszeitpunkt des Segments rekonstruiert.
Warnung
Eine Änderung der Verschlüsselungsparameter eines Streams (des Inhaltsschlüssels, des Geheimnisses oder der Rotationseinstellungen) macht ein zuvor aufgezeichnetes verschlüsseltes Archiv unlesbar; die Weboberfläche verlangt eine Bestätigung solcher Änderungen. Die Schlüssel werden in der Serverkonfiguration im Klartext gespeichert — beschränken Sie den Zugriff auf die Konfigurationsdateien und die Sicherungskopien.
Warnung
DASH: Ein Wechsel des Schemas macht das Archiv unlesbar. Das DVR-Manifest in MPEG-DASH verweist für das gesamte Archiv auf ein einziges Initialisierungssegment, und dieses Segment wird immer im aktuellen Zustand des Streams ausgeliefert. Wird auf einem Stream mit Archiv der Modus „DRM“ gewechselt (zum Beispiel CENC cbcs (DASH) auf CENC cenc (DASH)), kann der Player den vor dem Wechsel aufgezeichneten Teil des Archivs nicht entschlüsseln; wiedergegeben wird nur, was danach aufgezeichnet wurde. Aus demselben Grund lässt sich der zuvor aufgezeichnete Teil des Archivs über DASH nicht mehr wiedergeben, wenn sich bei der Quelle Codec oder Auflösung ändern. Wechseln Sie das Schutzschema auf einem Stream, dessen Archiv Sie nicht mehr benötigen, oder löschen Sie das Archiv des Streams direkt nach dem Wechsel (Stream-Statistik) — es wird dann neu aufgebaut.
DVR: Archiv des Streams¶
Die Aufzeichnung wird auf der Registerkarte „OTT“ im Abschnitt „DVR“ aktiviert (sichtbar in den OTT-Modi):
- „DVR-Speicher“
Der Speicher, in den das Archiv geschrieben wird (DVR-Speicher). Der Wert „Keiner“ bedeutet, dass die Aufzeichnung deaktiviert ist.
- „Aufbewahrung (Stunden)“
Archivtiefe des Streams, von 1 Stunde bis 90 Tage. Ältere Segmente werden durch die reguläre Bereinigung entfernt.
- „Geschütztes Minimum (Stunden)“
Untere Schutzschwelle: Die Bereinigung entfernt niemals Aufzeichnungen, die jünger als dieser Wert sind, auch nicht bei knappem Speicherplatz auf der Festplatte.
Die Aufzeichnung beginnt automatisch, sobald der Stream in den Betriebszustand übergeht. Das Lösen der Bindung an den Speicher hält die Aufzeichnung an (die Dateien verbleiben auf der Festplatte, die Archivwiedergabe wird beendet); bei einem Wechsel des Speichers beginnt die Aufzeichnung von Neuem, die Dateien werden nicht übertragen. Destruktive Änderungen bestätigt die Weboberfläche mit dem Dialog „DVR-Änderungen bestätigen“.
DVR-Speicher¶
Die Speicher werden auf dem Bildschirm „DVR-Speicher“ konfiguriert (DVR-Speicher). Für jeden werden der Pfad zum Verzeichnis (in der Oberfläche nach dem Anlegen unveränderlich; ohne abschließendes / geschrieben), die Grenze der Festplattenbelegung in Prozent und in den erweiterten Einstellungen das Bereinigungsintervall, die Karenzzeit und die Abschneideportion bei Überfüllung sowie die Hysterese festgelegt. Das Feld „Notfall-Freispeicher, GiB“ ist reserviert: Der Wert wird gespeichert, wirkt sich aber nicht auf den Betrieb aus — ein Anhalten der Aufzeichnung wegen des freien Speicherplatzes gibt es nicht, die Bereinigung nach Speicherplatz hält die Festplatte innerhalb der Grenze. Pro Festplatte wird ein Speicher empfohlen: Mehrere Speicher auf einer gemeinsamen Festplatte konkurrieren um den freien Speicherplatz. Das Entfernen eines Speichers aus der Konfiguration löscht die Dateien nicht von der Festplatte.
Die Archivbereinigung arbeitet auf mehreren Ebenen:
nach Tiefe — Segmente, die älter als der Wert „Aufbewahrung (Stunden)“ des jeweiligen Streams sind;
nach Speicherplatz — bei anhaltender Überschreitung der Grenze der Festplattenbelegung werden die ältesten Segmente anteilig über alle Streams hinweg entfernt, jedoch keine, die jünger als das geschützte Minimum sind; die Bereinigung erfasst sowohl das TS-Archiv als auch das MP4-Archiv (DASH und LL-HLS);
die Bereinigung verwaister Dateien innerhalb der Archive aufgezeichneter Streams erfolgt automatisch; Archivverzeichnisse, die von gelöschten Streams zurückgeblieben sind, werden ausschließlich manuell entfernt — mit der Schaltfläche „Verwaiste Archive bereinigen“ auf dem Bildschirm „DVR-Monitor“ (DVR-Monitor).
Reicht der Platz auch nach der Bereinigung nicht, weil das gesamte Archiv jünger als das geschützte Minimum ist, werden keine neuen Segmente geschrieben; das bereits aufgezeichnete Archiv bleibt erhalten. Nach mehreren fehlgeschlagenen Schreibvorgängen in Folge (standardmäßig drei) wird ein Alarm mit dem Code 29 ausgelöst (Katalog der Alarmcodes); er wird beim nächsten erfolgreichen Schreiben aufgehoben.
Ist ein einzelner Eintrag des Archivindex beschädigt (zum Beispiel nach einem Stromausfall), wird er beim Start übersprungen und das übrige Archiv geladen; verloren geht nur dieses Fragment, und das Protokoll des Dienstes meldet N damaged record(s) skipped.
Der Zustand der Speicher und der aufgezeichneten Streams (Füllstand, Archivgröße, Schreib- und Leselatenzen, aktive Bereinigungsaufgaben) wird auf demselben Bildschirm „DVR-Monitor“ angezeigt. Das Archiv eines einzelnen Streams lässt sich mit der Schaltfläche „DVR-Archiv löschen“ im Statistikfenster des Streams unwiderruflich entfernen; die Aufzeichnung wird dabei fortgesetzt.
Archivwiedergabe (VOD)¶
Das Archiv wird über dieselben URLs wiedergegeben wie die Live-Ausstrahlung HLS / DASH; unterschiedlich sind nur die Abfrageparameter:
t=<Zeit>Beginn des VOD-Fensters (Unix-Zeit, Sekunden).
t=0— ab dem Anfang des Archivs. Das Vorhandensein des Parameterstaktiviert den VOD-Modus.d=<Sekunden>Dauer des VOD-Fensters. Ohne den Parameter (oder mit
d=0) — bis zum aktuellen Zeitpunkt. Wirksam nur zusammen mitt.epg=<Zeit>VOD nach dem Programmführer: Der Server ermittelt das zum angegebenen Zeitpunkt aktive EPG-Ereignis und übernimmt dessen Beginn und Dauer als Fenstergrenzen. Erfordert die Bindung des Streams an eine EPG-Quelle — die Felder „EPG-Quelle“ und „EPG-Kanal“ auf der Registerkarte „Stream“ (Modifikation des Streams, EIT-Generator); die Parameter
tunddwerden dabei ignoriert. Für einen Programmkatalog genügt der Oberfläche die Zeit des Ereignisses — die genauen Grenzen berechnet der Server.
Besonderheiten der Wiedergabe:
Die Fenstergrenzen werden normalisiert: Eine Anfrage vor dem Anfang des Archivs wird auf das erste verfügbare Segment nachgezogen; ein vollständig außerhalb des Archivs liegendes Fenster liefert eine leere, aber gültige Wiedergabeliste.
Die HLS-Wiedergabeliste für VOD ist geschlossen (mit Abschlusskennzeichen); das DASH-Manifest ist statisch. Aufzeichnungslücken werden in DASH als eigene Perioden abgebildet — die Player spulen ohne besondere Einstellungen über die Grenze hinweg.
Erreicht ein Client die rechte Grenze des Fensters, so werden die fehlenden Segmente aus dem Live-Speicher des Streams ausgeliefert — ohne Umleitungen und ohne erneute Autorisierung.
Eine offene VOD-Sitzung schützt ihr Fenster bis zum Schließen der Sitzung vor der regulären Bereinigung; das geschützte Minimum hat Vorrang vor ihr.
WebVTT-Untertitel werden auch aus dem Archiv wiedergegeben (WebVTT-Untertitel).
Adaptive Bundles unterstützen dieselben VOD-Parameter. In das DASH-Manifest gelangen nur die Varianten mit angebundenem DVR-Speicher; in die HLS-Master-Wiedergabeliste gehen alle Varianten ein, doch Varianten ohne Archiv beantworten eine Archivanfrage mit einem Fehler, und der Player überspringt sie.