Transcoder

Transcoder codieren Video und Ton eines Streams um: Sie senken die Bitrate für OTT oder für einen Multiplex, ändern Codec und Auflösung und bereiten die Varianten für adaptive Bundles vor. Jeder Transcoder läuft als eigener Prozess des Knotens; unterstützt wird das Schema „eins zu vielen“: Aus einem Decoder lassen sich mehrere Ausgangsstreams mit unterschiedlichen Codiereinstellungen gewinnen. Transcodierung steht nur SPTS-Streams zur Verfügung; der Quellstream muss sowohl Video als auch Ton enthalten.

Architektur des Transcoders: ein gemeinsamer Decoder und mehrere unabhängige Zweige für Verarbeitung und Codierung; der Ton ist mehrspurig, Untertitel und Teletext werden durchgereicht.

Architektur des Transcoders: ein Decoder (gemeinsam) und N unabhängige Zweige „Verarbeitung + Encoder“; die Tonspuren werden getrennt vom Video verarbeitet, Untertitel und Teletext werden durchgereicht.

Verschaltung

Ein Transcoder verbindet zwei oder mehr Streams:

  1. Am Quellstream wird ein Ausgang vom Typ transcoder hinzugefügt — das ist der Decoder. In seinen Einstellungen wird das Backend der Transcodierung ausgewählt (siehe unten).

  2. Am Ergebnisstream wird ein Eingang vom Typ transcoder hinzugefügt — das ist der Encoder. In seinen Einstellungen wird der laufende Quell-Decoder ausgewählt (Feld Decoder).

  3. Schritt 2 wird für jede weitere Variante wiederholt; alle nutzen denselben Decoder.

Danach arbeitet der Ergebnisstream wie ein gewöhnlicher SPTS-Stream: Er kann über OTT ausgeliefert, im DVR aufgezeichnet oder einem Multiplexer zugeführt werden.

Backends und Codecs

Das Backend wird am Decoder ausgewählt (Feld Transcoder backend; die Werte sind wie in der Oberfläche angegeben):

Video pass-through

Das Video wird ohne Umcodierung durchgereicht; transcodiert wird nur der Ton. Den Modus führt der Software-Transcoder aus, deshalb muss das Paket der Software-Transcodierung installiert sein (Transcoder).

Software (CPU)

Software-Transcodierung auf dem Prozessor.

NVidia (GPU)

Hardware-Transcodierung auf Grafikprozessoren von NVIDIA.

Intel VPL (GPU)

Hardware-Transcodierung auf Grafikprozessoren von Intel.

Für die GPU-Backends wird das Gerät über das Feld GPU device selector ausgewählt (erweiterte Einstellung). Das ist auf Servern mit mehreren Karten nötig. Die Transcoder-Pakete werden separat installiert (Transcoder); die installierten Backends, ihre Versionen und die gefundenen Geräte zeigt der Bildschirm „Über das System“ (Über das System).

Der Decoder nimmt Video in MPEG-2, H.264, HEVC und Ton in MPEG (Layer 1–3), AAC, AC-3 an. Der Encoder liefert Video in H.264 und HEVC (der NVIDIA-Encoder unterstützt kein MPEG-2; MPEG-2 codieren die Backends Software und Intel VPL) und Ton in MPEG Layer II und AAC.

Besonderheiten des Decoders:

  • Zeilensprungstreams (interlace) werden am Eingang und am Ausgang unterstützt; bei H.264 und HEVC wird das Format interlace alternate (getrennte Halbbilder) in interleaved umgewandelt;

  • für HEVC wird das Profil Main10 mit BT.709 (SDR) und BT.2020 (HDR) unterstützt; der HEVC-Encoder verwendet stets das Profil Main mit BT.709;

  • eine variable Bildrate (VFR) wird in eine konstante umgewandelt;

  • Streams ohne IDR-Bilder werden unterstützt.

Einstellungen des Decoders

Sie werden am Ausgang vom Typ transcoder des Quellstreams festgelegt (die Bezeichnungen entsprechen der Oberfläche; alle folgenden Einstellungen gehören zu den erweiterten):

Fix PAR (N/D), Fix frame rate (N/D)

