Versionsverlauf

Version 2.0.2.362 Beta

06.09.2026

  • Menü des CI-Moduls — das eigene Menü des Moduls wird ausgelesen: Kartenstatus, Abonnements, Seriennummer, PIN-Eingabe und Servicepunkte sind direkt vom Hardware-Bildschirm aus verfügbar — dasselbe, was das Modul auf dem Fernsehbildschirm zeigen würde. Ebenda kam der Modulausweis hinzu — Hersteller, Produktcode und EN-50221-Anwendungstyp —, und den Modulnamen dekodiert der Knoten, sodass kyrillische Namen nicht mehr verstümmelt ankommen (Modulmenü).

  • Entschlüsselung durch ein eigenständiges CI-Modul — ein Modul in einem eigenständigen Kartenleser bedient jeden Eingang eines Streams und nicht nur den Empfang von einer DVB-Karte: Der gesamte Transport des Eingangs läuft durch es hindurch, während die Programmliste lediglich angibt, welche davon zu entschlüsseln sind. Der Slot wird am Eingang selbst zugewiesen, und ebendort ist zu sehen, welcher Eingang ihn belegt (CI/CAM am Eingang eines Streams).

  • Mehrere CI-Slots an einem Eingang — ein Multiplex wird nacheinander durch mehrere Module geführt, mit einem eigenen Programmsatz je Slot. Die Taktfrequenz des CI-Busses wird anhand der tatsächlichen Bitrate des Eingangs gewählt, und ein belegt gebliebener Slot wird auf Anforderung vom Hardware-Bildschirm aus freigegeben.

  • Diensttabellen beim Demultiplexen — die Netz- und Zeittabellen sowie die übrigen Dienst-PIDs des Ursprungsmultiplex gehorchen nun denselben Schlüsseln mpegts-filter-nit, mpegts-filter-tdt, mpegts-filter-unnecessary und mpegts-filter-cat wie auf den übrigen Pfaden, statt bedingungslos verworfen zu werden. Der Standardwert hat sich damit geändert: Ein aus einem Multiplex herausgelöster Stream führt die Netz- und Zeittabellen, die er zuvor nicht führte — ein Empfänger hinter einem solchen Stream, und ein CI-Modul in erster Linie, erwartet sie zu sehen. Das frühere Verhalten stellt mpegts-filter-nit wieder her.

  • Eine PCR-Diskontinuität leert den Jitterpuffer nicht mehr — ein Eingang, der einen PCR-Sprung nach vorn aufgefangen hat, versetzt den Synchronisationspunkt im laufenden Betrieb, ohne die Warteschlange abzulassen; die Diskontinuität kostet daher ein einziges Stocken statt eines erneuten Auffüllens des Puffers. Das Fenster, jenseits dessen ein Sprung als Diskontinuität gilt, wird automatisch gewählt (Synchronisation).

  • Schneller Start eines HLS-Eingangs — eine Live-Playlist wird am Ende aufgegriffen: In die Warteschlange gelangen nur die letzten Segmente, die für den eingestellten Jitter nötig sind, und nicht das ganze Fenster; der Eingang geht daher mit einer Verzögerung von einigen Segmenten statt eines vollständigen Playlist-Fensters auf Sendung. Eine abgeschlossene Playlist (VOD) wird nach wie vor von Anfang an wiedergegeben.

  • Unterdrückung von Alert-Flattern — ein Alert, der immer wieder ausgelöst und behoben wird, wird zu einem einzigen Vorfall zusammengefasst: Der Knoten hält ihn über die Ruhephase hinweg und schließt ihn erst, wenn das Flattern tatsächlich aufgehört hat. Ein Sturm von Wiederholungen verbreitet sich weder über das Protokoll noch über die externen Kanäle. Eine einmal erkannte flatternde Quelle bleibt auch nach der Ruhephase als solche erkannt: Ihre nächste Serie wird schon ab der ersten Wiederholung gehalten.

  • Bearbeiten eines EPG-Kanals — für einen Kanal werden die XMLTV-Kennung getrennt vom Anzeigenamen sowie Bezeichnungen je Sprache festgelegt, und ein nicht mehr benötigter Kanal wird vollständig gelöscht: Mit ihm verschwinden seine Bezeichnungen, seine Ereignisse und seine Zugehörigkeit zu Sätzen.

  • Weitere Verbesserungen und Fehlerbehebungen.

Version 2.0.2.335 Beta

