오디오 하위 형식
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
다음 표에는 오디오에 대한 미디어 하위 형식 GUID가 나열되어 있습니다. 해당하는 경우 각 테이블에는 Mmreg.h로 선언된 동등한 형식 태그가 나열됩니다.
압축되지 않은 오디오 유형
GUID | Description | 헤더 | 해당하는 형식 태그 |
---|---|---|---|
MEDIASUBTYPE_IEEE_FLOAT | IEEE 부동 소수점 오디오. | uuids.h | WAVE_FORMAT_IEEE_FLOAT (0x0003) |
MEDIASUBTYPE_PCM | PCM 오디오. | uuids.h | WAVE_FORMAT_PCM (0x0001) |
MPEG-4 및 AAC 오디오 형식
GUID | Description | 헤더 | 해당하는 형식 태그 |
---|---|---|---|
MEDIASUBTYPE_MPEG_ADTS_AAC | ADTS(오디오 데이터 전송 스트림) 형식의 AAC(고급 오디오 코딩) 오디오입니다. 형식 블록은 wFormatTag가 WAVE_FORMAT_MPEG_ADTS_AAC 같은 WAVEFORMATEX 구조체입니다. WAVEFORMATEX 구조체는 SBR(스펙트럼 밴드 복제) 또는 PS(매개 변수 스테레오) 도구를 적용하기 전에 핵심 AAC-LC 샘플 속도 및 채널 수를 지정합니다(있는 경우). WAVEFORMATEX 구조 후에는 추가 데이터가 필요하지 않습니다. |
wmcodecdsp.h | WAVE_FORMAT_MPEG_ADTS_AAC (0x1600) |
MEDIASUBTYPE_MPEG_HEAAC | HE-AAC(고급 오디오 코딩) 스트림을 High-Efficiency. 형식 블록은 HEAACWAVEFORMAT 구조체입니다. |
wmcodecdsp.h | WAVE_FORMAT_MPEG_HEAAC (0x1610) |
MEDIASUBTYPE_MPEG_LOAS | 동기화 계층(LOAS) 및 LATM(멀티플렉스 계층)이 있는 MPEG-4 오디오 전송 스트림입니다. 형식 블록은 wFormatTag가 WAVE_FORMAT_MPEG_LOAS 같은 WAVEFORMATEX 구조체입니다. WAVEFORMATEX 구조체는 스펙트럼 SBR 또는 PS 도구를 적용하기 전에 코어 AAC-LC 샘플 속도 및 채널 수를 지정합니다(있는 경우). WAVEFORMATEX 구조 후에는 추가 데이터가 필요하지 않습니다. |
wmcodecdsp.h | WAVE_FORMAT_MPEG_LOAS (0x1602) |
MEDIASUBTYPE_RAW_AAC1 | 원시 AAC. 형식 블록은 wFormatTag가 WAVE_FORMAT_RAW_AAC1 같은 WAVEFORMATEX 구조체입니다. WAVEFORMATEX 구조체는 SBR 및 PS 도구를 적용한 후 디코딩된 오디오의 샘플 속도와 채널 수를 지정합니다(있는 경우). WAVEFORMATEX 구조체 뒤에는 ISO/IEC 14496-3(MPEG-4 오디오)에 정의된 대로 AudioSpecificConfig() 데이터가 포함된 추가 바이트가 잇습니다. AudioSpecificConfig() 데이터의 길이는 SBR/PS의 암시적 신호가 있는 AAC-LC 또는 HE-AAC의 경우 2바이트입니다. SBR/PS의 명시적 신호가 있는 HE-AAC의 경우 2바이트 이상입니다. |
wmcodecdps.h | WAVE_FORMAT_RAW_AAC1 (0x00FF) |
Dolby 오디오 형식
GUID | Description | 헤더 | 해당하는 형식 태그 |
---|---|---|---|
MEDIASUBTYPE_DOLBY_DDPLUS | Dolby Digital Plus 오디오. | wmcodecdsp.h | 해당 없음 |
MEDIASUBTYPE_DOLBY_AC3 | Dolby Digital(AC-3) 오디오. | ksuuids.h | 해당 없음 |
MEDIASUBTYPE_DOLBY_AC3_SPDIF | S/PDIF를 통한 Dolby AC-3. | uuids.h | WAVE_FORMAT_DOLBY_AC3_SPDIF (0x0092) |
MEDIASUBTYPE_DVM | DVM AC-3 코덱. Dolby Digital 오디오를 사용하여 AVI 파일을 재생할 때 사용됩니다. 서식 블록은 서식 태그가 WAVE_FORMAT_DVM 같은 WAVEFORMATEX 구조체입니다. |
wmcodecdsp.h | WAVE_FORMAT_DVM (0x2000) |
MEDIASUBTYPE_RAW_SPORT | AC-3 over S/PDIF; 설명을 참조하세요. | uuids.h | WAVE_FORMAT_RAW_SPORT (0x0240) |
MEDIASUBTYPE_SPDIF_TAG_241h | AC-3 over S/PDIF; 설명을 참조하세요. | uuids.h | WAVE_FORMAT_ESST_AC3 (0x0241) |
패딩된 AC-3을 지정하려면 0x0092(WAVE_FORMAT_DOLBY_AC3_SPDIF)의 형식 태그에 해당하는 하위 형식 MEDIASUBTYPE_DOLBY_AC3_SPDIF 사용합니다. 0x240 및 0x241 값도 패딩된 AC-3을 나타내는 데 사용되었지만 Microsoft는 0x0092 사용하도록 권장합니다.
기타 오디오 유형
GUID | Description | 헤더 | 해당하는 형식 태그 |
---|---|---|---|
MEDIASUBTYPE_DRM_Audio | DRM(디지털 권한 관리) 보호가 포함된 오디오. | uuids.h | WAVE_FORMAT_DRM (0x0009) |
MEDIASUBTYPE_DTS | DTS(디지털 극장 시스템) 오디오. 서식 블록은 서식 태그가 WAVE_FORMAT_UNKNOWN 같은 WAVEFORMATEX 구조체입니다. |
ksuuids.h | 해당 없음 |
MEDIASUBTYPE_DTS2 | DTS(디지털 극장 시스템) 오디오. 서식 블록은 서식 태그가 WAVE_FORMAT_DTS2 같은 WAVEFORMATEX 구조체입니다. 이 하위 형식은 MEDIASUBTYPE_DTS 동일하지만 다른 형식 태그를 사용합니다. |
wmcodecdsp.h | WAVE_FORMAT_DTS2 (0x2001) |
MEDIASUBTYPE_DVD_LPCM_AUDIO | DVD 오디오 데이터. | ksuuids.h | 해당 없음 |
MEDIASUBTYPE_MPEG1AudioPayload | MPEG-1 오디오 페이로드. | uuids.h | WAVE_FORMAT_MPEG (0x0050) |
MEDIASUBTYPE_MPEG1Packet | MPEG1 오디오 패킷. | uuids.h | 해당 없음 |
MEDIASUBTYPE_MPEG1Payload | MPEG1 오디오 페이로드. | uuids.h | 해당 없음 |
MEDIASUBTYPE_MPEG2_AUDIO | MPEG-2 오디오 데이터. | ksuuids.h | 해당 없음 |
오디오 형식 태그
WAVEFORMATEX 구조체의 wFormatTag 필드는 오디오 형식 형식을 지정합니다. 미디어 샘플은 일반적으로 WAVEFORMATEX 구조의 wBitsPerSample 필드에 지정된 샘플의 정수입니다. 패킷화된 스트림에서 제공되는 MPEG 오디오 샘플에 반드시 해당되는 것은 아니므로 반드시 샘플/프레임 경계에 패키지되지는 않습니다. MPEG 오디오의 경우 미디어 샘플의 타임스탬프는 미디어 샘플에 첫 번째 바이트가 포함된 첫 번째 프레임의 타임스탬프를 나타냅니다.
미디어 하위 형식은 다음과 같이 각 wFormatTag 에 대해 정의됩니다.
- 하위 형식 GUID의 Data1 하위 필드는 wFormatTag 값과 동일합니다.
- 데이터 2 필드는 0입니다.
- 데이터 3 필드가 0x0010.
- 데이터 4 필드는 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71.
따라서 PCM 오디오의 경우 하위 형식 GUID(uuids.h에서 MEDIASUBTYPE_PCM 정의됨)는 다음과 같습니다.
{00000001-0000-0010-8000-00AA00389B71}
CreateAudioMediaType 함수를 사용하여 WAVEFORMATEX 구조체에서 AM_MEDIA_TYPE 구조를 만들 수 있습니다.
사용되지 않는 오디오 유형
다음 오디오 하위 형식은 사용되지 않으므로 사용하면 안 됩니다.
- MEDIASUBTYPE_MPEG_RAW_AAC
- MEDIASUBTYPE_PCMAudioObsolete