Hinweise zur Korrektur der Daten des Eingangsstreams: Sie wandeln den Stream nicht um, sondern korrigieren Parameter, wenn die Quelle sie nicht oder falsch meldet. Fix PAR — das Seitenverhältnis des Pixels als Bruch (zum Beispiel 16/9 für Wide SD); Fix frame rate — die Bildrate als Bruch, falls sie im Stream fehlt (PAL — 25/1, NTSC — 30000/1001, Film — 24/1).

Convert to BT.709

Konvertierung der SD-Farbformate (BT.470-2 PAL, SMPTE 170M NTSC) nach BT.709.

Watchdog timeout

Timeout, nach dem der Watchdog den Transcoder-Prozess neu startet.

Der Transcoder-Prozess führt stets ein ausführliches Protokoll; eine separate Einstellung für die Ablaufverfolgung ist nicht nötig (Betriebsüberwachung). Das Protokoll liegt nur im Speicher des Knotens; wie man es für die Analyse sichert, beschreibt Transcoder-Protokolle.

Einstellungen des Encoders

Sie werden am Eingang vom Typ transcoder des Ergebnisstreams festgelegt:

Encoder

Videocodec: MPEG-2, H.264 (Standard) oder HEVC.

Video profile (H.264)

Codierprofil von H.264: Main oder High.

Video rate control

Der Modus der Video-Bitratensteuerung: konstante Rate — CBR (constant); variabel mit mittlerer Bitrate — VBR (average bitrate); variabel mit Obergrenze — VBR (maximum bitrate). Standard ist die konstante Rate.

In beiden variablen Modi füllt der Encoder seinen eigenen Elementarstrom nicht mehr auf. Bandbreite wird deshalb nur dort gespart, wo der empfangende Stream die Bitrate nicht wieder ausgleicht: Das Auffüllen legt das Feld „Bitratenmodus“ auf der Registerkarte „MPEG-TS“ dieses Streams fest (Bitratensteuerung). Diese beiden Felder nicht verwechseln: „Bitratenmodus“ betrifft den Transportstrom als Ganzes, Video rate control nur den Videoencoder.

Den Modus gibt es seit 2.0.2.334. Auf einem Knoten eines früheren Builds fehlt das Feld, und ein Transcoder eines früheren Builds liest es nicht und codiert stets mit konstanter Rate.

Video bitrate (kbps)

Die Video-Bitrate ist eine Zahl für alle drei Modi; was sie bedeutet, legt Video rate control fest, und die Feldbeschriftung ändert sich mit dem Modus. Bei konstanter Rate ist die Zahl zugleich Ziel und Obergrenze des Puffers. Bei mittlerer Bitrate ist die Zahl die mittlere Rate, die Spitzen erreichen das Anderthalbfache. Bei einer Obergrenze ist die Zahl die obere Schranke, die das Video nicht überschreitet, und die mittlere Rate beträgt zwei Drittel davon. In allen Fällen leitet der Encoder die zweite Grenze selbst aus einem festen Spitzen-zu-Mittelwert-Verhältnis von 1,5 ab, deshalb wird das Maximum nicht über ein eigenes Feld festgelegt. Die Gesamtbitrate des Streams fällt wegen der Tonspuren höher aus.

Resize

Änderung der Bildgröße: proportionale Verkleinerung um den Faktor 2 oder 4; Anpassung an SD — die Varianten SD, SD PAL und SD NTSC, alle mit dem Breitbildverhältnis 16:9; Hochskalierung von SD auf HD; Vorgabe der Breite oder der Höhe (die jeweils andere Seite wird proportional nachgerechnet). Eine beliebige Größe wird nicht unterstützt: Sie würde die Proportionen verzerren.

Deinterlace

Umwandlung von Zeilensprungvideo in Vollbildvideo (standardmäßig aktiviert; bei der Hochskalierung von SD auf HD wird sie automatisch angewendet).

Einstellungen für Qualität und Struktur des Streams (erweiterte Einstellungen):

GOP interval

Intervall der Schlüsselbilder in Bildern. Standardmäßig 25, also eine Sekunde bei 25p. Dieses Intervall wird empfohlen, wenn Player zu einem beliebigen Zeitpunkt auf den Stream zugreifen.

B-frames, Lookahead

Sie erhöhen die Codierqualität; die empfohlenen Werte sind 3 beziehungsweise 20–50 Bilder.

