다음을 통해 공유


DirectShow Editing Services에서 Windows Media 사용

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

[이 API는 지원되지 않으며 나중에 변경되거나 사용할 수 없습니다.]

이 섹션에서는 DES( DirectShow Editing Services ) 애플리케이션에서 Windows Media 기반 콘텐츠를 사용하는 방법을 설명합니다. 두 가지 기본 시나리오가 있습니다.

  • 원본 클립. DES 프로젝트는 Windows Media 파일의 오디오 및 비디오 클립을 포함할 수 있습니다.
  • 대상 형식입니다. Windows Media는 비디오 편집 프로젝트의 최종 출력에 이상적인 형식입니다.

Windows Media 파일을 사용하려면 애플리케이션에서 키라고도 하는 소프트웨어 인증서를 제공해야 합니다. 키 공급자 개체를 구현하여 이 작업을 수행합니다. 키 공급자는 IServiceProvider 인터페이스를 노출하는 COM 개체입니다. 키 공급자를 구현하는 방법에 대한 자세한 내용은 Windows Media Format SDK 잠금 해제를 참조하세요.

Windows Media 파일에서 DES를 사용하려면 다음 DES 개체에 소프트웨어 키가 필요합니다.

  • 미리 보기 또는 파일 쓰기를 위한 렌더링 엔진입니다.

  • ASF 파일에서 비디오 프레임 또는 미디어 형식을 가져오는 MediaDet 개체입니다.

  • ! [중요]

    스마트 렌더링 엔진을 사용하여 Windows Media 파일을 읽거나 쓰지 마세요. 항상 기본 렌더링 엔진(CLSID_RenderEngine)을 사용합니다.

     

개체에 소프트웨어 키를 제공하려면 IObjectWithSite 인터페이스에 대해 해당 개체를 쿼리하고 키 공급자에 대한 포인터를 사용하여 IObjectWithSite::SetSite 를 호출합니다. 예를 들어 다음 코드는 렌더링 엔진에 소프트웨어 키를 제공합니다.

// Create your key provider, using an application-defined function:
IServiceProvider *pKey;
hr = MyCreateKeyProviderFunction(&pKey);  

// Query the Render Engine for IObjectWithSite.
IObjectWithSite *pOWS;
hr = pRenderEngine->QueryInterface(__uuidof(IObjectWithSite), 
    reinterpret_cast<void**>(&pOWS));
if (SUCCEEDED(hr))
{
    // Give it your key provider.
    hr = pOWS->SetSite(pKey);
    pOWS->Release();
}
pKey->Release();

DES 프로젝트에서 Windows Media 원본 클립을 사용하려면 렌더링 엔진에서 키 공급자에 대한 포인터를 사용하여 IObjectWithSite::SetSite 를 호출하면 됩니다.

Windows Media 파일 작성에 대한 자세한 내용은 DES에서 Windows 미디어 파일 작성을 참조하세요.

DirectShow 편집 서비스 사용