[DirectShow 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer, IMFMediaEngine, Media Foundation 오디오/비디오 캡처대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능하면 새로운 코드에서 MediaPlayer, IMFMediaEngine 및 Audio/Video Capture를 DirectShow대신 Media Foundation 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
[이 API는 지원되지 않으며 나중에 변경되거나 사용할 수 없습니다.]
이 문서에서는 DirectShow Editing Services(DES)의 알파 혼합에 대해 설명합니다.
알파는 픽셀 또는 이미지의 투명도를 측정합니다. 압축되지 않은 32비트 RGB 비디오에서는 알파 채널(A) 및 RGB(3가지 색 구성 요소)의 네 가지 구성 요소가 각 픽셀을 정의합니다. 알파 값이 0인 픽셀은 완전히 투명합니다. 알파 값이 255인 픽셀은 불투명합니다. 이러한 값 사이에 픽셀에는 다양한 수준의 투명도가 있습니다.
DirectShow는 32비트 RGB 비디오에 대한 두 가지 미디어 유형을 정의합니다.
- MEDIASUBTYPE_ARGB32: 비디오는 유효한 알파 채널이 있는 32비트 RGB입니다.
- MEDIASUBTYPE_RGB32: 픽셀은 32비트이지만 알파 채널이 반드시 유효하지는 않습니다.
DES에서 알파 혼합을 수행하려면 비디오 그룹의 압축되지 않은 미디어 유형을 MEDIASUBTYPE_ARGB32 설정합니다. C++에서 IAMTimelineGroup::SetMediaType 메서드를 호출합니다. XTL 형식에서 그룹 요소의 bitdepth 특성을 32로 설정하면 이 작업도 수행됩니다.
다음으로 알파 채널이 포함된 비디오 데이터가 필요합니다. 다음과 같은 몇 가지 옵션이 있습니다.
- 알파 데이터가 포함된 32비트 RGB 비디오가 이미 있는 AVI 파일을 사용할 수 있습니다. 현재 알파는 MPEG 또는 Microsoft WMF(Windows Media Format) 원본 파일에 대해 지원되지 않습니다.
- DES는 알파 데이터가 있는 32비트 비트맵(.bmp) 및 Targa(.tga) 파일을 지원합니다.
- 알파를 사용하여 32비트 RGB 데이터를 만드는 사용자 지정 원본 필터를 작성할 수 있습니다. 출력 미디어 형식은 MEDIASUBTYPE_ARGB32합니다. 타임라인 원본 개체에서 필터를 하위 개체로 사용합니다.
비디오 원본에 알파가 없는 경우 알파 데이터를 만드는 효과를 사용할 수 있습니다. 알파 세터 효과 전체 이미지의 알파 채널을 상수 값으로 설정합니다. 시간에 따라 알파를 변경하려면 알파 Setter 효과와 IPropertySetter 인터페이스를 사용합니다. 그룹의 압축되지 않은 미디어 형식이 MEDIASUBTYPE_ARGB32한 원래 원본은 32비트일 필요가 없습니다.
마지막으로 비디오를 알파 혼합을 수행하는 효과나 전환으로 전달합니다. Compositor 전환은 알파 혼합을 수행하고, 키 전환은 알파 값으로 키를 지정할 수 있습니다.
다음 샘플 XTL 프로젝트는 알파 혼합을 수행합니다.
<timeline>
<group type="video" bitdepth="32" width="320" height="240">
<track>
<clip start="0" stop="6" src="c:\Example.avi" />
</track>
<track>
<clip start="0" stop="6" src="c:\Example2.avi">
<!-- Alpha Setter effect. -->
<effect clsid="{506D89AE-909A-44f7-9444-ABD575896E35}" start="0" stop="6">
<param name="alpha" value="255">
<linear time="6" value="0" />
</param>
</effect>
</clip>
<!-- Key transition, with alpha keying. -->
<transition clsid="{C5B19592-145E-11d3-9F04-006008039E37}" start="0" stop="6">
<param name="KeyType" value="3" />
</transition>
</track>
</group>
</timeline>
관련 항목