ビデオ FOURCC

多くのビデオ形式には、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 ビデオ アクセラレーション 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' 平面 4:2:0 形式で格納されている 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 スクリーン コーデックでエンコードされたコンテンツ。
'UYVY' YUV ビデオは、パックされた 4:2:2 形式で保存されます。 YUY2 に似ていますが、データの順序が異なります。
'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 Image 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 に似ていますが、データの順序が異なります。

 

ビデオ メディアの種類

ビデオ サブタイプの GUID