미디어 확장 기능 사용(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

이 항목에서는 미디어 확장 기능이란 무엇이며 Windows 런타임 앱에서 이를 사용하는 방법에 대해 설명합니다.

소개

미디어 확장 기능은 Windows 런타임 앱의 미디어 파이프라인에 기능을 추가합니다. 일부 가능한 확장으로는 오디오 및 동영상 효과, 캡처 효과, 코드 변환, DRM(디지털 권한 관리), 새 디코더 및 인코더 지원, 사용자 지정 캡처 싱크 등을 들 수 있습니다. VideoStabilization 효과 및 DRM과 같은 일부 확장이 시스템에 포함되어 있습니다 MediaProtectionManager. 시스템에 포함되지 않은 기능은 사용자 지정 미디어 확장을 사용하여 추가할 수 있습니다.

사용자 지정 미디어 확장을 사용하는 자세한 예제는 미디어 확장 샘플(영문)을 참조하세요. 이 샘플에서는 사용자 지정 회색조 효과, 사용자 지정 디코더를 만들고 사용하도록 설정하는 방법과 기본 제공 VideoStabilization 효과를 사용하는 방법을 보여 줍니다.

미디어 확장을 사용하는 다른 샘플로는 실시간 통신 샘플(영문)이 있습니다.

미디어 파이프라인 및 효과와 확장 추가 및 제거

Media Foundation Pipeline미디어 원본, Media Foundation 변형(예: 동영상 효과, 인코더 및 디코더, 미디어 싱크)으로 구성되어 있습니다. 다양한 방법으로 Windows 스토어 앱에 효과 및 확장을 추가할 수 있습니다. MediaExtensionManager를 사용하여 미디어 원본과 인코더 및 디코더를 대체할 수 있습니다. 재생, 캡처 및 코드 변환 개체의 메서드를 사용하여 효과를 추가 및 제거할 수 있습니다. MediaCapture 클래스를 사용하여 사용자 지정 싱크를 추가할 수 있습니다.

오디오 및 동영상 재생 개체에 효과를 추가 및 제거하는 방법은 사용 중인 프로그래밍 언어에 따라 다릅니다.

JavaScript를 사용하는 Windows 런타임 앱의 경우 msInsertVideoEffect, msInsertAudioEffectmsClearEffects를 사용합니다. 이러한 메서드는 HTML5 audiovideo 태그에 노출됩니다.

C++, C# 또는 Visual Basic으로 작성한 Windows 런타임 앱의 경우 MediaElement.AddAudioEffect, MediaElement.AddVideoEffectRemoveAllEffects를 사용합니다.

코드 변환을 위해 효과를 추가 및 제거하려면 MediaTranscoder.AddVideoEffectMediaTranscoder.AddAudioEffect, MediaTranscoder.ClearEffects를 사용합니다.

미디어 캡처에 대한 효과를 추가 및 제거하려면 MediaCapture.AddEffectAsyncMediaCapture.ClearEffectsAsync를 사용합니다.

스키마 처리기, 바이트 스트림 처리기, 오디오 인코더, 오디오 디코더, 동영상 인코더 및 동영상 디코더를 등록하려면 MediaExtensionManager를 사용합니다.

미디어 캡처에 사용자 지정 싱크를 추가하려면 MediaCapture.StartRecordToCustomSinkAsyncMediaCapture.StartPreviewToCustomSinkAsync를 사용합니다.

DRM은 MediaProtectionManager를 통해 지원됩니다.

기본 제공 확장 기능

Windows 런타임은 떨리는 동영상(예: 핸드헬드 카메라에서 캡처한 동영상) 안정화를 위한 기본 제공 효과를 제공합니다.

동영상 보정을 추가하는 방법에서는 JavaScript를 사용하는 Windows 런타임 앱에서 VideoStabilization 효과를 사용하는 방법을 설명합니다. Media Extension 샘플(영문)에서는 VideoStabilization 효과를 사용하는 방법을 보여 줍니다.

사용자 지정 확장 기능

사용자 지정 미디어 확장 기능을 사용하여 미디어 파이프라인에 새 기능을 추가할 수 있습니다. 예를 들어 Media Extension 샘플(영문)에서처럼 동영상을 회색조로 변환하는 사용자 지정 동영상 효과를 만들 수 있습니다. 또는 사용자 지정 확장 기능을 만들어 시스템에서 기본적으로 지원되지 않는 동영상 및 오디오 형식에 대한 지원을 추가합니다.

확장 기능 만들기는 두 부분으로 구성됩니다. 첫 번째 부분에서는 Media Foundation 구성 요소를 작성하고 두 번째 부분에서는 Windows 런타임 미디어 확장 개체에서 이 구성 요소를 전환합니다. 많은 다른 사용자 지정 미디어 확장 기능을 만드는 자세한 예제는 미디어 확장 샘플(영문)을 참조하세요.

Media Extension은 COM(구성 요소 개체 모델) 및 Windows 런타임 인터페이스를 모두 구현하는 하이브리드 개체로 구성됩니다. COM 인터페이스는 Microsoft Media Foundation 파이프라인과 상호 작용합니다. Windows 런타임 인터페이스는 구성 요소를 활성화하고 Windows 스토어 앱과 상호 작용합니다.

대부분의 상황에서, Windows 런타임과 상호 작용하려면 C++/CX(Visual C++ with Component Extensions)를 사용하는 것이 좋습니다. 그러나 COM과 Windows 런타임 인터페이스를 모두 구현하는 하이브리드 구성 요소(예: Media Extension)의 경우에는 이렇게 할 수 없습니다. C++/CX는 Windows 런타임 개체만 만들 수 있습니다. 따라서 하이브리드 개체의 경우 Windows 런타임과 상호 작용하려면 Windows 런타임 C++ 템플릿 라이브러리를 사용하는 것이 좋습니다. Windows 런타임 C++ 템플릿 라이브러리는 COM 인터페이스 구현을 제한적으로 지원합니다.

사용자 지정 확장 기능은 해당 플러그 인을 만들거나 등록한 응용 프로그램만 액세스할 수 있고, 다른 응용 프로그램은 액세스할 수 없습니다.

Hh700365.wedge(ko-kr,WIN.10).gif사용자 지정 효과를 만드는 세부 단계

  1. 기본 Media Foundation 확장을 만들고 IMediaExtension을 구현합니다.
  2. 확장 기능을 등록하고 활성화합니다.
  3. 응용 프로그램의 확장 기능을 미디어 파이프라인에 추가합니다.

Windows 런타임 앱에서 미디어 파운데이션 미디어 확장을 만드는 방법에 대한 자세한 내용은 연습: WRL 및 미디어 파운데이션을 사용하여 Windows 스토어 앱 만들기Media Extension 샘플을 참조하세요.

관련 항목

Media Extension 샘플

미디어 코드 변환 샘플

실시간 통신 샘플

WRL 및 미디어 파운데이션을 사용하여 Windows 스토어 앱 만들기

Media Foundation 변형

동영상 태그에서 효과를 사용하도록 설정하는 방법

동영상 보정을 추가하는 방법