0FFmpeg LogoDie ultimative Codec-Führer

Wie Windows verwaltet Spiel Multimedia

Automatisches Verhalten von Windows

Wenn eine Datei unter Windows abgespielt wird, Mit den meisten Player-Programmen kann Windows die Wiedergabe einfach ausführen (Eine Ausnahme bildet Media Player Classic Home Cinema).  Windows wählt automatisch einen geeigneten Splitter aus, um den Container zu „teilen“, und wählt dann die geeigneten Decoder aus, um jeden der Streams zu decodieren. Jeder decodierte Stream wird dann an eine Endstufe gesendet, die als Renderer bekannt ist. Der Splitter, Decoder und Renderer werden als Filter bezeichnet und manchmal als Codecs bezeichnet. Der Begriff Codec wird mehrfach verwendet, wird aber im Allgemeinen verwendet, um ein Programm zu bezeichnen, das entweder Codierung oder Decodierung ausführen kann. In diesem Handbuch wird der Begriff Codec verwendet, um vollständige Softwarepakete zu bezeichnen, Dies kann mehrere Filter enthalten und mehrere Stream-Typen unterstützen. Jeder Filter ist eine eigenständige Einheit, Wird normalerweise in einer .ax-Datei im Ordner system32 gespeichert. Der Prozess der Auswahl des Splitters, Decoder und Renderer werden als Erstellen eines Diagramms bezeichnet. Es stehen Dienstprogramme zur Verfügung, mit denen Sie sehen können, welche Diagramme Windows für eine bestimmte Datei erstellt, sowie die Erstellung benutzerdefinierter Diagramme zum Testen der Wiedergabe

Ren-der-ten

Renderer sind die letzte Stufe des Diagramms; und sind die Schnittstelle zwischen den decodierten Streams und der Hardware, die den Stream ausgibt - zum Beispiel den Grafikkartentreibern, oder die Soundkartentreiber. Sie verwalten, wie die Ausgabe in das Windows-System passt. So können Sie beispielsweise ein Video in einem Fenster wiedergeben (als auf Vollbild gegen) und haben auch ein anderes Programm geöffnet. Windows muss wie groß sein, um das Video anzuzeigen, und wo auf dem Bildschirm. Möglicherweise verschieben Sie auch ein anderes Programm oder Fenster teilweise vor das Video, und Windows muss wissen, dass dieser Teil des Videos verworfen werden soll. Dies alles wird von den Renderern verwaltet.

[google_adsense]

Hardware-Dekodierung

Historisch gesehen wurde die gesamte Dekodierung von der CPU.  Die CPU ist sehr flexibel gestaltet, was bedeutet, dass es jede Aufgabe übernehmen kann, ist aber bei nichts besonders effizient. Die Zunahme von HD-Videoinhalten, deren Dekodierung eine erhebliche Verarbeitung erfordert, hat zu einer Nachfrage nach effizienterer Videodekodierungshardware geführt. Alle modernen Grafikkarten enthalten jetzt ein gewisses Maß an "Hardware-Dekodierung" der 3 BluRay-Codierungsstandards (mpeg2, h.264, VC1).  Der Grad der Unterstützung variiert, aber mit jeder neuen Hardwaregeneration werden mehr Standards unterstützt. Die neueste Generation von CPUs von Intel enthält jetzt auch dedizierte Decodierungshardware, die die Hauptteile der CPU freigibt CPU für andere Aufgaben, und reduziert den Stromverbrauch. Engagiert GPU und CPU Die Hardware-Dekodierung kann nur verwendet werden, wenn der zur Dekodierung verwendete Codec die Hardware-Dekodierung unterstützt. Der Grad der Unterstützung für diese Funktion ist variabel, aber es wächst, und einige der kostenlosen Codecs bieten gute Unterstützung. Die Codecs, die Microsoft mit Windows bereitstellt, bieten ebenfalls Unterstützung. Das System der Hardwarebeschleunigung ist allgemein bekannt als DXVA (DirectX-Videobeschleunigung).  Viele neuere dedizierte Hardware-Decoder unterstützen auch verschiedene Bildverbesserungsfunktionen.

In vielen Fällen, Die Hardware-Dekodierung ist mit der Verwendung von Untertiteln nicht kompatibel, je-, DXVA mit Untertiteln ist über die kostenlosen Open-Source-Testversionen von FFDshow möglich.

Raw-Stream-Ausgabe

In einigen Fällen ist kein Decoder erforderlich. Einige Audiodaten auf Blu-Ray-Festplatten sind nicht komprimiert und können ohne Decoder direkt vom Splitter an den Renderer gesendet werden. Darüber hinaus, Viele Heimkino-Verstärker verfügen über digitale Anschlüsse (SPDIF oder HDMI) und haben ihre eigenen Hardware-Decoder für die 2 führende Systeme: Dolby und DTS. Wenn Sie einen Verstärker haben, der Hardware-Decodierung unterstützt, möchten Sie möglicherweise den Audio-Stream codiert lassen und den codierten Stream zur Decodierung an den Verstärker senden. Dazu muss der Stream vom Splitter an die entsprechende Hardware gesendet werden (entweder eine Soundkarte im Fall des SPDIF, oder die Grafikkarte für HDMI).  Dieser Stream muss korrekt gesendet werden, damit die Hardware ihn über die digitale Verbindung ausgeben kann. Dazu ist noch ein Filter erforderlich, Der Filter dekodiert den Stream jedoch nicht. Der am häufigsten verwendete Codec für diesen Zweck heißt ac3filter.

Video ist normalerweise nie roh und erfordert daher immer einen Decoderfilter. Es muss auch den Renderer passieren. Untertitelinformationen werden auch zum Rendern über dem Video an den Renderer übergeben.

Neues Codec-System in Vista

Das System, mit dem Windows alle diese Filter verwaltet, heißt DirectShow. Die überwiegende Mehrheit der Filter entspricht den DirectShow-Standards. Allerdings, mit Windows Vista, Microsoft hat ein neues System namens Media Foundation eingeführt. Dieses neue System läuft parallel zu DirectShow, hat aber Vorrang. Microsoft hat seit Vista Media Foundation-Codecs in alle Windows-Versionen aufgenommen, und wenn eine Datei abgespielt wird, Windows versucht, die Media Foundation-Codecs zum Abspielen der Datei zu verwenden. Dies hat die Verwendung alternativer Codecs erschwert.

Sie konnten auch mögen ...

Hinterlasse eine Antwort