Codieren von Video- und Audiodaten mit Media Services

Media Services-Logo v3


Der Begriff Codierung beschreibt in Media Services den Prozess der Konvertierung von Dateien, die digitale Video- und/oder Audiodateien enthalten, von einem Format in ein anderes Format. Ziel ist es, (a) die Größe der Dateien zu verringern und/oder (b) ein Format zu erzeugen, das mit einer Vielzahl von Geräten und Anwendungen kompatibel ist. Dieser Prozess wird auch als Videokomprimierung oder Transcodierung bezeichnet. Weitere Erläuterungen zu diesem Konzept finden Sie unter Datenkomprimierung und Was bedeutet Codierung und Transcodierung?.

Videos werden in der Regel durch einen progressiven Download oder per Adaptive Bitrate Streaming an Geräte und Apps übermittelt.

Wichtig

Bei Media Services erfolgt keine Abrechnung für abgebrochene oder fehlerhafte Aufträge. Beispielsweise wird ein Auftrag, der einen Status von 50 % erreicht hat und abgebrochen wird, nicht mit 50 % der Auftragsminuten berechnet. Ihnen werden nur abgeschlossene Aufträge in Rechnung gestellt.

  • Zur Bereitstellung mittels progressivem Download können Sie Azure Media Services zum Konvertieren einer digitalen Mediendatei (Mezzanine) in eine MP4-Datei verwenden. Diese enthält das Video, das mit dem H.264-Codec codiert wurde, sowie die Audiodatei, die mit dem AAC-Codec codiert wurde. Diese MP4-Datei wird in ein Medienobjekt in Ihrem Speicherkonto geschrieben. Sie können die Azure Storage-APIs oder -SDKs verwenden (z.B. Storage-REST-API oder .NET SDK), um die Datei direkt herunterzuladen. Wenn Sie das Ausgabemedienobjekt mit einem bestimmten Containernamen im Speicher erstellt haben, verwenden Sie die diesen Speicherort. Andernfalls können Sie Media Services verwenden, um die Medienobjektcontainer-URLs aufzulisten.
  • Die Mezzanine-Datei muss mit mehreren Bitraten (hoch bis niedrig) codiert werden, um Inhalte für die Übermittlung durch das Adaptive Bitrate Streaming vorzubereiten. Um eine gleichmäßige Qualitätsabnahme zu gewährleisten, wird mit sinkender Bitrate auch die Auflösung des Videos verringert. Dies führt zu einer sogenannten „Codierungsleiter“ – einer Tabelle mit Auflösungen und Bitraten. Weitere Informationen hierzu erhalten Sie unter Codieren mit einer automatisch generierten Reihe von Bitraten-/Auflösungspaaren. Sie können mithilfe von Media Services Ihre Mezzanine-Dateien mit verschiedenen Bitraten codieren. Auf diese Weise erhalten Sie einen Satz MP4-Dateien und zugehörige Konfigurationsdateien für das Streaming, die in ein Medienobjekt in Ihrem Speicherkonto geschrieben werden. Sie können dann die Funktion Dynamische Paketerstellung in Media Services verwenden, um das Video über Streamingprotokolle wie MPEG-DASH oder HLS bereitzustellen. Dazu müssen Sie einen Streaminglocator und Streaming-URLs erstellen, die dem unterstützten Protokoll entsprechen. Dieses kann dann je nach Funktionen von Geräten/Apps an diese übergeben werden.

Das folgende Diagramm zeigt den Workflow für bedarfsgesteuerte Codierung mit der dynamischen Paketerstellung.

Workflows für On-Demand-Streaming mit dynamischer Paketerstellung

In diesem Thema erhalten Sie Anleitungen zum Codieren Ihrer Inhalte mit Media Services v3.

Transformationen und Aufträge

Um mit Media Services v3 codieren zu können, müssen Sie eine Transformation und einen Auftrag erstellen. Die Transformation definiert eine Anweisung für die Codierungseinstellungen und -ausgaben. Der Auftrag ist eine Instanz der Anweisung. Weitere Informationen finden Sie unter Transformationen und Aufträge.

