다음을 통해 공유


DirectShow 편집 서비스 아키텍처

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

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

다음 그림에서는 DES(DirectShow Editing Services )의 아키텍처를 보여 줍니다.

directshow 편집 서비스 아키텍처

  • 타임라인: 중첩된 트랙 집합으로 구성된 소스 클립, 전환 및 효과의 컬렉션으로 비디오 프로덕션을 나타냅니다. 자세한 내용은 타임라인 모델을 참조하세요.
  • XML 파서: 타임라인 구문 분석하고 출력 파일을 생성하거나 입력 파일을 읽고 타임라인 생성합니다. DES는 XML 기반 지속성 형식을 지원합니다.
  • 렌더링 엔진: 타임라인 스트리밍 미디어로 렌더링할 수 있는 양식으로 변환합니다. 기본적으로 렌더링 엔진은 DirectShow 필터 그래프를 생성합니다(다음 섹션 참조).
  • 미디어 로케이터: 미디어 요소 위치의 캐시를 유지 관리합니다. 미디어 요소 열기 시도가 실패하면 DES는 캐시를 사용하여 성공적으로 열린 기록에 따라 요소를 찾습니다.

타임라인 비디오 편집 프로젝트에 대한 추상 설명입니다. 프로젝트에 사용되는 원본 클립, 시작 및 중지 시간, 효과 및 전환 등을 지정합니다. 그러나 타임라인 비디오 및 오디오 스트림을 렌더링하지 않습니다. 대신 렌더링 엔진은 미리 보기 또는 파일 출력을 위해 타임라인 필터 그래프로 변환합니다. 애플리케이션은 필터 그래프를 직접 조작하는 대신 타임라인 조작합니다. 이는 번거롭고 오류가 발생하기 쉽습니다.

다음 표에서는 일반적인 비디오 편집 애플리케이션이 수행하는 기본 작업과 각 작업을 지원하는 인터페이스를 나열합니다. 이후 섹션에서는 이러한 작업 및 인터페이스에 대해 자세히 설명합니다.

Task 인터페이스(s)
타임라인 생성하거나 수정합니다. IAMTimeline 및 기타 IAMTimelineXXXX 인터페이스
프로젝트 파일을 저장하고 로드합니다. IXml2Dex
프로젝트를 미리 보거나 파일에 씁니다. IRenderEngine, ISmartRenderEngine

 

또한 애플리케이션은 다음 보조 작업의 일부 또는 전부를 수행할 수 있습니다.

Task 인터페이스(s)
미디어 파일에 대한 정보를 가져옵니다. (스트림 수, 각 스트림의 형식 및 기간) IMediaDet
전환 및 효과에 대한 속성을 설정합니다. IPropertySetter
렌더링 중에 오류가 발생할 때 알림을 받습니다. IAMSetErrorLog, IAMErrorLog
포스터 프레임을 검색합니다. IMediaDet, ISampleGrabber

 

DirectShow Editing Services를 사용하여 시작