27.08.2026

  • Meshwork (Multi-Domain) — mehrere Server werden zu benannten Domains zusammengeschlossen, und die Domain dient als Isolationsgrenze: die Mitgliedschaft der Knoten, der Ressourcenkatalog und die Alerts verbreiten sich nur innerhalb der eigenen Domain, zwischen den Domains wird nichts übertragen. Ein Knoten kann gleichzeitig mehreren Domains angehören, ohne deren Daten zu vermischen. Ausführlich — Meshwork.

  • Automatische Knotenerkennung — es genügt, die Domain und einen einzigen Einstiegspunkt anzugeben: die Knoten tauschen Nachbarlisten aus und bauen selbstständig ein vollvermaschtes Netz direkter Verbindungen auf. Der gemeinsame Domain-Schlüssel wird automatisch erzeugt und ausschließlich über einen geschützten Kanal übertragen — TLS oder ein vertrauenswürdiges Segment des lokalen Netzes.

  • Verteilte Ressourcenbibliothek — die Ausgänge UDP, RTP, Pro-MPEG und RIST, die Multicast-Eingänge UDP, RTP und RIST sowie die PS1- und SRT-Verbindungen werden im gemeinsamen Katalog der Domain (/data/library) veröffentlicht: eine einheitliche Liste der Multicast-Gruppen, Ports, VLANs, SSM-Quellen und Punkt-zu-Punkt-Verbindungen mit Angabe von Knoten und Stream. Am Katalog ist ersichtlich, welche Adressen und Ports bereits belegt sind, und ein neuer Eingang wird direkt daraus angebunden — durch Auswahl eines Streams, der auf einem anderen Knoten der Domain bereits ausgeliefert wird, ohne die Adresse manuell einzugeben.

  • Übersicht der Domain-Knoten — zu jedem Knoten werden Status, Zeitpunkt des letzten Kontakts, Rolle, Region, Build-Version, Betriebszeit seit dem Start, CPU-Auslastung, Datenverkehr je physischer Schnittstelle und die Anzahl der Streams auf Sendung angezeigt, zu jeder Verbindung zwischen Knoten über PS1 oder SRT — Bitrate, RTT, Anteil der Wiederholungen und Verluste sowie ein Urteil über den Zustand. Ein ausgefallener Knoten verschwindet nicht aus der Liste: er bleibt dort sieben Tage lang als nicht erreichbar samt seinem Alert stehen, ein außer Betrieb genommener wird mit einem eigenen Befehl aus der Übersicht entfernt.

  • Betrieb hinter NAT — ein Knoten hinter NAT nimmt vollwertig und ohne Weiterleitung eingehender Ports an der Domain teil: er baut die Verbindung selbst auf, sein öffentlicher Zugangspunkt wird aus der tatsächlich sichtbaren Adresse und dem angekündigten Port abgeleitet, und seinen Zustand geben die Nachbarn einen Hop weiter — der Knoten ist auch für diejenigen sichtbar, die ihn nicht direkt erreichen können.

  • Knotenname aus dem Zertifikat — ein Knoten ohne konfigurierten Hostnamen kündigt den Peers den Namen an, den sein eigenes Zertifikat abdeckt, und erst nachdem dieser Name wieder auf ihn aufgelöst wird; das Prüfergebnis ist in den Serverdaten als cert-host und cert-host-refused sichtbar.

  • Automatische Anmeldung der Verbindungen innerhalb der Domain — für PS1- und SRT-Verbindungen zwischen Knoten derselben Domain müssen nicht für jede Verbindung Benutzername und Passwort angelegt werden: auf der rufenden Seite (PS1-Eingang, SRT-Eingang, SRT-Ausgang im caller-Modus) genügt es, die Einstellung „Meshwork peer auth“ zu aktivieren, und die Autorisierung erfolgt über das gemeinsame Domain-Geheimnis. Der bestätigte Partnerknoten und dessen Stream sind in der Ressourcenbibliothek und in der Sitzungsliste sichtbar.

  • Low-Latency HLS und MPEG-DASH über CMAF — der neue Auslieferungsmodus „OTT / LL-HLS / DASH“: der integrierte Multiplexer erzeugt fragmentiertes MP4 (CMAF), über das MPEG-DASH unter /dash und Low-Latency HLS unter /llhls ausgeliefert werden; adaptive Bundles werden auch für diese Formate zusammengestellt. Ausführlich — Auslieferungsmodi.

  • Geringe Latenz bei LL-HLS — die Medien-Wiedergabeliste wird in Teile zerlegt, das blockierende Neuladen der Wiedergabeliste und der Preload-Hinweis werden eingesetzt, sodass der Player mit der Wiedergabe beginnt, ohne die Fertigstellung eines vollständigen Segments abzuwarten. Die CMAF-Segmente führen Producer Reference Time mit, das DASH-Manifest kündigt UTCTiming und die Ziellatenz an, und die Einstellung „LL-Part-Zieldauer (ms)“ wird im laufenden Betrieb wirksam, ohne den Stream neu zu starten.

  • HTTP/3 (QUIC) — HLS, MPEG-DASH, LL-HLS und MPEG-TS over HTTP werden über QUIC auf einem eigenen UDP-Port ausgeliefert, mit optionalem 0-RTT; den Wechsel zu QUIC fordert der Client mit dem Parameter ?h3 an. QUIC funktioniert nur über TLS: bei ausgeschaltetem TLS wird der Listener nicht gestartet und dem Client nicht angeboten, und der tatsächliche Zustand des Listeners ist in den Daten des HTTP-Servers sichtbar, nicht nur in der Einstellung. Die administrativen Routen bleiben ausschließlich auf TCP.

  • Segmentausrichtung an IDR — der Segmentierer unterscheidet ein IDR- von einem gewöhnlichen I-Frame: bei Quellen mit closed-GOP beginnt jedes Segment mit einem vollwertigen Einstiegspunkt, sodass der Player den Stream an jedem beliebigen Segment öffnet; bei Quellen mit open-GOP dient das nächstgelegene I-Frame als Grenze.

  • Inhaltsschutz (DRM) — die OTT-Auslieferung eines Streams kann verschlüsselt werden: HLS AES-128 mit einem Schlüssel vom Server selbst oder von einem externen Key-Server und mit optionaler Rotation nach Zeitfenstern, oder MPEG Common Encryption (ISO/IEC 23001-7) nach den Schemata cenc und cbcs für CMAF und DASH. Die Verschlüsselung erfolgt einmalig, im Moment der Segmentbildung, daher wird das DVR-Archiv verschlüsselt gespeichert und übersteht beliebig viele Schlüsselrotationen. Ausführlich — Inhaltsschutz (DRM).

  • Jede MPEG-TS-over-HTTP-Verbindung ist eine eigene Sitzung — die Clientliste des Streams enthält nun eine Zeile je Verbindung mit eigener sess-id, die Einzelheiten stehen unter /data/stream/http-clients/<sess-id>, eine einzelne Verbindung wird mit POST /data/kick?sess-id=<id> geschlossen, und die Grenze max-conn wird auch bei Werten über eins eingehalten.

  • DVR (Netzwerkarchiv) — jeder OTT-Kanal wird parallel zur Auslieferung auf die Festplatte geschrieben, mit derselben Segmentierung und ohne separaten Rekorder; im Modus geringer Latenz wird das Archiv in zwei Linien geführt, MPEG-TS und CMAF, sodass die Aufzeichnung im selben Container wie die Live-Ausstrahlung verfügbar ist. Ausführlich — DVR.

  • Archivwiedergabe (VOD) — das Archiv wird über dieselben HLS-, DASH- und LL-HLS-URL ausgeliefert wie die Live-Ausstrahlung: t=<Zeit> schaltet den VOD-Modus ein und legt den Beginn des Fensters fest, d=<Sekunden> dessen Dauer. Die HLS-Wiedergabeliste ist dabei geschlossen, das DASH-Manifest statisch, Aufzeichnungslücken werden als separate Perioden ausgewiesen; adaptive Bundles geben das Archiv mit denselben Parametern wieder.

  • Catch-up über EPG — statt t und d genügt es, epg=<Zeit> zu übergeben: der Server findet auf dem verknüpften EPG-Kanal selbst die zu diesem Zeitpunkt laufende Sendung und übernimmt deren Beginn und Dauer als Grenzen des Wiedergabefensters.

  • Untertitel im Archiv — WebVTT-Spuren werden zusammen mit den Segmenten auf die Festplatte geschrieben und in VOD über dieselben URL wiedergegeben; Fenster ohne Untertitelzeilen belegen keinen Speicherplatz auf der Festplatte.

  • DVR-Speicher — es kann mehrere Speicher geben, jeder mit einer eigenen Füllgrenze und einer eigenen Bereinigungsreihenfolge. Die Archivtiefe („Aufbewahrung (Stunden)“, bis zu 90 Tage) und das geschützte Minimum werden für jeden Stream separat festgelegt, und die Bereinigung nach freiem Speicherplatz rührt weder das geschützte Minimum noch die Fenster offener VOD-Sitzungen an.

  • DVR-Monitor — ein separater Bildschirm zeigt Zustand und Füllung der Speicher, Umfang und Tiefe des Archivs je Stream sowie die Lese- und Schreiblatenzen, und das Abdeckungshistogramm (/data/dvrstat) markiert nicht nur die Lücken im Archiv, sondern auch deren Ursache — Abriss des Eingangs, PMT-Wechsel, Verwürfelung, Auslösen der Bereinigung. Von hier aus werden auch das Archiv eines einzelnen Streams und die Verzeichnisse gelöschter Streams entfernt.

  • Ein Plattenfehler im Archiv hält den Knoten nicht mehr an — ein Fehler bei der Bedienung des DVR-Archivs bleibt auf den Speicher und den Schritt beschränkt, in dem er auftrat: die übrigen Streams und die übrigen Aufzeichnungslinien laufen weiter, und das betroffene Archiv wird als wiederaufbaubedürftig markiert.

  • Alerter — der neue Benachrichtigungsdienst: jede Störung wird zu einem Vorfall, der automatisch ausgelöst, aktualisiert und behoben wird, und der deduplizierte aktive Satz zeigt nur das, was gerade geschieht. Der Schweregrad wird über eine einheitliche Skala festgelegt — von rein informativ bis hin zu „erfordert einen Administrator-Eingriff“; ein solcher Vorfall wird durch die Bestätigung des Bedieners behoben. Ausführlich — Benachrichtigungen (Alerter).

  • Katalog der Alert-Codes — mehr als fünfzig Vorfalltypen in einer einzigen Liste: Streams samt ihren Eingängen und Ausgängen, Verstöße gegen TR 101 290, Ressourcen des Knotens, DVR-Speicher und Zustand der Aufnahme, DVB- und CI/CAM-Empfang, Transcoder, OTT, Zertifikate und Knoten der Domain. Die Auslöseschwellen werden im Benachrichtigungsbereich konfiguriert.

  • Externe Zustellung von Benachrichtigungen — die Alerts verlassen die Web-Konsole: per E-Mail über SMTP (STARTTLS, implicit TLS, AUTH), per Nachricht an Telegram und durch den Start eines beliebigen Befehls, dem der Vorfall über Umgebungsvariablen und als vollständiges JSON auf der Standardeingabe übergeben wird. Jeder Kanal hat einen eigenen Schalter und einen eigenen Schweregrad-Schwellenwert.

  • Alerts der gesamten Domain — der Diensthabende sieht die Alerts jedes Knotens von jedem anderen aus: der aktive Satz wird zusammen mit dem Keep-alive repliziert und wird sofort behoben, sobald er an der Quelle verschwunden ist, und in jeder Zeile ist der Ursprungsknoten angegeben. Hardware- und System-Alerts bleiben standardmäßig lokal und werden über eine separate Einstellung auf die Domänenebene angehoben.

  • Protokoll in der Datenbank — die Meldungen des Dienstes werden in SQLite geschrieben: typisierte Einträge mit Quelle und Schweregrad, Zusammenfassung aufeinanderfolgender Wiederholungen zu einer Zeile mit Zähler, Begrenzung der Aufbewahrung nach Dauer und nach Umfang. Im Unterschied zum aktiven Alert-Satz übersteht das Protokoll einen Neustart.

  • Zentraler Schalter für Benachrichtigungen — ist enable in den Einstellungen des Alerters ausgeschaltet, löst der Knoten keine eigenen Alerts aus und versendet nach außen überhaupt nichts, auch nicht die von Peers der Domain erhaltenen Alerts; in der Liste und im Ereignisstrom bleiben nur die über die Domain verteilten Alerts der Peers.

  • Die Schwere eines E/A-Alerts richtet sich nach den Folgen — ein Eingang, der ausfällt, während er den Stream nicht trägt, erhält die Stufe Error, ein tragender Eingang, jeder Ausgang und ein Ausfall ohne Sendung die Stufe Critical; die Bewertung wird neu berechnet, solange der Alert offen ist, und folgt der Umschaltung auf die Reserve.

  • Farbe in externen Benachrichtigungen — dem Meldungstext wurde eine Farbmarkierung der Stufe hinzugefügt (rot für Fehler, gelb für Warnungen, grün für die Entwarnung, blau für Informationen), und die E-Mail geht in zwei Varianten zugleich hinaus: als reiner Text und als HTML mit farbigem Balken.

  • Telegram-Benachrichtigungen überstehen einen Sturm — die aufgelaufenen Alerts werden zu der kleinsten Anzahl von Nachrichten zusammengefasst, die das Limit von 4096 Zeichen zulässt, und bei einer Antwort über eine Ratenbegrenzung wartet der Knoten die angegebene Zeit ab und wiederholt den Versand, statt die Benachrichtigung zu verwerfen.

  • Die Benachrichtigungsverzögerung gilt jetzt auch für den Reserveeingang — die Warnung, dass ein Stream auf dem Reserveeingang läuft, wird nur ausgelöst, wenn der Zustand länger als alert-delay angehalten hat; eine Quelle, die sich erholt und wieder ausfällt, erzeugt daher keine Kette von Auslösungen und Entwarnungen mehr. Bei alert-delay gleich null bleibt das Verhalten wie bisher.

  • TR 101 290-Monitor — die fortlaufende Kontrolle der Konformität des Eingangsstreams mit dem Standard: ein einziges Urteil („Gut“, „Schlecht“, „Prüfung läuft…“) und ein strukturierter Bericht nach den Prioritäten 1, 2 und 3, in dem für jeden Indikator der Abschnitt des Standards, der gemessene Wert und der Grenzwert angegeben sind. Ein MPTS-Multiplex wird als Ganzes bewertet — über alle PID, Programme und SI-Tabellen. Der Stream wird automatisch als CBR oder VBR klassifiziert, und die Prüfungen, die nur bei konstanter Bitrate sinnvoll sind, werden auf einer VBR-Quelle nicht bewertet und erzeugen keine Fehlauslösungen. Ausführlich — TR 101 290-Monitor.

  • Drift des Referenzoszillators — das systematische Weglaufen der Taktfrequenz der Quelle wird durch lineare Regression in ppm bei einer Toleranz von ±30 ppm nach ISO/IEC 13818-1 gemessen und als separate Metrik ausgegeben. Ein langsames Weglaufen wird durch sanfte Mikroverschiebungen des Synchronisationspunkts ausgeglichen („Sync-Drift-Kompensation“, standardmäßig aktiviert), sodass es am Ausgang keine Sprünge gibt.

  • T-STD-Puffermodell — die Analyse des Videopuffers des Referenzdecoders nach ISO/IEC 13818-1 mit Zählern für Überläufe und Unterläufe für MPEG-2, H.264 und HEVC; die Zeitrechnung erfolgt nach der PCR-Uhr, und die Entleerungsrate richtet sich nach der tatsächlichen Videobitrate. Wird über die Einstellung „T-STD-Videopuffer analysieren“ aktiviert.

  • Analyse für die Werbeeinblendung — die Auswertung von SCTE-35-Sektionen mit Splice-Ereignissen, Splice-Punkte auf Transportebene mit konfigurierbarer Vorabbenachrichtigung sowie Random-Access-Marken. Die Daten werden bei aktivierter Tiefenanalyse in der Stream-Statistik ausgegeben.

  • Reklamationsassistent — für einen Stream mit anhaltenden Verstößen wird ein fertiger Aufgabentext für einen KI-Chat erzeugt, aus dem dieser ein förmliches Reklamationsschreiben an den Anbieter des Streams verfasst: die Liste der anhaltenden Verstöße, die gemessenen Werte, die Abschnitte des Standards und die Auswirkung auf den Decoder. Der Aufgabentext wird über die Anfrage GET /data/stream/<id>/ai-complaint-prompt ausgeliefert; der Name des Streams und die Adresse der Quelle werden nicht in den Text aufgenommen.

  • CI/CAM (EN 50221) — ein integrierter Common-Interface-Host: Erkennung des Moduls, Auslesen seines Namens und der Liste der unterstützten CA_system_id, Auswahl der zu entschlüsselnden Programme und Übergabe der CA_PMT für jedes von ihnen. Ein mit dem DVB-Empfänger kombiniertes Modul entschlüsselt die ausgewählten Programme des empfangenen Multiplexes inline, mehrere gleichzeitig; der Zustand der Slots und das Urteil zu jedem Programm sind in der Oberfläche sichtbar.

  • Software-Entschlüssler BISS-1 / BISS-E — wird nicht nur auf den Empfang von einer DVB-Karte angewendet, sondern auf jeden Stream-Eingang: der Schlüssel wird für das gesamte SPTS oder je Programm des Multiplexes festgelegt und im laufenden Betrieb geändert, ohne den Eingang neu zu starten. Beim Empfang von einer DVB-Karte wird das Ergebnis zusätzlich anhand des Streams selbst geprüft, sodass ein falscher Schlüssel nicht wie eine erfolgreiche Entschlüsselung aussieht, sondern einen eigenen Alert auslöst.

  • Bereinigung des bedingten Zugriffs beim DVB-Empfang — aus einem von einer DVB-Karte empfangenen Multiplex werden über eine separate Adaptereinstellung die ECM- und EMM-PID entfernt und aus der PMT die CA-Deskriptoren der offenen Programme: weiter im Signalweg läuft ein sauberer FTA-Stream. Bei Verlust des Schlüssels kehrt die Signalisierung des bedingten Zugriffs zurück, damit ein weiter unten in der Kette liegender Empfänger den Zugriff erneut anfordern kann.

  • Transcoder-Telemetrie — zu jedem Encoder werden die Medieninformationen des transcodierten Ausgangs veröffentlicht: Bildformat, Videocodec, Satz der Audiocodecs und aktuelle Bitrate, und zu jedem Prozess — CPU-Auslastung und belegter Speicher.

  • RTMP und RTMPS — ein Kanal wird an einen beliebigen RTMP-Empfänger veröffentlicht, einschließlich YouTube und Facebook: Video in H.264 oder HEVC (HEVC — über Enhanced RTMP) und eine AAC-Spur; für rtmps:// verbindet sich der Knoten als TLS-Client. In der Gegenrichtung holt der Eingang den Stream selbst von einer Quelle rtmp:// oder rtmps:// und remultiplexiert FLV nach MPEG-TS.

  • Nahtlose Quellenumschaltung — beim Wechsel des aktiven Eingangs am Sender verbinden sich die empfangenden PS1-Peers nicht neu: Nummerierung und Zeitstempel bleiben durchgängig, ein Warteschlangenstoß wird durch das Verwerfen der ältesten Pakete abgefangen, und die Lücke wird durch die reguläre Retransmission nachgeholt.

  • Adaptive PS1-Retransmission — der Empfänger misst die tatsächliche RTT zum Sender und passt die Intervalle der Wiederholungsanfragen selbst daran an; die gemessene RTT, das aktuelle Intervall der erneuten Anfrage und das Merkmal einer zu geringen Latenz werden in der Verbindungsstatistik ausgegeben. Die Latenz des Empfangstunnels wird direkt in Millisekunden festgelegt statt wie bisher als Vielfaches der RTT.

  • Die Zustände „Verbindung wird wiederhergestellt“ und „Admin-Aktion“ — ein Eingang oder Ausgang, der seine Quelle verloren hat, wird an Ort und Stelle wieder geöffnet und bleibt für die gesamte Dauer der Versuche im Zustand „Verbindung wird wiederhergestellt“, wobei er eine Warnung je Episode auslöst statt einer Meldung bei jedem Versuch. Eine Ursache, die sich durch Wiederholung nicht beheben lässt — ein belegter Port, eine fehlende Schnittstelle, Daten, die kein MPEG-TS sind, ein SRT-Fehlschlag bei der Verschlüsselung —, versetzt der Knoten in den Zustand „Admin-Aktion“ mit einem haftenden Alert, während eine Änderung der Einstellungen sofort wirksam wird.

  • Datum des letzten Fehlers — neben dem Text des letzten Fehlers eines Ein- oder Ausgangs wird dessen Zeitpunkt veröffentlicht (last-error-ts, dasselbe Feld gibt es auch im Ereignisstrom), sodass eine alte Ursache, die an einem pausierten Eingang hängen geblieben ist, getrennt von der aktuellen Störung sichtbar ist.

  • Diagnose bei unbrauchbarem Inhalt am Eingang — die Meldung über den Verlust der MPEG-TS-Synchronisation nennt die wahrscheinliche Ursache: Pakete wurden gefunden, sind aber um eine bekannte Anzahl Bytes versetzt, oder es gibt überhaupt keine MPEG-TS-Struktur; für PS1- und Pro-MPEG-Eingänge kommt ein Hinweis auf die Passphrase der Verschlüsselung hinzu.

  • Tatsächliche Größe des Empfangspuffers — der Eingang veröffentlicht socket-buffer-actual, die vom Kernel zugeteilte Größe, während socket-buffer-size nur eine Anforderung bleibt und vom Systemlimit gekürzt wird; die Abweichung ist damit sofort sichtbar und äußert sich nicht erst als Verluste bei hoher Bitrate.

  • MPTS-Multiplexer: ursprüngliche Identität — die Programme können ihre ursprünglichen PID behalten, und die Reihenfolge der Programme in PAT, SDT und NIT wird manuell festgelegt, sodass ein Multiplex ohne Änderung der Stream-Identität für die Empfangsgeräte auf Perfect Streamer migriert wird. Programme mit TS-Verwürfelung werden mit ihren ursprünglichen Zeitstempeln übernommen.

  • Automatische PID-Nummerierung für SPTSenable-autopid verschiebt zusammen mit autopid-base das gesamte Programm in ein vorhersagbares Fenster von 64 Bezeichnern, beginnend mit der PMT und danach Video, Audio und die übrigen Elementarströme in der Reihenfolge der Ausgangstabelle; ein Programm, das nicht in das Fenster passt, behält seine ursprünglichen PIDs vollständig.

  • Die Datagrammgröße lässt sich an allen Ausgängen einstellen — die Einstellung packets gilt nun nicht mehr nur für SRT, sondern auch für die Ausgänge UDP, RTP, Pro-MPEG und RIST, und bei der Ausgabe in eine Datei und in den Standardstrom bestimmt sie die Größe des geschriebenen Blocks. Die Standardwerte entsprechen dem bisherigen Verhalten, eine Konfiguration, in der der Schlüssel nie gesetzt wurde, ändert sich also nicht; einen gespeicherten Wert, der vom Standard abweicht, haben frühere Builds ignoriert, und jetzt wird er schon beim ersten Neustart wirksam — prüfen Sie ihn vor dem Update.

  • Integration mit externem Billing — jede Zuschauersitzung wird in einem externen Billing- oder CRM-System autorisiert, durch periodische Re-Autorisierung gehalten und nach ihrem Ende demselben System gemeldet: ein Lebenszyklus Start / Interim / Stop im RADIUS-Stil, ein Widerruf des Abonnements bricht die Sitzung mitten im Betrachten ab. Erfasst sind OTT, das PS1-Peering und die SRT-Ausgänge, und das Billing-System selbst wird über Vorlagen für die Anfrage und die Auswertung der Antwort angebunden, ohne Anpassung der Software.

  • Integrierter ACME-Client (Let’s Encrypt) — Ausstellung und automatische Verlängerung der Zertifikate für den Webserver, den HTTP/OTT-Server und den EPG-Server: ein Zertifikat wird für jeden konfigurierten Hostnamen bestellt, die Verlängerung wird täglich geprüft, bei einem Fehlschlag wird ein Alert ausgelöst. Unterstützt werden eine beliebige Zertifizierungsstelle und die externe Kontobindung, und ein neues Zertifikat wird ohne Neustart des Dienstes wirksam.

  • Schnelles Beenden des Dienstes — das Anhalten wartet nicht mehr auf einen Client, der aufgehört hat, Daten zu lesen: unter derselben Last beendet sich der Knoten in 2–4 Sekunden statt in etwa einer Minute, ein Neustart dauert also Sekunden und lässt die Sendung nicht ausfallen.

  • pss_lic 2.0 — das Kommandozeilen-Dienstprogramm zur Lizenzverwaltung wurde auf die Befehle apply, c2v, fingerprint, recipient, keys, detach, rehost und cancel mit langen Optionen umgestellt: es wendet ein zugesandtes Lizenz-Update an, exportiert den Zustand des Schlüssels für den Anbieter und überträgt die Lizenz von Knoten zu Knoten, auch vorübergehend, und jede Datei nimmt es von der Standardeingabe an und gibt sie auf der Standardausgabe aus. Ausführlich — pss_lic.

  • Konfigurationsdatei von Hand bearbeiten — zusammen mit der Dokumentation wird ein JSON Schema für pss.json veröffentlicht (streng und kompatibel), dazu eine Schritt-für-Schritt-Anleitung zum Bearbeiten und Übertragen der Datei: die Konfiguration eines gestoppten Knotens darf jetzt direkt bearbeitet und zwischen Installationen und Versionen übertragen werden, sofern das Ergebnis gegen das Schema geprüft wurde, während zuvor die HTTP API der einzige unterstützte Weg war. Ausführlich — Die Einstellungsdatei pss.json.

  • Neue Weboberfläche — die Verwaltung des Knotens wurde auf eine neue Konsole umgestellt, die unter der Adresse des Knotens geöffnet wird (Pfad /admin): Übersicht, Streams, Systemüberwachung, DVB, DVR, Transcoder, Clients, Protokoll, Alerts und alle Servereinstellungen. Eigene Diagramme zeigen die Topologie der Meshwork-Domain und den Signalweg des ausgewählten Streams von den Eingängen bis zu den Ausgängen. Die frühere Oberfläche bleibt unter /classic erhalten. Ausführlich — Weboberfläche.

  • Einmalige Anmeldung in der Domain — einem Konto kann die automatische Anmeldung erlaubt werden: nach einer Anmeldung mit Passwort öffnet der Browser 14 Tage lang das Panel dieses Knotens ohne Anmeldeformular und übersteht einen Neustart. Ein Link aus diesem Panel übergibt die Sitzung an einen benachbarten Knoten der Domain, sofern die Bedingungen der Übergabe erfüllt sind (Webserver & Konten); eine von Hand eingegebene Adresse eines Nachbarn überträgt die Sitzung nicht. Ein Skript oder ein fremdes Panel weist denselben Schlüssel im Header X-Auth-Token oder im Parameter auth-token vor, und ein Administrator widerruft die automatische Anmeldung sofort in der gesamten Domain.

  • CORS für die administrative API — die Knoten einer Meshwork-Domain sind ohne jede Einstellung zugelassen, die übrigen Ursprünge werden in web-server/cors-origin aufgeführt (der Wert * lässt jeden Ursprung zu, none schaltet den Mechanismus ab), sodass die Oberfläche eines Knotens die API eines anderen anspricht; eine domänenübergreifende Anfrage muss das Token ausdrücklich mitführen — Cookie und Digest wirken in ihr nicht.

  • Token der eigenen SitzungGET /data/auth-token liefert dem Client sein eigenes Token und die absolute Gültigkeitsdauer, und in /data/server kam das Feld web-login-expires hinzu, sodass die Oberfläche anzeigt, bis wann die Anmeldung gilt, ohne das Token selbst zu lesen.

  • Beenden einer Autologin-SitzungPOST /data/auth-tokens/revoke?login=<login> schließt alle laufenden Sitzungen eines Kontos, ?id=<hex> eine einzelne anhand des Bezeichners aus der Sitzungsliste; in der Antwort kommt die Anzahl der geschlossenen Sitzungen, und der Widerruf verbreitet sich über die gesamte Domain.

  • Grund der Ablehnung beim Wechsel auf einen benachbarten Knoten — hat der Wechsel keine automatische Anmeldung ergeben, gibt der Knoten in der Adresse den Parameter jump mit dem Wert no-session, foreign-domain, autologin-off oder token-refused zurück, statt stillschweigend das Passwortformular anzuzeigen.

  • Aktualisierung in Echtzeit — der Knoten liefert seinen Zustand als Ereignisstrom unter /data/events: beim Verbinden trifft eine vollständige Momentaufnahme ein, danach werden im Sekundentakt die Frames der Streams, der Systemressourcen, der Clients und der DVB-Adapter aktualisiert, während Alerts und Zustandswechsel als Ereignisse eintreffen. Die Oberfläche und externe Dashboards arbeiten ohne periodische Abfrage.

  • Kontextbezogene Hilfe — jeder Bildschirm und jedes wichtige Fenster der neuen Oberfläche verfügt über einen Hilfeaufruf, der genau den Dokumentationsabschnitt zu dem öffnet, was gerade geöffnet ist: die allgemeine Hilfeschaltfläche für den Bildschirm, die Schaltfläche „?“ in der Fensterkopfzeile für dieses Fenster. Der Abschnitt wird in der Sprache der Oberfläche geöffnet.

  • Sprachen, Designs und Layouts — die Oberfläche ist in sechs Sprachen übersetzt (Russisch, Englisch, Deutsch, Französisch, Spanisch, Portugiesisch), unterstützt ein helles und ein dunkles Design und passt die Layoutdichte selbst an Telefon, Tablet, Arbeitsplatzrechner und Videowand an.

  • Zugang ohne Beschränkung der Verbindungszahl — die Verbindungsgrenzwerte des Empfängers haben einen dritten Zustand bekommen, „Ohne Beschränkung“, neben „Protokoll verboten“ und „Höchstens“ mit einer Zahl; früher wurde unbeschränkter Zugang durch eine bewusst große Zahl dargestellt. Null bedeutet nach wie vor ein Verbot des Protokolls, sodass sich die Bedeutung der gespeicherten Einstellungen nach dem Update nicht ändert. Ausführlich — Benutzer: hinzufügen und bearbeiten.

  • Die Bearbeitung des Stream-Zugangs berührt fremde Sitzungen nicht — das Hinzufügen eines Streams zur Liste der erlaubten und die Rückkehr zu einer leeren Liste reißen keine einzige Sitzung ab, und eine Verengung der Liste schließt die PS1- und SRT-Sitzungen nur auf den Streams, die aus ihr verschwunden sind. Früher schaltete jede Bearbeitung der Liste das Konto vollständig auf allen Protokollen ab.

  • Lizenzaktivierung über die Weboberfläche — der Bildschirm „Lizenz“ hat einen Abschnitt „Aktivierung“ bekommen: den Export des Schlüsselzustands für den Anbieter — als C2V-Datei oder in die Zwischenablage — und das Anwenden des zugesandten V2C-Schlüssels per Datei oder durch Einfügen des Textes. Das Anwenden des Schlüssels startet den Knoten neu. Ausführlich — Lizenz.

  • Warnung vor dem Ablauf der Lizenz — der Knoten löst zwei Wochen vor dem Ende der Frist einen Alert aus und stuft ihn hoch auf die Stufe, die einen Eingriff erfordert, wenn die Frist abgelaufen ist. Der Alert wird domänenweit repliziert, sodass die ablaufende Lizenz eines Nachbarn von jedem Knoten aus zu sehen ist (Benachrichtigungen (Alerter)).

  • Eine als nicht echt erkannte Lizenz stoppt den Node — ein Node, dessen Lizenz als nicht echt erkannt wird, löst einen Alarm aus, der einen Administrator-Eingriff erfordert, startet den Dienst neu, und der Start wird abgelehnt: der Dienst bleibt gestoppt, bis auf dem Node eine echte Lizenz vorliegt. Der Alarm wird über die Domain repliziert (Benachrichtigungen (Alerter)).

  • Rückfall auf die letzte funktionierende Konfiguration — der Node bewahrt eine Kopie der Einstellungen auf, mit denen er zuletzt sauber gestartet ist, und kommt bei einer inakzeptablen pss.json mit dieser Kopie hoch — mit allen seinen Streams und nicht mit den Standardeinstellungen, die keine Streams enthalten. Das Archiv der abgelehnten Dateien wurde in Ordnung gebracht: Namen in UTC, ein Zählsuffix statt Überschreiben, wenn zwei Fehlschläge in dieselbe Sekunde fallen, die zwanzig jüngsten Kopien; den Pfad der archivierten Kopie nennt der Alarm direkt. Ausführlich — Verhalten beim Start und bei Konfigurationsfehlern.

  • Eingangspriorität lässt sich mit der Maus und über die Tastatur bearbeiten — ein Administrator kann die Eingänge eines Streams per Ziehen oder mit Alt+↑ und Alt+↓ umsortieren, auf der Registerkarte „Eingänge“ des Editors und in der aufgeklappten Zeile der Streamliste (auf dem Telefon wird die Reihenfolge nur angezeigt); ein hinzugefügter Eingang steht immer an letzter Stelle und ersetzt nie den Haupteingang (Streams).

  • Die Nummer eines Eingangs ist sein Platz in der Redundanzliste — ein und dieselbe Nummer steht jetzt in der Streamzeile, in der aufgeklappten Zeile, im Editor und im Text des Alarms. Eingänge mit gleichem Prioritätswert behalten die Reihenfolge, in der sie eingetragen sind, auch bei späteren Änderungen der Einstellungen (Quellenredundanz).

  • Der Ausfall eines verlassenen Eingangs liest sich als Historie — der Eingang, den der Stream zugunsten einer Reserve verlassen hat, wird gestoppt, behält aber seinen Grund: die Oberfläche zeigt ihn als gedämpfte Zeile mit Alter an, nicht als aktuellen Fehler, und der Alarm über den Fehler dieses Eingangs wird zurückgenommen. Der Grund ist dabei der eigene, transportbezogene, sofern der Eingang ihn noch selbst melden konnte (Quellenredundanz).

  • Sortierung der Clientliste — auf dem Bildschirm „Clients“ sortiert eine Spaltenüberschrift die Liste: numerische Spalten öffnen absteigend, textuelle von A bis Z, der dritte Klick stellt die Reihenfolge des Nodes wieder her. Sortiert wird die gesamte gefundene Liste, nicht die angezeigte Seite (Clients).

  • Sprung zum Stream vom Transcoder-Bildschirm — die Zeile des Decoders und jedes Encoders hat eine Schaltfläche erhalten, die die Streamliste beim betreffenden Stream öffnet. In jeder Rolle verfügbar (Transcoder).

  • Das Demultiplexer-Programm wird auch für einen DVB-Adapter aus einer Liste gewählt — ein laufender Adapter veröffentlicht seinen Multiplex, und das Feld „PNR“ bietet dessen Programme mit Namen an, einschließlich der inneren T2-MI-Programme unter ihren zusammengesetzten Nummern (Demultiplexer (demuxer)). Auch der Adapter eines dvb-Eingangs wird über den Namen gewählt und nicht als Datensatznummer eingegeben (DVB-Adapter (dvb)).

  • Der DVB-Empfang hängt nicht mehr vom Build ab — der Eingangstyp dvb und der Bereich der DVB-Adapter stehen auf jedem Node zur Verfügung; einzige Bedingung ist ein erkanntes Frontend und ein Treiber, der dem Dienst das Öffnen erlaubt (DVB-Empfänger).

  • Der DVB-Scanner überlässt den Tuner einem konfigurierten Adapter — ein gefundener Multiplex lässt sich anwenden, ohne das Ende des Durchlaufs abzuwarten: der Adapter nimmt sich den Tuner und kommt nach etwa einer Sekunde hoch, während der Suchlauf als abgebrochen endet und seine Ergebnisse auf dem Bildschirm behält. Ein Durchlauf wird mit der Schaltfläche „Stopp“ und durch Schließen des Fensters beendet (Scan).

  • Die Panels der Node-Übersicht richten sich nach dem Vorhandensein des Subsystems — „Transcoder“ und „DVB-Adapter“ erscheinen in der Übersicht dort, wo die Hardware oder die Instanzen vorhanden sind oder wo es einen Ausfall zu melden gibt. Auf einem Node ohne Transcoder und ohne Tuner fehlen diese Panels, und damit auch der Weg in ihre Bereiche von der Übersicht aus (Knotenübersicht).

  • Interface-Adressen im Systemmonitor — die Karte „Netzwerk“ und die Verlaufsdiagramme sind mit der IPv4-Adresse des Interfaces beschriftet, sofern der Node sie meldet, verschachtelte VLANs eingeschlossen (System-Monitor).

  • Ein DVR-Speicherpfad wird ohne abschließendes Trennzeichen geschrieben — die Oberfläche und die HTTP-API lehnen einen solchen Wert ab: zwei Schreibweisen desselben Verzeichnisses würden die Eindeutigkeitsprüfung als zwei verschiedene Speicher passieren (DVR-Speicher).

  • Das Paket benötigt den Schutzdienst 10.33 oder neuerpstreamer liefert die Bibliotheken des Schutzsystems der neuen Generation, und ein älterer aksusbd nimmt sie nicht an (Systemanforderungen). Der Dienst liegt im selben Repository und wird zusammen mit dem Paket installiert, doch seine Aktualisierung ist unumkehrbar, unabhängig vom Schlüsseltyp — Ablauf und Folgen sind auf den Installationsseiten beschrieben (Installation auf Systemen der RHEL-Familie, Installation auf Systemen der Debian-Familie).

  • Explizite PLP-Auswahl bei DVB-T2 — das Feld „Stream id (ISI/PLP)“ hat den Wert „auto“ (-1) erhalten: es wird kein Filter angewendet, der Tuner nimmt den Standardstream des Treibers, und ein neuer Adapter wird genau so angelegt. Eine ausdrückliche Null ist damit zu einer echten Auswahl des Streams null geworden und nicht mehr „nicht gesetzt“, sodass ein Adapter, bei dem Null in den Einstellungen gespeichert ist, nach der Aktualisierung des Nodes nur noch diesen Stream empfängt (Adapter).

  • Der Scanner findet PLPs — das Feld „PLP prüfen bis“ durchläuft die PLPs auf DVB-T2-Transpondern und führt jeden gefundenen als eigene Zeile mit eigener Programmliste auf; die Nummer wird in den angelegten Adapter übernommen, und die Adapterstatistik hat eine Zeile „PLP / ISI“ erhalten (Scan).

  • Suche in den Scanner-Katalogen — Hunderte von Satelliten und regionalen Bändern sind nach Namen sortiert und werden über eine Suchzeile gefiltert; eine bereits ausgewählte Zeile verschwindet nicht aus der Liste, was auch immer eingegeben wird (DVB-Scan).

  • Korrektur des PCR-Verweises in der PMT — eine neue MPEG-TS-Einstellung für Quellen, deren Tabelle keine brauchbare PCR angibt: der Node trägt in die PMT die PID ein, auf der die PCR tatsächlich übertragen wird (Modifikation des Streams).

  • Wiederaufbau des Jitter-Buffers nach einem Einbruch der Quelle — ein Eingang, der einen Stillstand seiner Quelle überstanden hat, läuft nicht länger mit einer fast leeren Warteschlange weiter und gibt nicht mehr jedes weitere Stocken an die Ausgänge weiter: der Node baut den Buffer einmalig neu auf, um den Preis eines einzigen Aussetzers (Synchronisation).

  • Bitratensteuerungsmodus des Videoencoders — der Transcoder hat die Wahl zwischen einer konstanten Rate und zwei variablen Modi erhalten: die angegebene Zahl wird entweder als mittlere Bitrate gelesen (Spitzen erreichen das Anderthalbfache) oder als harte Obergrenze (die mittlere Rate beträgt dann zwei Drittel davon). Es bleibt dabei bei einer einzigen Zahl — die zweite Grenze leitet der Encoder selbst aus einem festen Spitzen-zu-Mittelwert-Verhältnis von 1,5 ab. In den variablen Modi füllt der Encoder den Elementarstrom nicht mehr auf, sodass Bandbreite nur dort gespart wird, wo der empfangende Stream die Bitrate nicht wieder ausgleicht (Einstellungen des Encoders).

  • Ein Transcoder-Neustart wird im Journal erklärt — jeder Neustart des Kindprozesses nennt seinen Grund und seinen Exit-Code auf der Stufe „Hinweis“, statt still im Trace. Außerdem öffnet der Node einen nicht antwortenden Kanal nicht mehr endlos neu: nach zwei fehlgeschlagenen Versuchen fordert er einen neuen Prozess an (Betriebsüberwachung).

  • Ein gelöschter Stream ist im geöffneten Editor sichtbar — wird ein Stream vom Node gelöscht, während sein Editor oder sein Verarbeitungsschema geöffnet ist, meldet der Node das in einer eigenen Zeile, und das Speichern wird mit derselben Begründung neben der Schaltfläche gesperrt. Zuvor leerten sich bei einem solchen Stream einfach alle Listen, was wie ein Stream ohne konfigurierte Ein- und Ausgänge aussah (Stream konfigurieren).

  • Eine abgelehnte Speicherung nennt ihren Grund — statt eines einzigen Allgemeinsatzes für alle Fälle meldet das Formular, was genau im Weg stand: eine abgelaufene Antwortzeit, eine Rollenbeschränkung oder die eigene Ablehnung des Nodes in dessen eigenen Worten.

  • PID-Beschriftungen und PID-Auswahl in den Filterregeln — jede Nummer ist mit Art und Codec beschriftet und bei einem Multiplex zusätzlich mit dem Programm, zu dem sie gehört; die Hinzufügen-Zeile hat eine Liste der PIDs erhalten, die die Quelle tatsächlich führt. Die manuelle Eingabe bleibt bestehen: der Transport kann eine PID führen, zu der nichts dekodiert wurde (Editor für Eingang und Ausgang).

  • Die DVB-Bildschirme zeigen die adressierbare Programmnummer — bei einem Dienst innerhalb eines T2-MI-Trägers steht in der Programmliste des Adapters und in dessen Statistik die zusammengesetzte PNR, genau jene, mit der das Programm in der Auswahl beim Demultiplexer, bei BISS und bei CAM adressiert wird. Die eigene Nummer innerhalb des Trägers wiederholt sich auf einem Transponder mit gespiegelten Gruppen bei jedem Träger und verweist auf nichts (Adapter-Statistik).

  • Ein BISS-Slot wird immer als Liste angeboten — unverschlüsselte Programme sind zuletzt hinzugekommen, gekennzeichnet mit · clear ·, sodass die Liste auf einem Multiplex ohne ein einziges verschlüsseltes Programm nicht mehr leer bleibt: der Schlüssel wird häufig im Voraus eingetragen, und ein Event-Feed ist zwischen den Ereignissen unverschlüsselt (Entschlüsselung).

  • Von der Streamstatistik zum Transcoder und zu dessen Quelle — wurde der aktive Eingang eines Streams von einem Transcoder erzeugt, ist sein Wert zu einem Link auf den Transcoder-Bildschirm mit aufgeklappter Zeile der betreffenden Instanz geworden, und daneben ist eine Plakette mit dem Namen des Streams erschienen, den diese Instanz dekodiert. Beide Links sind in jeder Rolle verfügbar (Stream-Statistik).

  • Lauf-Grenzen im Journal — jeder Start des Dienstes ist im Verlauf durch eine eigene Zeile mit dem Zeitpunkt des Starts und dem Build gekennzeichnet, auf dem der Lauf hochgekommen ist: beim aktuellen Lauf steht daneben dessen Uptime, bei vergangenen, wie lange der Lauf gearbeitet hat und wie lange der Node bis zum nächsten Start stillstand, und ein ohne regulären Stopp beendeter Lauf wird besonders markiert. Der Trenner wird auch bei eingeschaltetem Schweregradfilter gesetzt (Logs).

  • Größenbegrenzung der Statistikdatenbank — die Metrikdatenbank wird nicht nur durch das Aufbewahrungsfenster begrenzt, sondern auch durch die Größe. Der Node berichtet über die letzte Bereinigung — wie viel Historie geblieben ist, wie groß die Datenbank ist und wie lange die Bereinigung gedauert hat — und sagt es ausdrücklich, wenn sich die Größenbegrenzung als strenger erwiesen hat als das eingestellte Fenster (Server-Einstellungen).

  • Beim Laden beschnittene Werte werden sofort angesagt — hat der Node beim Lesen der Einstellungen einen Wert an die zulässige Grenze herangezogen, meldet er das gleich nach dem Start auf dem Bildschirm und nicht nur in einer Zeile im Journal (Verhalten beim Start und bei Konfigurationsfehlern).

  • Eine Lizenz einer veralteten Generation wird nicht angenommen — ein Node mit einer echten Lizenz der vorigen Generation startet nicht und löst einen eigenen Alarm aus. Das ist weder eine abgelaufene Frist noch eine Fälschung: Generation 2 wird nur als befristete Testlizenz angenommen, deshalb wird eine unbefristete Lizenz dieser Generation sofort abgelehnt und lebt nicht bis zu ihrem Datum (Katalog der Alert-Codes).

  • Das automatische Auffüllen berechnet sein Ziel aus dem Inhalt — im automatischen Bitratenmodus geht der Node von der tatsächlichen Rate des Inhalts aus und nicht vom eigenen Ausgang, sodass das Ziel nicht mehr ohne Rückkehr nach oben kriecht und wieder sinkt, sobald der Inhalt erneut in die eingestellte Rate passt (Bitratensteuerung).

  • Das Fenster der Driftkompensation ist dem Buffer angemessen — das weiche Fenster ist auf ein Viertel der Zielgröße des Jitter-Buffers begrenzt, jedoch nie unter 100 ms: ein Eingang mit dem Standardbuffer arbeitet nicht mehr ohne Reserve, die Kompensation zieht die Synchronisation früher nach, und der Notfall-Neuaufbau des Buffers bei Leerlauf greift endlich (Synchronisation).

  • Weitere Verbesserungen und Fehlerbehebungen.