Bei der Codierung mit Media Services verwenden Sie Voreinstellungen, um dem Encoder mitzuteilen, wie die eingegebenen Mediendateien verarbeitet werden sollen. In Media Services v3 verwenden Sie den Standard-Encoder zum Codieren Ihrer Dateien. Beispielsweise können Sie die gewünschte Videoauflösung und/oder die Anzahl der Audiokanäle für den codierten Inhalt angeben.

Mit einer der empfohlenen integrierten Voreinstellungen basierend auf in der Branche bewährten Vorgehensweisen können Sie schnell einsteigen. Alternativ können Sie eine benutzerdefinierte Voreinstellung für Ihr spezielles Szenario oder Ihre Geräteanforderungen erstellen. Weitere Informationen finden Sie unter Codieren mit einer benutzerdefinierten Transformation.

Ab Januar 2019 wird bei der Codierung mit dem Standard-Encoder zum Erzeugen von MP4-Dateien eine neue MPI-Datei generiert und dem Ausgabeasset hinzugefügt. Diese MPI-Datei dient zum Verbessern der Leistung für die dynamische Paketerstellung und Streamingszenarios.

Hinweis

Sie sollten die MPI-Datei nicht ändern oder entfernen und auch keine Abhängigkeiten vom Vorhandensein (oder Nichtvorhandensein) einer solchen Datei in Ihren Dienst integrieren.

Erstellen einer Auftragseingabe aus einer HTTPS-URL

Wenn Sie Aufträge zur Verarbeitung von Videos übermitteln, müssen Sie Media Services mitteilen, wo sich das Eingabevideo befindet. Eine der Optionen ist die Angabe einer HTTPS-URL als Auftragseingabe. Media Services v3 unterstützt aktuell keine segmentierte Übertragungscodierung über HTTPS-URLs.

Beispiele

Erstellen einer Auftragseingabe aus einer lokalen Datei

Das Eingabevideo kann als Media Service-Medienobjekt gespeichert werden. In diesem Fall erstellen Sie ein Eingabemedienobjekt basierend auf einer Datei (die lokal oder in Azure Blob Storage gespeichert ist).

Beispiele

Codieren einer lokalen Datei mithilfe von integrierten Voreinstellungen

Erstellen von Auftragseingaben mithilfe von Subclips

Beim Codieren eines Videos können Sie ebenfalls angeben, dass die Quelldatei zugeschnitten oder in Subclips unterteilt werden soll. Dadurch erzeugen Sie eine Ausgabe, die nur den gewünschten Teil des Eingabevideos enthält. Dies funktioniert mit jeder Transformation, die entweder mit den BuiltInStandardEncoderPreset-Voreinstellungen oder mit den StandardEncoderPreset-Voreinstellungen erstellt wird.

Sie können angeben, dass ein Auftrag mit einem einzelnen Clip eines On-Demand-Videos oder aus einem Livearchiv (einem aufgezeichneten Ereignis) erstellt werden soll. Bei der Auftragseingabe kann es sich um ein Objekt oder um eine HTTPS-URL handeln.

Tipp

Wenn Sie einen Subclip Ihres Videos streamen möchten, ohne das Video erneut zu codieren, erwägen Sie das Vorfiltern von Manifesten mithilfe des dynamischen Packagers.

Beispiele

Beispiele finden Sie hier:

Integrierte Voreinstellungen

Media Services unterstützt die folgenden integrierten Codierungsvoreinstellungen:

BuiltInStandardEncoderPreset

BuiltInStandardEncoderPreset wird zum Festlegen einer integrierten Voreinstellung für die Codierung des Eingabevideos mit dem Standard-Encoder verwendet.

