ASF-Mediensenken

Die ASF-Mediensenke ist die letzte Komponente in der Codierungspipeline, mit der eine Anwendung eine ASF-Datei schreiben kann.

Media Foundation bietet zwei Arten von ASF-Mediensenken:

  • Die ASF-Dateisenke wird verwendet, um ASF-Mediendaten in einer Datei zu archivieren.
  • ASF-Streamingsenke wird verwendet, um ASF-Inhalte in einen Bytedatenstrom zu schreiben, der über das Netzwerk gestreamt werden kann.

ASF-Mediensenken enthalten mindestens eine Streamsenke, die die Daten darstellt, die für jeden Stream in der ASF-Ausgabedatei geschrieben werden sollen. Für Codierungsanwendungen, die unter Windows Vista ausgeführt werden, müssen Sie die Codierungstopologie manuell konfigurieren, indem Sie die ASF-Mediensenke erstellen und konfigurieren und sie dann der Topologie hinzufügen. Wenn Sie in Windows 7 die Objekte für schnelle Transcodierung verwenden, um die Topologie zu erstellen, haben Sie die Mediensenke nicht direkt erstellt, und die Anwendung ruft keine Methoden für die Mediensenke oder eine der Streamsenken auf. Die schnellen Transcodierungsobjekte instanziieren die erforderlichen Mediensenken und fügen sie der Topologie hinzu, bevor ein Verweis auf die Aufruferanwendung zurückgegeben wird. Für objekte mit schnellem Transcode gelten jedoch einige Einschränkungen, die je nach Codierungstyp gelten.

ASF-Mediensenke-Objektmodell

ASF-Mediensenken implementieren die IMFMediaSink-Schnittstelle und machen die folgenden Schnittstellen verfügbar. Eine Anwendung kann einen Verweis auf diese Schnittstellen abrufen, indem sie QueryInterface in der ASF-Mediensenke aufruft, die sie zum Generieren von Ausgabebeispielen verwendet.

Schnittstelle BESCHREIBUNG
IMFMediaSink Erforderlich für alle Mediensenken.
IMFFinalizableMediaSink Wird von der ASF-Dateisenke implementiert, die den generierten Medieninhalt in eine Datei schreibt. Sie können die Methoden auf dieser Schnittstelle verwenden, um Daten zu leeren und das ASF-Headerobjekt der endgültigen Ausgabedatei zu aktualisieren.
IMFClockStateSink Empfängt Zustandsänderungsbenachrichtigungen von der Präsentationsuhr.
IMFASFContentInfo Das ASF ContentInfo-Objekt ist ein Objekt auf WMContainer-Ebene, in dem hauptsächlich ASF-Headerobjektinformationen gespeichert werden. Dies wird verwendet, um ASF-Mediensenken zu erstellen.
IMFMetadata Wird verwendet, um die Metadaten für die ASF-Datei zu beschreiben.
IMFMetadataProvider Ruft eine Sammlung von Metadaten ab, entweder für eine gesamte Präsentation oder für einen Stream in der Präsentation.

 

ASF-Dateisenke

Die ASF-Dateisenke ist eine Implementierung von IMFMediaSink , die von Media Foundation bereitgestellt wird und mit der eine Anwendung ASF-Mediendaten in einer Datei archivieren kann.

Sie müssen Methoden für die Dateisenke oder eine ihrer Streamsenken erstellen, konfigurieren und aufrufen, wenn Sie die Pipelineebenenobjekte zum Schreiben einer neuen ASF-Datei verwenden. Nach dem Konfigurieren der Dateisenke können Sie sie der Codierungspipeline hinzufügen.

Im Folgenden finden Sie die allgemeinen Schritte für die Verwendung der ASF-Dateisenke:

  1. Erstellen Sie die Dateisenke im Prozess oder out-of-Process.
  2. Konfigurieren Sie die Dateisenke mit allen Datenströmen, Codierungseigenschaften und Metadateninformationen.
  3. Ordnen Sie die Dateisenke dem Ausgabetopologieknoten zu, indem Sie entweder die Streamsenken auflisten oder die Datenstromnummern mit in der Senke nachverfolgen.

Die folgenden Themen enthalten ausführliche Informationen zum Arbeiten mit der ASF-Dateisenke:

ASF-Komponenten auf Pipelineebene

ASF-Unterstützung in Media Foundation