Übersicht über die Transcoder API

Diese Seite bietet einen technischen Überblick über die Transcoder API, einschließlich Funktionen, Terminologie und nützliche Konzepte. Die Transcoder API implementiert eine REST und RPC API, mit der Sie Transcodierungsjobs in Google Cloud senden, überwachen und verwalten können. Wenn Sie Jobs mit der Transcoder API senden möchten, müssen Sie zuerst Medien-Assets in Cloud Storage hochladen. Nach der Verarbeitung eines Jobs speichert die Transcoder API die resultierenden Medien wieder in Cloud Storage.

Features

Die Transcoder API unterstützt die folgenden Funktionen:

Weitere Informationen zu den Standards MP4 und MPEG-DASH finden Sie auf der Website The Moving Picture Experts Group. Weitere Informationen zum HLS-Standard finden Sie unter HTTP-Livestreaming.

Unterstützte Container für die Inhaltsverschlüsselung

In folgender Tabelle sind die Container aufgeführt, die zur Inhaltsverschlüsselung unterstützt werden.

Streamingprotokoll Container DRM-System Verschlüsselungsschema
HLS TS ClearKey aes128
HLS TS FairPlay sampleAes
HLS fMP4 FairPlay Nur mpegCenc cbcs
MPEG-DASH fMP4 Widevine mpegCenc cenc oder cbcs
MPEG-DASH fMP4 PlayReady mpegCenc cenc oder cbcs

Zugriffssteuerung

Das Transcoder API-Modell für die Zugriffssteuerung basiert auf der Identitäts- und Zugriffsverwaltung von Google. Die fein abgestuften Berechtigungen von IAM geben Ihnen die Kontrolle darüber, was mit Mediendaten und wer ausgeführt werden kann.

Limits

Die folgende Tabelle enthält die Limits pro Transcodierungsjob.

Joblimits
Maximale Eingabebreite4.096 Pixel
Maximale Eingabehöhe4.096 Pixel
Maximale Ausgabebreite4.096 Pixel
Maximale Ausgabehöhe2160 px
Gesamtgröße der Ausgabe400 GB
Maximale EditList Dauer24 Stunden
Maximale Anzahl von Videostreams70
Maximale Anzahl von Audiostreams50
Maximale Anzahl von Textstreams50
Maximale Anzahl von Mux-Streams100
Maximale Anzahl von Manifesten100
Maximale Anzahl von Sprite Sheets10

Konzepte

In diesem Abschnitt werden wichtige Konzepte zu Videodateien und ihrer Verwendung mit der Transcoder API erläutert.

Komponenten einer Videodatei

Jede Videodatei hat einen Container, der die gesamte Datei umschließt. Die Transcoder API verwendet MuxStreams, um den Container zu definieren. Jeder Container enthält eine Reihe von ElementaryStreams, um die Codierung der Video-, Audio- und Untertitel-Texttracks für die Datei zu definieren. Video und Audio werden mit Codecs komprimiert.

Im folgenden Beispiel wird das Video mit H.264 und das Audio mit AAC komprimiert. Beide werden in einem MP4-Container platziert.

Komponenten einer Videodatei und ein Beispiel
Abbildung 1. Komponenten einer Videodatei (links) und eine Beispiel-MP4-Datei (rechts)

Struktur des Streamingprotokolls

Bei Streamingmedien codieren Inhaltsanbieter dieselben Inhalte mit mehreren Bitraten (gemessen in Kilobit pro Sekunde). Der Anbieter generiert dann eine Manifestdatei, die auf die verschiedenen Dateien mit unterschiedlichen Bitraten verweist. Der Streaming-Medienplayer verwendet die Manifestdatei, um die richtige Datei auszuwählen, und ruft dann das Video jeweils für einige Sekunden ab. Jede Bitrate kann eine einzelne Datei oder mehrere kurze Dateien sein, je nachdem, was der Player unterstützt.

Medien mit unterschiedlichen Auflösungen werden in der Regel für unterschiedliche Bitraten codiert. So werden beispielsweise niedrigere Bitraten in Standardauflösung (SD) statt in High Definition (HD) codiert. Die Bitraten, Auflösungen und Codecs werden als ABR-Leiter (Adaptive Bitrate) bezeichnet. Anbieter von Streaminginhalten können ihre eigene Rangfolge basierend auf CDN-Kosten, Nutzergerätetypen, Bandbreite in der Region und anderen Faktoren anpassen.

Komponenten einer Streamingprotokollstruktur und ein Beispiel
Abbildung 2. Komponenten einer Streamingprotokollstruktur (oben) und eine Beispielimplementierung von HTTP Live Streaming (HLS) (unten).