Die folgenden integrierten Voreinstellungen werden derzeit unterstützt:

  • EncoderNamedPreset.AACGoodQualityAudio: Erzeugt eine einzelne MP4-Datei, die nur mit 192 KBit/s codierte Stereo-Audiodaten enthält.

  • EncoderNamedPreset.AdaptiveStreaming (empfohlen): unterstützt die adaptive Bitratencodierung H.264. Weitere Informationen finden Sie unter Automatisches Generieren einer Reihe von Bitraten-/Auflösungspaaren.

  • EncoderNamerPreset.H265AdaptiveStreaming: ähnelt der Voreinstellung AdaptiveStreaming, verwendet aber den HEVC-Codec (H.265). Erzeugt mehrere auf GOP ausgerichtete MP4-Dateien mit Video- und Stereo-AAC-Audio für H.265. Generiert automatisch eine Reihe von Bitraten, die auf der eingegebenen Auflösung, der Bitrate und der Bildfrequenz basieren. Die automatisch generierte Voreinstellung wird nie höher als die eingegebene Auflösung sein. Wenn beispielsweise 720p eingegeben wird, bleibt die Ausgabe am besten auch bei 720p.

  • EncoderNamedPreset.ContentAwareEncoding: stellt eine Voreinstellung für die inhaltsbezogene H.264-Codierung zur Verfügung. Anhand der eingegebenen Inhalte versucht der Dienst, automatisch die optimale Anzahl von Ebenen, die geeignete Bitrate und die Auflösungseinstellungen für die Bereitstellung durch adaptives Streaming zu bestimmen. Die zugrunde liegenden Algorithmen werden im Laufe der Zeit weiter entwickelt. Die Ausgabe enthält MP4-Dateien mit überlappendem Video und Audio. Weitere Informationen finden Sie unter Inhaltsbezogene Codierung.

  • EncoderNamedPreset.H265ContentAwareEncoding: stellt eine Voreinstellung für die inhaltsbezogene HEVC-Codierung (H.265) zur Verfügung und erstellt durch die inhaltsbezogene Codierung eine Reihe von auf GOP ausgerichtete MP4-Dateien. Der Dienst führt eine einfache Erstanalyse für den Eingabeinhalt aus und ermittelt anhand der Ergebnisse die optimale Anzahl von Ebenen, die geeignete Bitrate und die Auflösungseinstellungen für die Bereitstellung durch adaptives Streaming. Diese Voreinstellung ist besonders effektiv für Videos mit geringer und mittlerer Komplexität, bei denen die Ausgabedateien mit niedrigeren Bitraten, aber in einer Qualität vorliegen, die dem Betrachter dennoch ein gutes Ergebnis bietet. Die Ausgabe enthält MP4-Dateien mit überlappendem Video und Audio.

    Hinweis

    Verwenden Sie unbedingt ContentAwareEncoding, nicht ContentAwareEncodingExperimental, da diese Voreinstellung jetzt veraltet ist.

  • EncoderNamedPreset.H264MultipleBitrate1080p: Erzeugt einen Satz aus acht MP4-Dateien mit GOP-Ausrichtung und Werten zwischen 6.000 KBit/s und 400 KBit/s sowie Stereo-AAC-Audio. Die Auflösung beginnt bei 1080p und reduziert sich auf 360p.

  • EncoderNamedPreset.H264MultipleBitrate720p: Erzeugt einen Satz aus sechs MP4-Dateien mit GOP-Ausrichtung und Werten zwischen 3.400 KBit/s und 400 KBit/s sowie Stereo-AAC-Audio. Die Auflösung beginnt bei 720p und reduziert sich auf 360p.

  • EncoderNamedPreset.H264MultipleBitrateSD: Erzeugt einen Satz aus fünf MP4-Dateien mit GOP-Ausrichtung und Werten zwischen 1.600 KBit/s und 400 KBit/s sowie Stereo-AAC-Audio. Die Auflösung beginnt bei 480p und reduziert sich auf 360p.

  • EncoderNamedPreset.H264SingleBitrate1080p: Erzeugt eine MP4-Datei, bei der das Video mit dem H.264-Codec mit 6.750 KBit/s und einer Bildhöhe von 1.080 Pixeln codiert wird, während die Stereo-Audiodaten mit dem AAC-LC-Codec mit 64 KBit/s codiert werden.

  • EncoderNamedPreset.H264SingleBitrate720p: Erzeugt eine MP4-Datei, bei der das Video mit dem H.264-Codec mit 4.500 KBit/s und einer Bildhöhe von 720 Pixeln codiert wird, während die Stereo-Audiodaten mit dem AAC-LC-Codec mit 64 KBit/s codiert werden.

  • EncoderNamedPreset.H264SingleBitrateSD: Erzeugt eine MP4-Datei, bei der das Video mit dem H.264-Codec mit 2.200 KBit/s und einer Bildhöhe von 480 Pixeln codiert wird, während die Stereo-Audiodaten mit dem AAC-LC-Codec mit 64 KBit/s codiert werden.

  • EncoderNamedPreset.H265SingleBitrate720P: erzeugt eine MP4-Datei, bei der das Video mit dem HEVC-Codec (H.265) mit 1800 KBit/s und einer Bildhöhe von 720 Pixeln codiert wird, während die Stereoaudiodaten mit dem AAC-LC-Codec mit 128 KBit/s codiert werden.

  • EncoderNamedPreset.H265SingleBitrate1080p: erzeugt eine MP4-Datei, bei der das Video mit dem HEVC-Codec (H.265) mit 3500 KBit/s und einer Bildhöhe von 1080 Pixeln codiert wird, während die Stereoaudiodaten mit dem AAC-LC-Codec mit 128 KBit/s codiert werden.

  • EncoderNamedPreset.H265SingleBitrate4K: erzeugt eine MP4-Datei, bei der das Video mit dem HEVC-Codec (H.265) mit 9500 KBit/s und einer Bildhöhe von 2160 Pixeln codiert wird, während die Stereoaudiodaten mit dem AAC-LC-Codec mit 128 KBit/s codiert werden.

