Speichern komprimierter Medien in AVI-Dateien (Microsoft Media Foundation)

Jeder Inhalt, den Sie mithilfe des Windows Medienaudio- und Videocodecs komprimieren, muss in einem Containerformat vorliegen. Eines der beliebtesten Formate ist Audio Video Interleave oder AVI. Sie können Microsoft Video für Windows (VfW) oder Microsoft DirectShow verwenden, um AVI-Dateien zu erstellen. Weitere Informationen zur Verwendung von Video für Windows oder DirectShow finden Sie in der Produktdokumentation auf MSDN.

Die Windows Medienaudio- und Videocodecs wurden entwickelt, um die Eigenschaften des Advanced Systems Format (ASF) zu verwenden. Dabei handelt es sich um den Container, der von Windows Media verwendet wird. Da AVI und ASF Inhalte unterschiedlich speichern, treten einige Probleme beim Speichern von Inhalten auf, die mit den Windows Medienaudio- und Videocodecs in einer AVI-Datei komprimiert sind.

Die Windows Media Audio-Codecs komprimieren Audioinhalte so, dass sie ohne Zeitstempel für die einzelnen Beispiele nicht ordnungsgemäß dekomprimiert werden können. Dies ermöglicht eine Optimierung auf den komprimierten Medien. Da der ASF-Container Zeitstempel mit allen Stichproben beibehält, hat dieses Merkmal der Audioalgorithmen immer gut funktioniert.

AVI-Dateien behalten jedoch keine Zeitstempel mit Stichproben bei. Dies bedeutet, dass Windows Medienaudioinhalte nicht ordnungsgemäß dekomprimiert werden können, wenn sie in einer AVI-Datei gespeichert werden. Windows Medienvideoinhalte haben diese Einschränkung nicht und können in AVI-Dateien enthalten sein. Zum Codieren Windows Medienvideoinhalts in eine AVI-Datei mit synchronisiertem Sound müssen Sie einen anderen Audiocodec verwenden.

Das andere Problem bei der Verwendung einer AVI-Datei als Container für Windows Medien betrifft Videos mit niedriger Bitrate. Eine der Möglichkeiten, wie die Windows Media Video-Codecs Videoinhalte für niedrige Bitraten erzeugen, besteht darin, doppelte Frames zu löschen. Wenn Sie Windows Media Video-Inhalt in einer ASF-Datei speichern möchten, müssen Sie den Encoder so festlegen, dass Dummyframes für doppelte Frames übermittelt werden (legen Sie MFPKEY _ PRODUCEDUMMYFRAMES auf VARIANT _ TRUE fest), damit jeder Frame in der Datei dargestellt wird. Die vom Codec erzeugten Dummyframes haben eine Größe von 8 Bytes. Der vom AVI-Multiplexer in die Datei geschriebene Frame kann jedoch Hunderte von Bytes größer und mit zufälligen Daten gefüllt sein. Eine auf diese Weise vorgenommene AVI-Datei kann weiterhin wiedergegeben werden, ist aber viel größer als erwartet. Sie können dieses Problem vermeiden, indem Sie beim Codieren von Videos für die Speicherung in AVI-Dateien höhere Bitraten verwenden.

Windows Media-Codecs