Windows Media 오디오 및 Windows Media 비디오 인코더는 다양한 인코딩 모드를 지원합니다. 이러한 모드는 일반적으로 MFT(Media Foundation 변환 ) 인코더에서 속성을 설정하여 구성됩니다. WMContainer 수준 구성 요소를 사용하든 부분 토폴로지를 빌드하든 관계없이 파일 인코딩을 수행하려면 인코딩 모드 및 스트림의 미디어 유형에 따라 속성을 설정하여 인코더를 적절하게 구성해야 합니다. ASF 파일을 작성하는 데 사용하는 인코더와 개체(ASF 파일 싱크 또는 ASF 멀티플렉서)에서 동일한 속성 집합을 설정해야 합니다.
인코더 속성은 wmcodecdsp.h에 정의됩니다. 인코더를 구성하는 데 사용되는 특정 속성은 IPropertyStore 인터페이스의 메서드를 사용하여 설정됩니다.
오디오 스트림 속성
다음 표에서는 오디오 스트림에 대한 인코더 구성을 보여 줍니다.
| 인코딩 형식 | 속성 이름 - 값 |
|---|---|
| 상수 비트 전송률 인코딩 | MFPKEY_VBRENABLED - FALSE (선택 사항) 기본적으로 MFPKEY_VBRENABLED는 FALSE로 설정됩니다. |
| Quality-Based 가변 비트 전송률 인코딩 | MFPKEY_VBRENABLED - TRUE MFPKEY_PASSESUSED - 1(선택 사항) 기본적으로 MFPKEY_PASSESUSED 1로 설정됩니다. MFPKEY_DESIRED_VBRQUALITY - 0에서 100까지 |
| 제약이 없는 가변 비트 전송률 인코딩 | MFPKEY_VBRENABLED - TRUE MFPKEY_PASSESUSED - 2 |
| Peak-Constrained 가변 비트 전송률 인코딩 | MFPKEY_VBRENABLED - TRUE MFPKEY_PASSESUSED (사용된 패스 수) - 2 MFPKEY_RMAX - 최대 비트 전송률 MFPKEY_BMAX - 최대 버퍼 창 |
비디오 스트림 속성
다음 표에서는 비디오 스트림에 대한 인코더 구성을 보여 줍니다.
| 인코딩 형식 | 속성 이름 |
|---|---|
| 상수 비트 전송률 인코딩 | MFPKEY_VBRENABLED - false (선택 사항) 기본적으로 MFPKEY_VBRENABLED은 FALSE로 설정됩니다. MFPKEY_VIDEOWINDOW - 버퍼 창 |
| Quality-Based 가변 비트 전송률 인코딩 | MFPKEY_VBRENABLED - TRUE MFPKEY_PASSESUSED - 1(선택 사항) 기본적으로 MFPKEY_PASSESUSED 1로 설정됩니다. MFPKEY_DESIRED_VBRQUALITY - 0에서 100까지 |
| 제약이 없는 가변 비트 전송률 인코딩 | MFPKEY_VBRENABLED - TRUE MFPKEY_PASSESUSED - 2 |
| Peak-Constrained 가변 비트 전송률 인코딩 | MFPKEY_VBRENABLED - TRUE MFPKEY_PASSESUSED - 2 MFPKEY_RMAX - 최대 비트 전송률 MFPKEY_BMAX - 최대 버퍼 창 |
인코더의 속성 저장소 구성
인코딩 세션 전에 인코딩 유형 및 다양한 스트림별 설정을 지정하여 인코더를 구성해야 합니다. 출력 파일의 ASF 헤더 개체를 나타내는 ASF ContentInfo 개체 속성 저장소에서 인코더 속성을 설정해야 합니다.
인코더 MFT를 사용하는 경우:
- 설명한 대로 인코더의 IMFTransform 인터페이스를 사용하여 인코더 MFT의 IMFTransform 인터페이스에 대한 참조를 가져옵니다.
- IPropertyStore 인터페이스에 대한 인코더 MFT 쿼리
- IPropertyStore::SetValue호출하여 필수 속성을 설정합니다.
기본 제공 인코더 활성화 개체를 사용하고 이미 ASF 파일 싱크를 만들고 구성한 경우 ASF 미디어 싱크의 속성 저장소를 MFCreateWMAEncoderActivate 또는 MFCreateWMVEncoderActivate에 전달할 수 있습니다. 인코더는 애플리케이션에서 지정한 설정에 따라 자동으로 구성됩니다. 자세한 내용은 인코더의 활성화 개체사용에 설명된 절차를 참조하세요.
활성화 개체를 사용하여 Media Foundation 개체를 만드는 방법에 대한 자세한 내용은 활성화 개체참조하세요.
관련 항목