Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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.]
Vielen digitalen Medienformaten sind FOURCC-Codes zugewiesen. Ein FOURCC-Code ist eine 32-Bit-ganzzahl ohne Vorzeichen, die durch Verketten von vier ASCII-Zeichen erstellt wird. Beispielsweise lautet der FOURCC-Code für YUY2-Video "YUY2". Bei komprimierten Videoformaten und nicht-RGB-Videoformaten (z. B. YUV) sollte das biCompression- Mitglied der BITMAPINFOHEADER- Struktur auf den FOURCC-Code festgelegt werden.
Es gibt verschiedene C/C++-Makros, die das Deklarieren von FOURCC-Werten im Quellcode vereinfachen. Beispielsweise wird das MAKEFOURCC Makro in Mmsystem.h deklariert, und das FCC Makro wird in Aviriff.h deklariert. Verwenden Sie sie wie folgt:
DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');
Sie können einen FOURCC-Code auch direkt als Zeichenfolgenliteral deklarieren, indem Sie die Reihenfolge der Zeichen umkehren. Zum Beispiel:
DWORD fccYUY2 = '2YUY'; // Declares the FOURCC 'YUY2'.
Das Umkehren der Reihenfolge ist erforderlich, da das Microsoft Windows-Betriebssystem eine kleine endische Architektur verwendet. 'Y' = 0x59, 'U' = 0x55 und '2' = 0x32, sodass "2YUY" 0x32595559 ist.
Konvertieren von FOURCC-Codes in Untertyp-GUIDs
Ein Bereich von 2*32 GUIDs ist für die Darstellung von FOURCCs reserviert. Diese GUIDs sind alle FormularXXXXXXXX-0000-0010-8000-00AA00389B71 wobei XXXXXXXX der FOURCC-Code ist. Daher ist die Untertyp-GUID für YUY2 32595559-0000-0010-8000-00AA00389B71.
Viele dieser GUIDs sind bereits in der Headerdatei "Uuids.h" definiert. Der Untertyp YUY2 wird beispielsweise als MEDIASUBTYPE_YUY2 definiert. Die DirectShow-Basisklassenbibliothek stellt außerdem eine Hilfsklasse FOURCCMapbereit, die zum Konvertieren von FOURCC-Codes in GUID-Werte verwendet werden kann. Der FOURCCMap--Konstruktor verwendet einen FOURCC-Code als Eingabeparameter. Anschließend können Sie das FOURCCMap--Objekt in die entsprechende GUID umwandeln:
FOURCCMap fccMap(FCC('YUY2'));
GUID g1 = (GUID)fccMap;
// Equivalent:
GUID g2 = (GUID)FOURCCMap(FCC('YUY2'));
Verwandte Themen