다음을 통해 공유


원본 추가

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

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

다른 타임라인 개체를 만드는 것과 동일한 방식으로 원본 개체를 만듭니다. 그러나 타임라인에 삽입하기 전에 원본에서 적어도 다음 속성을 지정해야 합니다.

  • 타임라인을 기준으로 하는 시작 및 중지 시간입니다. IAMTimelineObj::SetStartStop 메서드를 호출합니다.
  • 원본으로 사용할 미디어 파일입니다. 파일 이름을 나타내는 와이드 문자열을 사용하여 IAMTimelineSrc::SetMediaName 메서드를 호출합니다.
  • 원본 파일을 기준으로 하는 미디어 시작 및 중지 시간입니다. IAMTimelineSrc::SetMediaTimes 메서드를 호출합니다. 미디어 시간에 대한 자세한 내용은 DirectShow Editing Services의 시간을 참조하세요.

다음 예제에서는 원본 클립이 파일의 4초 후에 시작됩니다. 미디어 기간은 10초이며 타임라인 기간의 두 배 길이입니다. 즉, 원본이 정상 속도의 두 배로 재생됩니다. 상수 UNITS는 10000000(10^7)로 정의되며 1초와 같습니다.

pSourceObj->SetStartStop(0, 50000000)
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.avi"), 15);
pSource->SetMediaName(bstrFile); 
SysFreeString(bstrFile);
pSource->SetMediaTimes(40000000, 140000000);

메모

현재 DES는 VCM(Video Compression Manager) 코덱으로 압축된 75개 이상의 소스를 동시에 렌더링할 수 없습니다. 또한 프로젝트 전체에 75개 이상의 원본이 포함된 경우 동적 다시 연결을 사용해야 합니다. 그렇지 않으면 DES가 프로젝트를 미리 볼 수 없습니다. 자세한 내용은 IRenderEngine::SetDynamicReconnectLevel참조하세요.

 

소스에 대한 자세한 내용은 소스 작업을 참조하세요.

타임라인 구성