多くのビデオフォーマットには 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 がリトルエンディアンアーキテクチャを使用しているため、バイト順序を逆にする必要があります。'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 値 | 説明 |
|---|---|
| 'AV01' | AOMedia ビデオ1 |
| AVP | Advanced Professional Video (APV) ビデオ。 |
| 'H263' | H.263 ビデオ。 |
| 'H264' | H.264 ビデオ。 |
| 'I420' | 平面 4:2:0 形式で保存された YUV ビデオ。 |
| 'I422' | 平面 4:2:2 形式で格納された YUV ビデオ。 |
| 'I444' | 平面 4:4:4 形式で格納された YUV ビデオ。 |
| 'IYUV' | 平面 4:2:0 形式で保存された YUV ビデオ。 |
| '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 画面コーデックでエンコードされたコンテンツ。 |
| 'theo' | Theora ビデオ。 |
| 'UYVY' | YUV ビデオは、パックされた 4:2:2 形式で保存されます。 YUY2 に似ていますが、データの順序が異なります。 |
| 'VP10' | VP10 ビデオ。 |
| 'WMV1' | Windows Media Video 7 コーデックでエンコードされたコンテンツ。 |
| 'WMV2' | Windows Media Video 8 コーデックでエンコードされたコンテンツ。 |
| 'WMV3' | Windows Media Video 9 コーデックでエンコードされたコンテンツ。 |
| WMVA | Windows Media Video 9 Advanced Profile コーデックの廃止された旧バージョンでエンコードされたコンテンツ。 |
| 'WMVP' | Windows Media Video 9.1 画像コーデックでエンコードされたコンテンツ。 |
| 'WVC1' | SMPTE 421M ("VC-1")。 Windows Media Video 9 Advanced Profile でエンコードされたコンテンツ。 |
| 'WVP2' | Windows Media Video 9.1 画像 v2 コーデックでエンコードされたコンテンツ。 |
| 'YUY2' | YUV ビデオは、パックされた 4:2:2 形式で保存されます。 |
| 'YV12' | YUV ビデオは、平面 4:2:0 または 4:1:1 形式で保存されます。 I420/IYUV と同じですが、You プレーンと V プレーンが切り替わる点が異なります。 |
| 'YVU9' | 平面 16:1:1 形式で保存された YUV ビデオ。 |
| YVYU | YUV ビデオは、パックされた 4:2:2 形式で保存されます。 YUY2 に似ていますが、データの順序が異なります。 |
関連トピック