Terminologie

Dieser Abschnitt enthält ein Glossar mit nützlichen Begriffen zum Arbeiten mit der Transcoder API.

Werbeunterbrechung

Eine Werbeunterbrechung ist eine kurze Werbeanzeige, die vor oder während der Medienwiedergabe wiedergegeben wird. Die Transcoder API unterstützt einen Werbeunterbrechungs-Keyframe in der Jobkonfiguration. Die Transcoder API kann keine Anzeigen einfügen oder abspielen oder die Medienwiedergabe der Videoplayer-Clients beenden, die für die Verarbeitung des Keyframes verantwortlich sind.

Atom

Ein Atom ist eine grundlegende Datenstruktur, um die Metadaten und den Speicherort eines Videos zu definieren. Ein Video kann eine komplexe verschachtelte Hierarchie verschiedener Atomartypen enthalten, einschließlich Audio, Bearbeitung und Text-Atom.

Audio-Atom

Ein Audio-Atom ordnet das Audio eines Elementstreams einer Bearbeitungsliste zu.

Codec-Typ und -Profil

Wenn Sie den Codec für einen Videostream auswählen, legen Sie den Codec-Typ, z. B. H.264, und das Profil, z. B. das Standardprofil high, fest.

Container

Ein Container ist ein Wrapper, der die Beziehung zwischen den verschiedenen Komponenten in einem Multiplex-Stream beschreibt, einschließlich Mediendateien und Metadaten. Die Transcoder API unterstützt die Containerformate MP4, MPEG-DASH und HLS.

Atom bearbeiten

Mit einem Bearbeitungsatom werden die Start- und Endversätze für die einzelnen Segmente eines Streams definiert, die Sie in einer Bearbeitungsliste kombinieren möchten.

Liste bearbeiten

Eine Bearbeitungsliste definiert eine Sequenz von Änderungen als Zeitachse für die resultierende Datei oder das zugehörige Manifest aus einem Transcodierungsjob.

Elementarstream

Ein Elementar-Stream ist eine Codierung einer Eingabedatei, z. B. einer Audio-, Video- oder Untertitel-Textspur. Bevor Sie den Stream in verschiedenen Ausgabeformaten zuordnen und freigeben, müssen Sie Elementar-Stream-Pakete packen.

Entropy-Codierung

Die Entropy-Codierung ist eine verlustfreie Komprimierung, die von der Transcoder API unterstützt wird. Beim Konfigurieren von Jobs können Sie das Context-Adaptive Variable-Length Coding (CAVLC) oder das Context-Adaptive Binary Arithmetic Coding (CABAC) angeben.

Job

Ein Job ist die Basiseinheit zum Verwalten von Arbeiten mit der Transcoder API. Wenn Sie einen Job an die Transcoder API senden, wird er an einem geografischen Standort asynchron verarbeitet, der als Region bezeichnet wird. Sie können alle Jobs für eine Region auflisten und verwalten.

Der Lebenszyklus eines Jobs umfasst drei Schritte: Vorbereitung, Transcodierung und Verpacken.

  • Vorbereiten
    • Eingaben aus Cloud Storage herunterladen
    • Eingaben analysieren
    • Eingaben validieren
  • Transcodierung
    • Transcodierungsvorgänge für Eingaben ausführen
  • Verpacken
    • Stitch-Eingaben
    • Multiplex-Eingaben
    • Ausgaben in Cloud Storage hochladen

Ein Job hat einen aktualisierten Status. Der Dienst meldet Fehler mithilfe des Felds error.

Jobkonfiguration

Eine Jobkonfiguration stellt viele der verschiedenen Einstellungen dar, die Sie beim Erstellen und Senden eines Jobs an die Transcoder API anpassen können. Sie können auch Konfigurationseinstellungen angeben, z. B. Bearbeitungslisten und wo Sie Anzeigen-Tags in ein Ausgabemanifest einfügen möchten. Sie können wiederverwendbare Jobkonfigurationen als Jobvorlagen für die Verwendung in einer Google Cloud-Region erstellen.

Jobmodus

Die Transcoder API unterstützt zwei Jobmodi: interaktiv und Batch.

Der interaktive Modus ist der Standardjobmodus. Verwenden Sie diesen Modus, wenn die Jobverarbeitung so bald wie möglich beginnen soll oder Sie genauer festlegen möchten, welche Jobs zuerst ausgeführt werden. In diesem Modus wird die Anzahl der gleichzeitig ausgeführten Jobs durch das Kontingent für die Anzahl der gleichzeitig ausgeführten Jobs gesteuert. Sobald dieses Kontingent erreicht ist, werden alle Jobs, die Sie starten möchten, abgelehnt.

Verwenden Sie den Batch-Modus, um viele Jobs einzureichen, bei denen die Verarbeitungslatenz nicht so kritisch ist wie bei Jobs, die im standardmäßigen interaktiven Modus eingereicht werden. In diesem Modus können Sie die Priorität der Jobverarbeitung für einen Job angeben. Jobs, die im Batchmodus mit demselben Prioritätswert gesendet werden, werden in eine Warteschlange vom Typ „First In, First Out“ (FIFO) gestellt und haben den Jobstatus PENDING, während sie auf die Ausführung warten. In diesem Modus wird die Anzahl der Jobs in der Warteschlange durch das Kontingent für ausstehende Batch-Jobs gesteuert. Sobald dieses Kontingent erreicht ist, werden alle Jobs, die Sie starten möchten, abgelehnt. Ein Job wechselt bei der Ausführung in den Status RUNNING. Mit dem Kontingent für die Anzahl gleichzeitiger Jobs wird festgelegt, wie viele Jobs gleichzeitig ausgeführt werden.

Sie können beide Modi gleichzeitig verwenden. Kein Modus hat Vorrang vor dem anderen. Weitere Informationen zum Festlegen des Jobmodus finden Sie unter Jobs im Batchmodus erstellen.

Jobvorlage

Standardmäßig verwendet die Transcoder API eine voreingestellte Vorlage mit dem Namen preset/web-hd, um eine Jobkonfiguration zu füllen. Diese Jobkonfiguration erzeugt die folgenden Ausgabedateien:

  • manifest.m3u8: Die primäre Playlist für einen HLS-Medienstream. Diese Datei enthält Verweise auf Playlisten für die High-Definition-Variante (HD) der Ausgabe und die Standard-Definition-Variante (SD) der Ausgabe.
    • media-hd.m3u8: Playlist für die HD-Variante
      • media-hd0000000000.ts: HD-Videosegmentdatei
    • media-sd.m3u8: Playlist für die SD-Variante
      • media-sd0000000000.ts: SD-Videosegmentdatei
  • manifest.mpd: Die Playlist für einen MPEG-DASH-Medienstream. Diese Datei enthält Verweise auf Dateien des Typs „Nur Video“ und „Nur Audio“.
    • audio-only0000000000.m4s: Nur-Audio-Segmentdatei
    • video-only-hd0000000000.m4s: Nur-HD-Video-Segmentsegmentdatei
    • video-only-sd0000000000.m4s: Nur-SD-Video-Segmentdatei
  • sd.mp4: Eigenständige SD-Videodatei
  • hd.mp4: Eigenständige HD-Videodatei

Sie können benutzerdefinierte Jobvorlagen erstellen und verwalten und beim Erstellen von Jobs angeben.

Vorverarbeitung

Die Vorverarbeitung ist die Phase eines Jobs, der vor der primären Transcodierung stattfindet.

Vorverarbeitungskonfiguration

Eine Vorverarbeitungskonfiguration stellt die Einstellungen dar, die du vor der Transcodierung eines Jobs auf ein Video anwenden kannst. Sie können Zuschneiden oder Ränder als Teil dieser Konfiguration anwenden.

Geschwindigkeitsmodus

Mit dem Geschwindigkeitsmodus können Sie festlegen, ob ein Job mit dem VTC-Modus (Constant Rate factors, CRF) oder variable Bitrate (VBR) verarbeitet werden soll. CRF garantiert eine konsistente Qualität während der gesamten Medieninhalte. VBR optimiert den Codierungsprozess, um die Dateigröße der verarbeiteten Medien-Assets zu reduzieren. Wählen Sie für Streaming-Anwendungsfälle den VBR-Steuerungsmodus aus. Wählen Sie zum Archivieren den CRF-Steuerungsmodus aus.

Manifest

Ein Manifest ist eine Beschreibung der verfügbaren Inhalte und Metadaten eines adaptiven Medienstreams für einen Client. In der Transcoder API können Sie einen Job so konfigurieren, dass ein Manifest mit einem Dateinamen, einer Liste mit mehreren Streams sowie dem Typ des Manifests ausgegeben wird. Dieser muss entweder HLS- oder MPEG-DASH sein.

Text-Atom

Ein Textschema ordnet den Text aus einem Element-Stream einer Bearbeitungsliste zu.

Textstream

Ein Textstream codiert die mit einem Video verknüpften Textdaten wie etwa Untertitel.

Nächste Schritte