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:
- Ausgabe in verschiedenen Containerformaten, einschließlich MPEG-4 (MP4), Dynamic Adaptive Streaming over HTTP (DASH, auch bekannt wie MPEG-DASH) und HTTP Live Streaming (HLS)
- Ausgabe mit verschiedenen Bitraten und Auflösungen, einschließlich Nur-Audio-Ausgabe
- Umwandlung in ein High Dynamic Range (HDR)-Format
- Die Videoausgabe programmatisch verbessern, einschließlich
- Low-Level-Codierungsparameter konfigurieren, z. B. die Bitrate
- Medieninhalte mit umfassenden Bearbeitungslisten vervielfältigen
- Für den Jobmodus den interaktiven Modus mit niedriger Latenz oder den Batchmodus auswählen
- Geben Sie die Normalisierung der Audiolautstärke an.
- Konfiguriere die Verschlüsselung deines Ausgabevideos, um die Verwaltung digitaler Rechte zu unterstützen. und Inhaltsschutz
- Anzeigen-Keyframes einfügen, damit Videoplayer von Clients Anzeigen einfügen können
- Miniaturansichten aus einem generierten Sprite Sheet erstellen
- Jobvorlagen erstellen, um benutzerdefinierte oder komplexe Konfigurationen für Transcodierungsjobs zu speichern und wiederzuverwenden
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 | Fehlerbehebung | ClearKey | aes128 |
HLS | Fehlerbehebung | 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 Eingabebreite | 4.096 Pixel |
Maximale Eingabehöhe | 4.096 Pixel |
Maximale Ausgabebreite | 4.096 Pixel |
Maximale Ausgabehöhe | 2.160 px |
Gesamtgröße der Ausgabe | 400 GB |
Maximale EditList Dauer | 24 Stunden |
Maximale Anzahl von Videostreams | 70 |
Maximale Anzahl von Audiostreams | 50 |
Maximale Anzahl von Textstreams | 50 |
Maximale Anzahl von Mux-Streams | 100 |
Maximale Anzahl von Manifesten | 100 |
Maximale Anzahl von Sprite Sheets | 10 |
Konzepte
Dieser Abschnitt enthält wichtige Konzepte zu Videodateien werden mit der Transcoder API verwendet.
Komponenten einer Videodatei
Jede Videodatei hat einen Container, der als Wrapper für die gesamte Datei dient. Die Transcoder API verwendet MuxStreams. um den Container zu definieren. Jeder Container enthält eine Reihe von ElementaryStreams zum Definieren der Codierung der Video-, Audio- und Untertiteltracks für die -Datei. Video- und Audioinhalte werden mithilfe von Codecs komprimiert.
Im folgenden Beispiel wird das Video mit H.264 komprimiert und mit AAC komprimiert. Beide befinden sich in einem MP4-Container.
Abbildung 1. Komponenten einer Videodatei (links) und eine Beispieldatei im MP4-Format (rechts).
Struktur von Streaming-Protokollen
Bei Streaming Media codieren Contentanbieter denselben Inhalt mit mehreren Bitraten (gemessen in Kilobit pro Sekunde). Der Anbieter generiert dann Manifest-Datei, die auf die verschiedenen Dateien mit unterschiedlichen Bitraten verweist. Die Der Streaming Media Player wählt anhand der Manifestdatei die entsprechende Datei aus. und ruft dann für einige Sekunden das Video ab. Jede Bitrate kann eine einzelne Datei sein oder mehrere kurze Dateien, je nachdem, was der Player unterstützt.
Medien werden in der Regel in unterschiedlichen Auflösungen codiert, um Bitraten zu bieten. Niedrigere Bitraten werden beispielsweise in Standard Definition (SD) codiert. statt High Definition (HD). Die Bitraten, Auflösungen und Codecs den adaptiven Bitrate-Ladder (ABR-Ladder). Anbieter von Streaming-Content je nach CDN-Kosten, Gerätetypen der Nutzer, Bandbreite in der Region und anderen Faktoren.
Abbildung 2. Komponenten einer Streamingprotokollstruktur (oben) und ein Beispiel
HLS-Implementierung (HTTP Live Streaming) (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
In einer Bearbeitungsliste wird eine Abfolge von Bearbeitungen als Zeitachse für die resultierende Datei oder das Manifest aus einem Transcodierungsjob definiert.
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: Interaktivität und Batches.
Der interaktive Modus ist der Standardjobmodus. Verwenden Sie diesen Modus, wenn Sie damit Sie so schnell wie möglich loslegen können oder eine genauere Einstellung steuern Sie, welche Jobs zuerst ausgeführt werden. In diesem Modus Kontingent für gleichzeitige Jobs steuert, wie viele Jobs gleichzeitig ausgeführt werden. Nachdem dieses Kontingent erreicht ist, werden alle Jobs, die Sie starten möchten, werden abgelehnt.
Verwenden Sie den Batchmodus, um viele Jobs zu senden, bei denen die Verarbeitungslatenz geringer ist.
kritisch, da Jobs im interaktiven Standardmodus gesendet werden. Sie können die
Jobverarbeitungspriorität
für einen Job in diesem Modus. Jobs, die im Batchmodus mit derselben Priorität gesendet wurden
-Werten werden in eine First-In-First-Out-Warteschlange gestellt und haben den Jobstatus PENDING
während sie auf die Ausführung warten. In diesem Modus
Steuerelemente für das Kontingent für die Anzahl der ausstehenden Batch-Jobs
wie viele Jobs sich in
der Warteschlange befinden. Wenn dieses Kontingent erreicht ist, werden alle Jobs, die Sie starten möchten,
abgelehnt werden. Ein Job wechselt in den Status RUNNING
, wenn er ausgeführt wird. Die
Kontingent für gleichzeitige Batchjobs
steuert, wie viele Jobs gleichzeitig ausgeführt werden.
Sie können beide Modi gleichzeitig verwenden. Ein Modus hat keinen Vorrang vor der andere. Weitere Informationen zum Festlegen des Jobmodus finden Sie unter Jobs im Batchmodus erstellen
Jobvorlage
Standardmäßig wendet die Transcoder API eine voreingestellte Vorlage namens
preset/web-hd
zum Ausfüllen einer Jobkonfiguration. Diese Jobkonfiguration generiert den
folgende Ausgabedateien:
manifest.m3u8
: Die primäre Playlist für einen HLS-Mediastream. 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-Variantemedia-hd0000000000.ts
: HD-Videosegmentdatei
media-sd.m3u8
: Playlist für die SD-Variantemedia-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-Segmentdateivideo-only-hd0000000000.m4s
: Nur-HD-Video-Segmentsegmentdateivideo-only-sd0000000000.m4s
: Nur-SD-Video-Segmentdatei
sd.mp4
: Eigenständige SD-Videodateihd.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 Sie anwenden können vor der Transcodierungsphase eines Jobs in ein Video. Sie können die Daten zuschneiden oder Padding als Teil dieser Konfiguration.
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
- Kurzanleitung ansehen
- Weitere Informationen zum Ausführen von Transcoder API-Tasks.