파일 싱크에서 속성 설정

ASF 파일 싱크는 애플리케이션이 ASF 미디어 데이터를 파일에 보관하는 데 사용할 수 있는 Media Foundation에서 제공하는 IMFMediaSink 의 구현입니다. ASF 미디어 싱크의 개체 모델 및 일반 사용에 대한 자세한 내용은 ASF 미디어 싱크를 참조하세요.

ASF 파일 싱크를 만든 후에는 출력 파일의 스트림에 대한 정보로 구성해야 합니다. 이 절차는 ASF 파일 싱크에 스트림 정보 추가에 설명되어 있습니다. 인코딩 유형에 따라 파일 싱크에 추가 속성을 설정할 수 있습니다. 새는 버킷; 일반 파일 속성입니다. 이러한 설정은 최종 ASF 헤더 개체에 기록되지 않습니다. 이 항목에서는 파일 싱크의 속성 저장소에 이러한 속성을 추가하는 프로세스에 대해 설명합니다.

ContentInfo 개체는 파일 싱크에 대한 전역 파일 속성 및 개별 스트림 속성을 유지 관리합니다. 파일 싱크의 ASF ContentInfo 개체에 대한 참조를 가져오는 방법에 대한 자세한 내용은 ASF 파일 싱크 만들기를 참조하세요.

파일 싱크의 속성 저장소(IPropertyStore)에 대한 참조를 얻으려면 파일 싱크의 ContentInfo 개체 참조에서 IMFASFContentInfo::GetEncodingConfigurationPropertyStore 를 호출합니다.

스트림 인코딩 속성

콘텐츠를 제대로 인코딩하려면 파일은 인코딩 유형 및 관련 인코딩 매개 변수와 같은 특정 인코딩 정보를 알고 있어야 합니다. 이러한 값은 파일 싱크에서 ASF ContentInfo 개체에 의해 유지 관리되는 속성 저장소의 속성 값으로 설정됩니다. 관련 인코더를 인스턴스화하기 전에 파일 싱크를 구성하는 경우 채워진 모든 속성과 함께 ContentInfo 개체를 사용하여 Windows Media 인코더를 만들 수 있습니다. 이 경우 속성은 인스턴스화된 인코더에서 자동으로 설정됩니다. 반대로 싱크 앞에 인코더를 만드는 경우 인코더에서 설정한 속성이 파일 싱크의 속성 저장소에 복사되었는지 확인합니다.

인코딩 속성을 설정하려면 파일 싱크의 스트림 수준 속성 저장소에 액세스해야 합니다. IMFASFContentInfo::GetEncodingConfigurationPropertyStore 메서드의 wStreamNumber 매개 변수에 스트림 번호를 전달합니다. 스트림 번호는 프로필의 각 스트림을 구성하는 동안 설정된 값과 일치해야 합니다. 속성 값은 IPropertyStore::SetValue를 호출하여 설정합니다. 다음 표에서는 지원되는 속성에 대해 설명합니다.

속성은 인코딩 유형에 따라 달라집니다. 설정해야 하는 속성 및 해당 값에 대한 자세한 내용은 속성 인코딩을 참조하세요.

새는 버킷 속성

새는 버킷 매개 변수는 스트림의 인코더에서 사용하는 실제 버퍼 창을 결정합니다. 파일 싱크의 MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET 속성에는 새는 버킷 매개 변수, 비트 속도, 버퍼 창 및 초기 버퍼 충만성이 포함됩니다. 이 속성은 파일 싱크에 대한 스트림 수준 속성 저장소에서 설정되며 인코더를 만들고 구성한 후에 설정해야 합니다. 이 값은 에서 설정됩니다. 미디어 유형 협상 중에 인코더는 버퍼 창과 사용할 비트 속도를 결정합니다. wmcodecifaces.h에 정의된 IWMCodecLeakyBucket 인터페이스를 사용하여 이러한 값을 가져올 수 있으며 해당 메서드를 호출하려면 wmcodecdspuuid.lib에 연결해야 합니다.

검색된 값은 ASF 파일 싱크의 각 스트림에 대해 이 속성에 대해 설정할 수 있습니다.

전역 파일 싱크 속성

파일 싱크의 전역 속성 저장소를 얻으려면 IMFASFContentInfo::GetEncodingConfigurationPropertyStore 메서드의 wStreamNumber 매개 변수에 0을 전달합니다. 속성 값은 IPropertyStore::SetValue를 호출하여 설정합니다. 다음 표에서는 지원되는 속성에 대해 설명합니다.

파일 수준 속성 설명
MFPKEY_ASFMEDIASINK_BASE_SENDTIME 전송 시간은 새는 버킷 내의 페이로드가 해제되는 시간을 나타냅니다. 이 속성 값은 첫 번째 전송 시간을 나타냅니다. 멀티플렉서는 이 값을 사용하여 생성된 패킷에 대한 후속 전송 시간을 계산하고 데이터가 새는 버킷을 통해 꾸준히 흐르도록 합니다.
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE 이 BOOL 값은 데이터가 새는 버킷을 오버플로하지 않도록 멀티플렉서가 비트 속도를 자동으로 조정해야 하는지 여부를 나타냅니다.
MFPKEY_ASFMEDIASINK_DRMACTION 이는 파일 생성을 위한 ASF 미디어 싱크 DRM 작업을 나타냅니다. 이 릴리스에서는 DRM 트랜스코드만 지원됩니다.

 

ASF 미디어 싱크

파이프라인 계층 ASF 구성 요소

Media Foundation의 ASF 지원