Übersicht über die Codierung in Media Foundation

Dieses Thema enthält eine Übersicht über die in Microsoft Media Foundation bereitgestellten Dateicodierungs-APIs.

Begriff

Codierung ist ein allgemeiner Begriff, der mehrere unterschiedliche Prozesse abdeckt:

  1. Codieren eines Audio- oder Videostreams in ein komprimiertes Format. Beispiel: Codieren eines Videostreams in H.264-Video.
  2. Multiplexing ("Muxing") einen oder mehrere Streams in einen einzelnen Bytestream. In der Regel werden die eingehenden Datenströme zuerst codiert. Dieser Schritt kann das Paketieren der codierten Datenströme umfassen.
  3. Schreiben eines multiplexten Bytestreams in eine Datei, z. B. in eine MP4- oder ASF-Datei (Advanced Systems Format). Alternativ kann der multiplexte Stream über das Netzwerk gesendet werden.

Das folgende Diagramm zeigt diese drei Prozesse:

Diagramm der Codierungs- und Multiplexingprozesse

Zu den Variationen dieses Prozesses gehören Transcodierung und Remuxing:

  • Transcodierung bedeutet, eine vorhandene Datei zu decodieren, die Streams neu zu codieren und die codierten Streams erneut zu multiplexen. Die Transcodierung kann durchgeführt werden, um eine Datei von einem Codierungstyp in einen anderen zu konvertieren. Beispielsweise, um H.264-Videos in Windows Media Video (WMV) zu konvertieren. Es kann auch getan werden, um die codierte Bitrate zu ändern. die Größe des Videoframes; die Bildfrequenz; oder andere Formatparameter.
  • Remultiplexing oder Remuxing bedeutet, eine Datei zu demultiplexieren und die Streams ohne Decodierungs-/Codierungsschritt neu zu multiplexen. Dies kann geschehen, um das Multiplexieren der Audio-/Videopakete zu ändern, einen Stream zu entfernen oder Datenströme aus zwei verschiedenen Quelldateien zu kombinieren.
  • Transrating ist ein Sonderfall der Transcodierung, bei dem die Bitrate ohne Änderung des Komprimierungstyps geändert wird. Beispielsweise können Sie eine Datei mit hoher Bitrate in eine niedrigere Bitrate konvertieren. Ein typisches Szenario, in dem transrating verwendet werden kann, ist die Synchronisierung von Medieninhalten von einem PC mit einem tragbaren Gerät. Wenn das tragbare Gerät keine hohe Bitrate unterstützt, wird die Datei möglicherweise übertragen, bevor sie auf das tragbare Gerät kopiert wird.

Das folgende Blockdiagramm zeigt den Transcodierungsprozess.

Diagramm des Transcodierungsprozesses

Das folgende Blockdiagramm zeigt den Remuxingprozess.

Diagramm des Remuxingprozesses

In dieser Dokumentation wird manchmal der Begriff Codierung verwendet, um transcodierung und Remuxing einzuschließen. Wenn es wichtig ist, zwischen ihnen zu unterscheiden, wird der Unterschied in der Dokumentation notiert.

Siehe auch: Media Foundation: Essential Concepts.

Media Foundation-Codierungsarchitektur

Auf der niedrigsten Ebene der Media Foundation-Architektur werden die folgenden Komponententypen für die Codierung verwendet:

  • Für die Transcodierung werden Medienquellen verwendet, um die Quelldatei zu demultiplexieren.
  • Für den Codierungsprozess werden Media Foundation-Transformationen verwendet, um Streams zu decodieren und zu codieren.
  • Für den Multiplexingprozess werden Mediensenken verwendet, um die Streams zu multiplexen und den multiplexten Stream in eine Datei oder ein Netzwerk zu schreiben.

Das folgende Diagramm zeigt den Datenfluss zwischen diesen Komponenten in einem Transcodierungsszenario:

Diagramm der komponenten, die bei der Transcodierung verwendet werden

Die meisten Anwendungen verwenden diese Komponenten nicht direkt. Stattdessen verwendet eine Anwendung APIs auf höherer Ebene, die diese Komponenten auf niedrigerer Ebene verwalten. Media Foundation bietet zwei APIs auf höherer Ebene für die Codierung:

Mediensitzung

Die Mediensitzung stellt eine End-to-End-Pipeline bereit, die Daten von der Medienquelle, über die Codecs und schließlich zur Mediensenke verschiebt. Die Anwendung steuert die Mediensitzung und empfängt status Ereignisse aus der Mediensitzung.

Quellleseprogramm und Senkenschreiber

Der Quellleser umschließt die Medienquelle und optional die Decoder. Es liefert entweder codierte oder decodierte Beispiele für die Anwendung. Der Senkenschreiber umschließt die Mediensenke und optional die Encoder. Die Anwendung übergibt Beispiele an den Senkenschreiber.

Das folgende Diagramm zeigt die Mediensitzung:

Diagramm, das zeigt, wie die Mediensitzung die Transcodierung ausführt

Die Transcodierungs-API (das blau schattierte Feld) ist eine Gruppe von APIs, die in Windows 7 eingeführt wurden, die es einfacher machen, die Mediensitzung für die Codierung zu konfigurieren.

Das nächste Diagramm zeigt den Quellleser und senkenden Writer:

Diagramm, das die Transcodierung mit dem Quellleser und Senkenschreiber zeigt

Codierung und Dateierstellung

Media Foundation-Programmierung: Grundlegende Konzepte