다음을 통해 공유


WM ASF 기록기 필터(DirectShow)

[이 페이지와 연결된 기능, DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용한 기존 코드를 다시 작성하여 새 API를 사용하는 것을 추천합니다.]

WM ASF 기록기는 Windows Media™ Format SDK와 함께 제공되는 기록기 개체에 대한 래퍼 필터입니다. 필터는 가변 수의 입력 스트림을 허용하고 ASF(Advanced Systems Format) 파일을 만듭니다. 필터는 모든 압축 및 멀티플렉싱을 처리합니다(압축 메커니즘을 무시할 수 있지만). 네트워크 스트리밍을 위해 디지털 비디오(DV) 캡처, 오디오 압축 해제 및 AVI(Audio-Video Interleaved) 또는 MPEG 멀티미디어 파일 변환을 비롯한 다양한 시나리오에서 WM ASF 기록기를 사용할 수 있습니다. 이 필터는 Microsoft DirectShow에서 Microsoft® Windows Media™ Audio 및 Windows Media Video 파일을 만드는 유일한 방법을 제공합니다.

자세한 내용은 DirectShow에서 ASF 파일 만들기를 참조 하세요.

레이블
필터 인터페이스 IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPages또한 필터는 다음과 같은 Windows 미디어 형식 SDK 인터페이스를 노출합니다. IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2
입력 핀 미디어 유형 ASF 프로필에 따라 다릅니다. 일반적으로 압축되지 않은 오디오 및 비디오 형식이지만 필터는 ASF 프로필과 일치하는 경우 압축된 형식을 허용합니다.
입력 핀 인터페이스 IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProvider또한 핀은 다음과 같은 Windows 미디어 형식 SDK 인터페이스를 노출합니다. IWMStreamConfig2(IServiceProvider를 통해).
출력 핀 미디어 형식 해당 없음.
출력 핀 인터페이스 해당 없음.
CLSID 필터링 CLSID_WMAsfWriter
속성 페이지 CLSID CLSID_AsfWriterProperties
실행 파일 Qasf.dll
장점 MERIT_DO_NOT_USE
필터 범주 지정되지 않음

 

설명

필터에는 Windows Media Format SDK(소프트웨어 개발 키트) 및 기본 종속성이 필요합니다.

ASF 스트림의 프로필 또는 프로필 식별자에 따라 필터의 입력 핀 수입니다.

입력 핀은 IAMStreamConfig 인터페이스 IAMStreamConfig::GetFormat의 한 가지 메서드를 지원합니다. 다른 모든 메서드는 E_NOTIMPL 반환합니다. GetFormat 메서드를 호출하여 현재 ASF 프로필에 의해 정의된 핀의 대상 압축 형식을 쿼리합니다. IConfigAsfWriter 인터페이스를 사용하여 프로필을 설정합니다.

필터의 IServiceProvider 인터페이스를 사용하여 Windows 미디어 형식 SDK에 정의된 IWMWriterAdvanced2 인터페이스에 대한 포인터를 가져올 수 있습니다. IWMWriterAdvanced2 인터페이스를 사용하여 원본 비디오가 인터레이스될 때 비디오 디인터레이싱을 제어할 수 있습니다. 디인터레이싱 모드를 설정하려면 IWMWriterAdvanced2::SetInputSetting을 호출 합니다. dwInputNum 매개 변수의 경우 IEnumPins 인터페이스에서 열거한 대로 비디오 입력 핀의 인덱스(0부터 시작)를 사용합니다.

다음 예제에서는 이 인터페이스를 쿼리하는 방법을 보여줍니다.

// Assume that pAsfWriter is a valid IBaseFilter pointer.
IServiceProvider *pProvider = NULL;
IWMWriterAdvanced2 *pWMWA2 = NULL;

hr = pAsfWriter->QueryInterface(
    IID_IServiceProvider, 
    (void**)&pProvider
    );
if (SUCCEEDED(hr))
{
    hr = pProvider->QueryService(
        IID_IWMWriterAdvanced2,
        IID_IWMWriterAdvanced2, 
        (void**)&pWMWA2
        );
    pProvider->Release();
    if (SUCCEEDED(hr))
    {
        // Use pWMWA2. (Not shown.)
        pWMWA2->Release();
    }
}

애플리케이션은 IWMWriterAdvanced2 인터페이스가 상속하는 IWMWriterAdvanced 메서드를 사용하면 안 됩니다. 이러한 메서드를 호출하면 필터 작업을 방해할 수 있습니다.

이 필터에서 지원하는 유일한 파일 쓰기 모드는 AM_FILE_OVERWRITE. IFileSinkFilter2::GetMode를 참조하세요.

Windows Media Format SDK 런타임이 WMT_STATUS 메시지를 WM ASF 기록기 필터로 보내면 필터는 EC_WMT_EVENT 이벤트로 전달합니다.

DirectShow 필터