AVI Mux-Filter

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Der AVI Mux-Filter akzeptiert mehrere Eingabedatenströme und überträgt sie in das AVI-Format. Der Filter verwendet separate Eingabepins für jeden Eingabestream und einen Ausgabenadel für den AVI-Stream.

Videoaufzeichnungs- oder Erstellungsanwendungen können diesen Filter verwenden, um Dateien auf dem Datenträger im AVI-Format zu speichern. Der Filter ist in der Regel mit dem Dateischreiberfilter verbunden, kann jedoch eine Verbindung mit jedem Filter herstellen, dessen Eingabenadel die IStream- und IMemInputPin-Schnittstellen unterstützt.

Bezeichnung Wert
Filterschnittstellen IBaseFilter, IConfigAviMux, IConfigInterleaving, IMediaSeeking, IPersistMediaPropertyBag, ISpecifyPropertyPages
Eingabeheftmedientypen Jeder Haupttyp, der einem FOURCC im alten Stil entspricht, oder MEDIATYPE_AUXLine21Data. (Weitere Informationen finden Sie unter FOURCCMap-Klasse.)
  • Wenn der Haupttyp MEDIATYPE_Audio ist, muss das Format FORMAT_WaveFormatEx sein.
  • Wenn der Haupttyp MEDIATYPE_Video ist, muss das Format FORMAT_VideoInfo oder FORMAT_DvInfo sein.
  • Wenn der Haupttyp MEDIATYPE_Interleaved ist, muss das Format FORMAT_DvInfo sein.
Eingabenadelschnittstellen IAMStreamControl, IMemInputPin, IPin, IPropertyBag, IQualityControl
Ausgabeheftmedientypen MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Ausgabepinschnittstellen IPin, IQualityControl
CLSID filtern CLSID_AviDest
Eigenschaftenseite CLSID CLSID_AviMuxProptyPage, CLSID_AviMuxProptyPage1
Ausführbare Datei qcap.dll
Verdienst MERIT_DO_NOT_USE
Filterkategorie CLSID_LegacyAmFilterCategory

 

Bemerkungen

Die folgenden Hinweise beschreiben verschiedene Aspekte der Funktionalität des AVI Mux-Filters.

Pins

Wenn der AVI Mux-Filter erstellt wird, verfügt er über einen Eingabenadel. Wenn jeder Eingabenadel verbunden ist, erstellt der Filter einen neuen Eingabenadel.

Streameigenschaften

Die Eingabepins unterstützen die IPropertyBag-Schnittstelle zum Festlegen von Eigenschaften für einzelne Streams. Derzeit ist die folgende Eigenschaft definiert:

Eigenschaft BESCHREIBUNG
name Der Name des Datenstroms. Diese Eigenschaft wird als 'strn' Block geschrieben.

 

Wenn der Filter ausgeführt oder angehalten wird, gibt die IPropertyBag::Write-Methode VFW_E_WRONG_STATE zurück.

Bildraten

Wenn der Upstream-Filter keine Bildfrequenz im AvgTimePerFrame-Member der VIDEOINFOHEADER-Struktur angibt, verwendet AVI Mux die Zeitstempel für den ersten Videoframe. Das AVI-Dateiformat unterstützt keine variablen Frameraten.

Gelöschte Frames

Der AVI Mux-Filter berechnet gelöschte Frames basierend auf den Medienzeiten der einzelnen Stichproben, sofern verfügbar, oder auf der Grundlage der Zeitstempel der Stichprobe. Es schreibt einen Indexeintrag der Länge null für jeden gelöschten Frame.

IMediaSeeking

Der AVI Mux-Filter implementiert die IMediaSeeking-Schnittstelle wie folgt:

  • Die GetCurrentPosition-Methode gibt den aktuellen Fortschritt des Multiplexings zurück. Wenn Sie eine Datei transcodieren (langsamer als Echtzeit), ist dieser Wert genauer als der vom Filter Graph-Manager zurückgegebene Wert. Weitere Informationen finden Sie im Abschnitt Hinweise der Referenzseite GetCurrentPosition.
  • Die GetDuration-Methode fragt jeden Upstream Filter ab und gibt die Dauer des längsten Datenstroms zurück. Wenn einer dieser Filter beim GetDuration-Aufruf fehlschlägt (oder IMediaSeeking nicht unterstützt), gibt der AVI Mux einen Fehlercode zurück und füllt den pDuration-Parameter mit der längsten gefundenen Dauer aus. Der Wert von pDuration ist in diesem Fall jedoch nicht unbedingt die Länge des längsten Eingabedatenstroms.
  • Avi Mux implementiert die Methoden GetStopPosition, GetPositions, GetAvailable, GetRate oder GetPreroll nicht. es implementiert auch keine Set*-Methoden für die Suche.

AVI 2.0-Dateiformaterweiterungen

DirectShow unterstützt derzeit die folgenden AVI 2.0-Dateiformaterweiterungen:

  • Erhöhte AVI-Dateigröße (größer als 1 GB)
  • Hierarchische Indizierung

Weitere Informationen finden Sie unter Version 1.02 der OpenDML AVI-Dateiformaterweiterungen, die vom OpenDML AVI M-JPEG-Dateiformatunterausschuss veröffentlicht wurden.

DirectShow-Filter