Verwenden des MPEG-2-Splitters

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

Hinweis

Ab Microsoft® Windows® XP ist der MPEG-2 Splitter-Filter veraltet. Verwenden Sie stattdessen den MPEG-2-Demultiplexer .

 

Der MPEG-2 Splitter-Filter unterstützt die Wiedergabe im Pullmodus von MPEG-2-Programmstreams, die mindestens einen der folgenden Streamtypen enthalten.

  • MPEG-2-Video
  • MPEG-2-Audio
  • Dolby AC-3-Audio codiert, wie für DVD-Video
  • LPCM-Audio (Linear Pulse Code Modulated) codiert, wie für DVD-Video

Eine Liste der Medientypen, die der MPEG-2-Splitter unterstützt, finden Sie unter MPEG-2 Splitter-Medientypen.

Der MPEG-2-Splitter analysiert keine Transportdatenströme. Verwenden Sie den MPEG-2 Demultiplexer-Filter für Transportstreams (nur Pushmodus).

Zeitstempel

Bei der Wiedergabe von MPEG-2-Programmstreams behandelt der MPEG-2 Splitter-Filter den ersten Systemuhrverweis, auf den er stößt, als Zeitursprung eines streams. Dies unterscheidet sich vom MPEG-1 Stream Splitter, der Präsentationszeitstempel verwendet. Die IAMParse::GetParseTime-Methode gibt die (möglicherweise geschätzte) Streamsystemuhrzeit für die verarbeiteten Daten zurück.

Wenn der MPEG-2-Splitterfilter auf ein Eingabebeispiel mit festgelegter Diskontinuitätseigenschaft trifft (die Diskontinuitätseigenschaft kann mithilfe von IMediaSample::SetDiscontinuity oder IMediaSample2::SetProperties festgelegt werden), überspringt er Daten, bis das erste Paket in den Daten gefunden wird, und passt seine Zeitstempel an, sodass der Systemuhrverweis (SCR) für dieses Paket als identisch mit der SCR-Zeit vor der Diskontinuität betrachtet wird. Wenn die SCR-Uhr entweder rückwärts springt oder um mehr als eine Sekunde nach vorne springt, wird dies (gemäß der MPEG-2-Datenstromspezifikation) auch als Uhrbruch behandelt, und die scheinbare Uhrabweichung wird von den Zeitstempeln subtrahiert, die an nachgeschaltete Filter übergeben werden.

Streamauswahl

Bei der Wiedergabe des MPEG-2-Programmstreams werden der erste Videostream und der erste Audiostream ausgewählt, der den Programmstream durchläuft. Es werden bis zu ein Audio- und ein Videoausgabepin unterstützt. Über die IAMStreamSelect-Schnittstelle können verschiedene Datenströme desselben Typs bis zu der anzahl ausgewählt werden, die durch den Audiogrenzwert im Systemheader angegeben ist. Für MPEG-2-Audio wird derzeit angenommen, dass die Streams einen zusammenhängenden Bereich ab Stream 0xC0 bilden.

Unterstützte Schnittstellen

Der MPEG-2-Splitterfilter unterstützt die folgenden Schnittstellen.

MPEG-2-Unterstützung in DirectShow