Codieren von Video- und Audiodaten mit Media Services

Media Services-Logo v3


Warnung

Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.

Tipp

Möchten Sie Miniaturansichten generieren, zwei Videos zusammenfügen, Subclips für ein Video erstellen, das Video drehen oder andere Aktionen ausführen? Sie finden Media Services-Beispielcode auf der Seite Beispiele.

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.

Transformationen und Aufträge

Wichtig

Bei Media Services erfolgt keine Abrechnung für Aufträge, die aufgrund von Fehlern abgebrochen wurden. 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. Daraus ergibt sich eine sogenannte Codierungsleiter, also eine Tabelle mit Auflösungen und Bitraten. (Lesen Sie dazu den Artikel Codieren mit einer automatisch generierten Reihe von Bitraten-/Auflösungspaaren oder verwenden Sie die Voreinstellung für die inhaltsbezogene Codierung.) 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.

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 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.

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.

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: unterstützt die adaptive Bitratencodierung H.264. Weitere Informationen finden Sie unter Automatisches Generieren einer Reihe von Bitraten-/Auflösungspaaren.

  • EncoderNamedPreset.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. Erzeugt mithilfe der inhaltsbezogenen Codierung verschiedene GOP-orientierte MP4s. 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. Mit dieser Voreinstellung werden nur Ausgaben bis zu 1080p HD erzeugt. Wenn eine 4K-Ausgabe erforderlich ist, können Sie die Voreinstellung mit PresetConfigurations konfigurieren, indem Sie die Eigenschaft „maxHeight“ verwenden. Weitere Informationen finden Sie unter Inhaltsbezogene Codierung.

  • EncoderNamedPreset.H265ContentAwareEncoding: Stellt eine Voreinstellung für die inhaltsbezogene HEVC (H.265)-Codierung zur Verfügung. Erzeugt mithilfe der inhaltsbezogenen Codierung verschiedene GOP-orientierte MP4s. 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. Mit dieser Voreinstellung können Ausgaben bis zu 4K HD erzeugt werden. Wenn eine 8K-Ausgabe erforderlich ist, können Sie die Voreinstellung mit PresetConfigurations konfigurieren, indem Sie die Eigenschaft „maxHeight“ verwenden.

  • 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 6750 KBit/s und einer Bildhöhe von 1080 Pixeln codiert wird, während die Stereo-Audiodaten mit dem AAC-LC-Codec mit 128 KBit/s codiert werden. Wenn Sie niedrigere Bitraten für Audio wünschen, können Sie eine benutzerdefinierte Codierungsvoreinstellung in Ihrer Transformation erstellen und die Samplingrate oder Kanalanzahl anpassen, um auf niedrigere Werte für AAC-LC zu gelangen.

  • EncoderNamedPreset.H264SingleBitrate720p: Erzeugt eine MP4-Datei, bei der das Video mit dem H.264-Codec mit 4500 KBit/s und einer Bildhöhe von 720 Pixeln codiert wird, während die Stereo-Audiodaten mit dem AAC-LC-Codec mit 128 KBit/s codiert werden. Wenn Sie niedrigere Bitraten für Audio wünschen, können Sie eine benutzerdefinierte Codierungsvoreinstellung in Ihrer Transformation erstellen und die Samplingrate oder Kanalanzahl anpassen, um auf niedrigere Werte für AAC-LC zu gelangen.

  • EncoderNamedPreset.H264SingleBitrateSD: Erzeugt eine MP4-Datei, bei der das Video mit dem H.264-Codec mit 2200 KBit/s und einer Bildhöhe von 480 Pixeln codiert wird, während die Stereo-Audiodaten mit dem AAC-LC-Codec mit 128 KBit/s codiert werden. Wenn Sie niedrigere Bitraten für Audio wünschen, können Sie eine benutzerdefinierte Codierungsvoreinstellung in Ihrer Transformation erstellen und die Samplingrate oder Kanalanzahl anpassen, um auf niedrigere Werte für AAC-LC zu gelangen.

  • 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.

Benutzerdefinierte Voreinstellungen

Media Services unterstützt die vollständige Anpassung aller Werte in Voreinstellungen zum Erfüllen Ihrer spezifischen Codierungsanforderungen.

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.

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

Für Konten, die in der Version 2020-05-01 oder höher der API ü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.

Codierungsbeispiele

Sehen Sie sich die umfangreiche Liste der Codierungsbeispiele an.

Anfordern von Hilfe und Support

Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen: