비디오 FOURC

많은 비디오 형식에는 FOURCC 코드가 할당되어 있습니다. FOURCC 코드는 4개의 ASCII 문자를 연결하여 만든 32비트 부호 없는 정수입니다. 예를 들어 YUY2 비디오의 FOURCC 코드는 'YUY2'입니다.

소스 코드에서 FOURCC 값을 선언하기 위해 다양한 C/C++ 매크로가 정의됩니다. MAKEFOURCC 매크로는 Mmsystem.h에 정의되며 FCC 매크로는 Aviriff.h 및 기타 다양한 헤더 파일에 정의됩니다. 또한 단순히 문자 순서를 반대로 하여 FOURCC 코드를 문자열 리터럴로 직접 선언할 수도 있습니다. 따라서 다음 문은 동일합니다.

DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');
DWORD fccYUY2 = '2YUY';  // Declares the FOURCC 'YUY2'.

(마지막 예제에서는 Windows에서 little-endian 아키텍처를 사용하므로 바이트 순서를 반전해야 합니다. 'Y' = 0x59, 'U' = 0x55 및 '2' = 0x32 있으므로 '2YUY'는 0x32595559.)

일부 DirectX Video Acceleration 2.0 API는 D3DFORMAT 값을 사용하여 비디오 형식을 설명합니다. 이 컨텍스트에서도 FOURCC 코드를 사용할 수 있습니다.

D3DFORMAT fmt = (D3DFORMAT)MAKEFOURCC('Y','U','Y','2');
D3DFORMAT fmt = (D3DFORMAT)FCC('YUY2');
D3DFORMAT fmt = D3DFORMAT('2YUY'); // Coerce to D3DFORMAT type.

FOURCC 상수

다음 표에는 몇 가지 일반적인 FOURCC 코드가 나와 있습니다.

FOURCC 값 설명
'H264' H.264 비디오.
'I420' YUV 비디오는 평면 4:2:0 형식으로 저장됩니다.
'IYUV' YUV 비디오는 평면 4:2:0 형식으로 저장됩니다.
'M4S2' MPEG-4 2부 비디오.
'MP4S' Microsoft MPEG 4 코덱 버전 3. 이 코덱은 더 이상 지원되지 않습니다.
'MP4V' MPEG-4 2부 비디오.
'MPG1' MPEG-1 비디오.
'MSS1' Windows Media Video 7 화면 코덱으로 인코딩된 콘텐츠입니다.
'MSS2' Windows Media Video 9 화면 코덱으로 인코딩된 콘텐츠입니다.
'UYVY' 압축된 4:2:2 형식으로 저장된 YUV 비디오입니다. YUY2와 비슷하지만 데이터의 순서가 다릅니다.
'WMV1' Windows Media Video 7 코덱으로 인코딩된 콘텐츠입니다.
'WMV2' Windows Media Video 8 코덱으로 인코딩된 콘텐츠입니다.
'WMV3' Windows Media Video 9 코덱으로 인코딩된 콘텐츠입니다.
'WMVA' 오래된 버전의 Windows Media Video 9 고급 프로필 코덱으로 인코딩된 콘텐츠입니다.
'WMVP' Windows Media Video 9.1 이미지 코덱으로 인코딩된 콘텐츠입니다.
'WVC1' SMPTE 421M("VC-1"). Windows Media Video 9 고급 프로필로 인코딩된 콘텐츠입니다.
'WVP2' Windows Media Video 9.1 Image v2 코덱으로 인코딩된 콘텐츠입니다.
'YUY2' 압축된 4:2:2 형식으로 저장된 YUV 비디오입니다.
'YV12' YUV 비디오는 평면 4:2:0 또는 4:1:1 형식으로 저장됩니다. 사용자 및 V 평면이 전환된다는 점을 제외하고 I420/IYUV와 동일합니다.
'YVU9' YUV 비디오는 평면 16:1:1 형식으로 저장됩니다.
'YVYU' 압축된 4:2:2 형식으로 저장된 YUV 비디오입니다. YUY2와 비슷하지만 데이터의 순서가 다릅니다.

 

비디오 미디어 유형

비디오 하위 유형 GUID