다음을 통해 공유


FOURCC 코드

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

많은 디지털 미디어 형식에는 FOURCC 코드가 할당되어 있습니다. FOURCC 코드는 4개의 ASCII 문자를 연결하여 만든 32비트 부호 없는 정수입니다. 예를 들어 YUY2 비디오의 FOURCC 코드는 'YUY2'입니다. 압축된 비디오 형식 및 비 RGB 비디오 형식(예: YUV)의 경우 BITMAPINFOHEADER 구조의 biCompression 멤버를 FOURCC 코드로 설정해야 합니다.

소스 코드에서 FOURCC 값을 더 쉽게 선언할 수 있는 다양한 C/C++ 매크로가 있습니다. 예를 들어 MAKEFOURCC 매크로는 Mmsystem.h에서 선언되고 FCC 매크로는 Aviriff.h에 선언됩니다. 다음과 같이 사용합니다.

DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');

또한 단순히 문자 순서를 반대로 하여 FOURCC 코드를 문자열 리터럴로 직접 선언할 수도 있습니다. 예를 들면 다음과 같습니다.

DWORD fccYUY2 = '2YUY';  // Declares the FOURCC 'YUY2'.

Microsoft Windows 운영 체제에서 little-endian 아키텍처를 사용하므로 순서를 취소해야 합니다. 'Y' = 0x59, 'U' = 0x55 및 '2' = 0x32 있으므로 '2YUY'는 0x32595559.

FOURCC 코드를 하위 형식 GUID로 변환

2*32 GUID 범위는 FOURC를 나타내기 위해 예약되어 있습니다. 이러한 GUID는 모두 FOURCC 코드인 양식 XXXXXXXX-0000-0010-8000-00AA00389B71XXXXXXXX 입니다. 따라서 YUY2의 하위 형식 GUID는 입니다 32595559-0000-0010-8000-00AA00389B71.

이러한 GUID의 대부분은 헤더 파일 Uuids.h에 이미 정의되어 있습니다. 예를 들어 YUY2 하위 형식은 MEDIASUBTYPE_YUY2 정의됩니다. DirectShow 기본 클래스 라이브러리는 FOURCC 코드를 GUID 값으로 변환하는 데 사용할 수 있는 도우미 클래스 FOURCCMap도 제공합니다. FOURCCMap 생성자는 FOURCC 코드를 입력 매개 변수로 사용합니다. 그런 다음 FOURCCMap 개체를 해당 GUID로 캐스팅할 수 있습니다.

FOURCCMap fccMap(FCC('YUY2'));
GUID g1 = (GUID)fccMap;

// Equivalent:
GUID g2 = (GUID)FOURCCMap(FCC('YUY2'));

오디오 하위 형식

비디오 하위 형식

코덱 작업