Die aktuellste Liste der Voreinstellungen finden Sie unter Integrierte Voreinstellungen zum Codieren von Videos.

Informationen zur Verwendung der Voreinstellungen finden Sie unter Hochladen, Codieren und Streamen von Dateien.

StandardEncoderPreset

StandardEncoderPreset beschreibt die Einstellungen, die beim Codieren des Eingabevideos mit dem Standard-Encoder verwendet werden sollen. Verwenden Sie diese Voreinstellung, wenn Sie Transformationseinstellungen anpassen.

Überlegungen

Beim Erstellen von benutzerdefinierten Voreinstellungen gelten die folgenden Überlegungen:

  • Alle Werte für Höhe und Breite in AVC-Inhalten müssen ein Vielfaches von 4 sein.
  • In Azure Media Services v3 werden alle Codierungsbitraten in Bits pro Sekunde angegeben. Dies unterscheidet sich von den Voreinstellungen bei unseren v2-APIs. Dort wurden Kilobits pro Sekunde (KBit/s) als Einheit verwendet. Wenn beispielsweise die Bitrate in v2 als 128 (Kilobits/Sekunde) angegeben wurde, würde sie in v3 auf 128.000 (Bits/Sekunde) festgelegt.

Anpassen von Voreinstellungen

Media Services unterstützt die vollständige Anpassung aller Werte in Voreinstellungen zum Erfüllen Ihrer spezifischen Codierungsanforderungen. Beispiele zum Anpassen von Encodervoreinstellungen finden Sie in der nachstehenden Liste:

Beispiele

Voreinstellungsschemas

In Media Services v3 sind Voreinstellungen stark typisierte Entitäten in der API selbst. Die „Schema“-Definition für diese Objekte finden Sie in Offene API-Spezifikation (oder Swagger). Sie können die voreingestellten Definitionen (wie StandardEncoderPreset) auch in der REST-API, im .NET SDK oder eine andere Referenzdokumentation für das Media Services v3 SDK anzeigen.

Skalieren der Codierung in v3

Informationen zum Skalieren der Medienverarbeitung finden Sie unter Skalieren mit CLI. Für Konten, die in der Version 2020-05-01 der API oder über das Azure-Portal erstellt werden, sind Skalierungseinheiten und reservierte Einheiten für Medien nicht mehr erforderlich. Die Skalierung erfolgt automatisch und erfolgt intern durch den Dienst.

Abrechnung

Bei Media Services erfolgt keine Abrechnung für abgebrochene oder fehlerhafte Aufträge. Beispielsweise wird ein Auftrag, der einen Status von 50 % erreicht hat und abgebrochen wird, nicht mit 50 % der Auftragsminuten berechnet. Ihnen werden nur abgeschlossene Aufträge in Rechnung gestellt.

Weitere Informationen finden Sie unter Azure Data Lake Storage – Preise.

Fragen stellen, Feedback geben, Updates abrufen

Im Artikel Azure Media Services-Community finden Sie verschiedene Möglichkeiten, Fragen zu stellen, Feedback zu geben und Updates zu Media Services zu bekommen.

Nächste Schritte