다음을 통해 공유


렌더링 엔진 정보

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

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

이 문서에서는 DES( DirectShow Editing Services )가 비디오 편집 프로젝트를 렌더링하는 방법을 설명합니다.

DES에서 프로젝트는 타임라인 표시됩니다. 이 타임라인 소스 클립 다시 정렬 및 비디오 효과 추가와 같은 비디오 편집에서 가장 일반적인 작업을 간소화하기 때문에 유용합니다. 반면에 DirectShow 스트림 아키텍처에는 필터 그래프가 필요합니다. 따라서 프로젝트를 렌더링하려면 타임라인 필터 그래프로 변환해야 합니다. 이를 수행하는 구성 요소를 렌더링 엔진이라고 합니다. DirectShow는 두 가지 렌더링 엔진을 제공합니다.

  • 기본 렌더링 엔진: 압축되지 않은 출력을 제공하는 필터 그래프를 빌드합니다.
  • 스마트 렌더링 엔진: 압축된 출력을 제공하는 필터 그래프를 빌드합니다.

스마트 렌더링 엔진은 스마트 압축을 사용하여 성능을 향상시킵니다. 스마트 압축을 사용하면 원본 파일 형식이 최종 출력 형식과 다른 경우에만 원본 파일의 압축이 다시 압축됩니다. 형식이 일치하면 소스의 압축이 해제되지 않습니다. 스마트 압축은 오디오 압축이 아닌 비디오 압축에만 지원됩니다.

미리 보기의 경우 기본 렌더링 엔진을 사용합니다. 스마트 렌더링 엔진은 미리 볼 수도 있지만 압축된 스트림의 압축을 풀기 때문에 효율성이 떨어집니다. 파일을 작성하려면 스마트 압축을 풀려면 스마트 렌더링 엔진을 사용합니다. 그렇지 않으면 기본 렌더링 엔진을 사용합니다. 스마트 압축을 통해 파일을 작성하는 데 걸리는 시간을 크게 줄일 수 있습니다.

중요

스마트 렌더링 엔진을 사용하여 Windows Media 파일을 읽거나 쓰지 마세요.

 

중요

두 렌더링 엔진 모두 메시지를 처리하는 보이지 않는 창을 만듭니다. 렌더링 엔진을 만드는 스레드에는 메시지를 디스패치하기 위한 메시지 루프가 있어야 합니다. 또한 렌더링 엔진 및 필터 그래프 관리자가 해제될 때까지 해당 스레드가 종료되지 않아야 합니다. 그렇지 않으면 애플리케이션이 교착 상태에 빠질 수 있습니다.

 

필터 그래프 생성

필터 그래프는 두 단계로 빌드됩니다. 첫 번째 단계에서 렌더링 엔진은 부분 필터 그래프인 "프런트 엔드"를 생성합니다. 다음 다이어그램은 일반적인 프런트 엔드를 보여 줍니다.

필터 그래프 프런트 엔드

하위 시스템에는 렌더링 엔진이 자동으로 어셈블하는 다양한 특수 필터가 포함되어 있습니다. 프런트 엔드에는 타임라인 각 그룹에 대해 하나의 출력 핀이 포함되어 있습니다. 출력 핀은 기본 렌더링 엔진을 사용하는 경우 압축되지 않은 데이터를 제공하거나 스마트 렌더링 엔진을 사용하는 경우 압축된 데이터를 제공합니다.

두 번째 단계에서 출력 핀은 렌더링 필터에 연결됩니다. 미리 보기의 경우 렌더링 필터는 비디오 및 오디오 렌더러입니다. 파일 쓰기의 경우 렌더링 필터는 멀티플렉서(mux) 필터 및 파일 작성기 필터입니다.

필터 그래프 완료

프로젝트 미리 보기

파일에 프로젝트 작성