Freigeben über


AVI Mux-Filter

[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

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

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

Etikett Wert
Filterschnittstellen IBaseFilter, IConfigAviMux, IConfigInterleaving, IMediaSeeking, IPersistMediaPropertyBag, ISpecifyPropertyPages
Eingabe-Pin-Medientypen Jeder Haupttyp, der einem alten FOURCC-Format entspricht, oder MEDIATYPE_AUXLine21Data. (Weitere Informationen finden Sie unter FOURCCMap-Klasse.)
  • Wenn der Haupttyp MEDIATYPE_Audio ist, muss das Format FORMAT_WaveFormatEx werden.
  • 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.
Eingabe-Pin-Schnittstellen IAMStreamControl, IMemInputPin, IPin, IPropertyBag, IQualityControl
Ausgabe-Pin-Medientypen MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Ausgabeheftschnittstellen IPin, IQualityControl
Filter CLSID CLSID_AviDest
Eigenschaftenseite CLSID CLSID_AviMuxProptyPage, CLSID_AviMuxProptyPage1
Ausführbar qcap.dll
Merit MERIT_DO_NOT_USE
Filterkategorie CLSID_LegacyAmFilterCategory

 

Bemerkungen

In den folgenden Anmerkungen werden verschiedene Aspekte der Funktionalität des AVI Mux-Filters beschrieben.

Stecknadeln

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

Stream-Eigenschaften

Die Eingabe-Pins unterstützen die IPropertyBag-Schnittstelle zum Festlegen von Eigenschaften für einzelne Datenströme. Derzeit wird die folgende Eigenschaft definiert:

Eigentum 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.

Bildfrequenzen

Wenn der Upstreamfilter 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.

Verworfene Frames

Der AVI-Mux-Filter berechnet verworfene Frames basierend auf den Medienzeiten der einzelnen Stichproben, falls verfügbar oder sonst die Zeitstempel des Beispiels. Er schreibt einen Indexeintrag der Länge Null für jeden verworfenen 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 Upstreamfilter ab und gibt die Dauer des längsten Datenstroms zurück. Wenn eines dieser Filter den GetDuration-Aufruf fehlschlägt (oder IMediaSeeking nicht unterstützt), gibt avi Mux einen Fehlercode zurück und füllt den pDuration Parameter mit der längsten Gefundenen Dauer aus. Der Wert pDuration- in diesem Fall ist jedoch nicht unbedingt die Länge des längsten Eingabedatenstroms.
  • Die AVI-Mux implementiert nicht die Methoden "GetStopPosition", "GetPositions", "GetAvailable", "GetRate" oder "GetPreroll"; 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 in Version 1.02 der "OpenDML AVI File Format Extensions", die vom OpenDML AVI M-JPEG File Format Subcommittee veröffentlicht wurden.

DirectShow-Filter