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 Multiplex-Programm 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 wird über dieselben URLs wiedergegeben wie die Live-Ausstrahlung; unterschiedlich sind nur die Abfrageparameter (DVR: Archiv des Streams).
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 transparent auf HTTPS — 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 Eingangsstroms 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. Die Verschlüsselung erfolgt einmalig, im Moment der Segmentbildung: 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.
Modi (Feld „DRM“, Werte wie in der Oberfläche):
- HLS AES-128
Vollstä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üsselzustellung übernimmt die DRM-Infrastruktur (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
Ein Wechsel der „Schlüsselidentität“ 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.
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 (nach dem Anlegen unveränderlich), die Grenze der Festplattenbelegung in Prozent und — in den erweiterten Einstellungen — das Bereinigungsintervall, die Karenzzeit und die Abschneideportion bei Überfüllung, die Notfallreserve an Speicherplatz sowie die Hysterese festgelegt. 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;
Notfallbereinigung — bei kritischem Speicherplatzmangel wird die Aufzeichnung angehalten, bis wieder freier Speicherplatz verfügbar ist;
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).
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; die Notfallbereinigung und das geschützte Minimum haben Vorrang.
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.