Speed preset

Voreinstellung der Codiergeschwindigkeit von 1 bis 7; je kleiner der Wert, desto höher die Qualität und desto größer die Last. Standardmäßig 4.

Frame rate resample

Ausdünnung der Bildrate um den Faktor 2 oder 4.

Encoder PMT PID, PAT/PMT interval (90kHz)

PID der PMT-Tabelle und Wiederholintervall der Tabellen PAT/PMT im Ausgangsstream; sie werden gesetzt, wenn der Stream in den Netzplan eingepasst werden muss.

Das Speichern einer beliebigen Encoder-Einstellung startet den Transcoder-Prozess neu. Darauf weist ein Text über der Feldliste hin. Der Neustart öffnet jeden Eingang neu, der Daten von dieser Transcoder-Instanz erhält, auch die Eingänge anderer Streams: In jedem transcodierten Ausgang entsteht ein kurzer Aussetzer, und ein Stream mit Reserveeingängen kann für diese Zeit auf die Reserve wechseln (Quellenredundanz und Verteilung).

Eine unverträgliche Parameterkombination lässt sich einstellen; die Fehler zeigt das Protokoll des Transcoders (Betriebsüberwachung).

Tonverarbeitung

Standardmäßig werden alle Tonspuren ohne Umcodierung vom Eingang an den Ausgang durchgereicht. Überzählige Spuren werden durch PID-Filter am Eingang des Streams entfernt (MPEG-TS-Filterung).

Die Umcodierung des Tons wird über Regeln getrennt für jeden Quellcodec konfiguriert (erweiterte Einstellungen): Eine Spur kann unverändert durchgereicht, umcodiert (MPEG — nach AAC; AAC — nach MPEG Layer II; AC-3 — nach MPEG Layer II oder AAC) oder entfernt werden (Wert Skip). Zusätzlich werden die Bitrate des Tons (Audio bitrate, standardmäßig 128 kbit/s) und die Lautstärke des 5.1-Downmix (5.1 downmix volume) festgelegt. Bleibt nach Anwendung der Regeln im Ausgangsstream keine einzige Tonspur übrig, meldet der Encoder einen Fehler im Protokoll.

PCR und Bitrate des Ausgangsstreams

Der Multiplexer des Transcoders erzeugt neue, konsistente PCR-Marken. Standardmäßig wird der Ausgangsstream als VBR übertragen: Die Gesamtbitrate ändert sich mit der tatsächlichen Bitrate von Video und Ton, und die PCR-Genauigkeit nach TR 101 290 ist auf der Empfangsseite nicht gewährleistet. Ist der transcodierte Stream für die DVB-Ausstrahlung bestimmt, aktivieren Sie den CBR-Modus am Empfängerstream: Das Auffüllen gleicht die Bitrate an und berechnet die PCR neu (Bitratensteuerung). Ein variabler Codiermodus verstärkt die Ungleichmäßigkeit: Die Video-Bitrate ändert sich mit dem Inhalt, und ohne Auffüllen beim Empfänger ist der Transportstrom umso ungleichmäßiger.

Betriebsüberwachung

Der Bildschirm „Transcoder“ (Transcoder) zeigt alle Instanzen. Jede Zeile beschreibt eine eigene Instanz (einen Decoder und die mit ihm verbundenen Encoder): Zustand, Backend-Typ, Betriebsdauer, CPU-Last und Speicher. Das Fenster „Transcoder-Instanz“ (Transcoder-Instanz) zeigt die Quelle, die Liste der Encoder mit den Parametern des Ausgangsvideos, die Ressourcen des Prozesses sowie die Protokolle des aktuellen und des vorherigen Starts. Mit diesem Fenster beginnt die Diagnose. Das Protokoll eines beendeten Starts wird bereits beim zweiten Neustart des Prozesses gelöscht, deshalb kopiert man es bei einem Fehler sofort (Transcoder-Protokolle).

Die Auslastung der GPU-Geräte zeigt der Bildschirm „System-Monitor“ (System-Monitor). Überschrittene Schwellenwerte für CPU, Speicher und GPU-Auslastung sowie ein nicht verfügbares konfiguriertes Backend lösen Alarme aus (Katalog der Alarmcodes).