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

Alle Inhalte, die Sie mit den Windows Media Audio- und Videocodecs komprimieren, müssen ein Containerformat haben. 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.

Die Windows Media Audio- und Video-Codecs wurden entwickelt, um die Eigenschaften des Advanced Systems Format (ASF) zu verwenden, des von Windows Media verwendeten Containers. Da AVI und ASF Inhalte unterschiedlich speichern, treten beim Speichern von Inhalten, die mit den Windows Media Audio- und Video-Codecs in einer AVI-Datei komprimiert wurden, Schwierigkeiten auf.

Die Windows Media Audio-Codecs komprimieren Audioinhalte so, dass sie nicht ordnungsgemäß ohne Zeitstempel für die einzelnen Samples dekomprimiert werden können. Dies ermöglicht einige Optimierungen in den komprimierten Medien. Da der ASF-Container bei allen Samples Zeitstempel beibehält, hat diese Eigenschaft der Audioalgorithmen immer gut funktioniert.

AVI-Dateien behalten jedoch keine Zeitstempel bei Samples bei. Dies bedeutet, dass Windows Media Audio-Inhalte nicht ordnungsgemäß dekomprimiert werden können, wenn sie in einer AVI-Datei gespeichert sind. Windows Media Video-Inhalte haben diese Einschränkung nicht und können in AVI-Dateien enthalten sein. Um Windows Media Video-Inhalte mit synchronisiertem Sound in eine AVI-Datei zu codieren, müssen Sie einen anderen Audio-Codec verwenden.

Das andere Problem bei der Verwendung einer AVI-Datei als Container für Windows Media betrifft Videos mit niedriger Bitrate. Eine der Methoden, mit denen die Windows Media Video-Codecs Videoinhalte für niedrige Bitraten erzeugen, besteht darin, doppelte Frames zu löschen. Wenn Sie Windows Media Video-Inhalte in eine ASF-Datei einfügen möchten, müssen Sie den Encoder so festlegen, dass Dummy-Frames für doppelte Frames bereitgestellt werden (setzen Sie MFPKEY_PRODUCEDUMMYFRAMES auf VARIANT_TRUE), damit jeder Frame in der Datei repräsentiert wird. Die vom Codec erzeugten Dummy-Frames sind 8 Byte groß. Der Frame, der vom AVI-Multiplexer in eine Datei geschrieben wird, kann jedoch Hunderte von Bytes größer und mit allen möglichen Daten gefüllt sein. Eine AVI-Datei, die auf diese Weise erstellt wurde, ist weiterhin abspielbar, 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