2009-08-21 5 views
2

WPF MediaElement에 표시되는 비디오가 Windows Media Player에서 재생할 때와 다른 색상을 가졌음을 알았습니다 (Vista 64 비트 시스템에서). MediaElement 내부의 비디오는 콘트라스트가 낮은 채도가 약간 흐려집니다.WPF : Windows Media Player와 다른 MediaElement의 비디오 색상

나는 지금까지 시도한 비디오가 다른 도구를 사용하여 다른 사람들이 제작 한 WMV 비디오이므로 비디오 자료의 문제점을 배제 할 것입니다. Windows Media Player의 모든 "비디오 설정"슬라이더 (색조, 채도, 밝기, 대비)는 기본값에 있습니다.

그 이유는 처음에는 애니메이션에서 불투명도와 콘텐츠를 광범위하게 사용하는 소프트웨어의 문제가 의심 스러웠습니다.

그러나 XAML은 다음과 같습니다 어디 간단한 테스트 프로그램 동작을 재현 할 수 있었다 :

<Window x:Class="MediaElementTest.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 

    <MediaElement Source="D:\Test\Video.wmv" /> 
</Window> 

오전 내가 뭔가 잘못하고? 해결 방법이 있습니까? 내가 MediaElement를가 XP에서 VMR9 및 Vista에서 EVR을 사용합니다 확신 때문에

답변

2

, 당신은 행동이 내가 윈도우 미디어 플레이어가 VMR7 또는 기본 비디오 중 하나를 사용 같은데요 here

를 설명 볼 수 있습니다 Renderer 그래서 그 행동을하지 않습니다. 또는 Microsoft는 어떤 방식 으로든 보상했습니다.

+1

감사합니다. 응답에 링크 된 블로그 게시물에는 CodePlex에서 소스 코드를 사용할 수있는 "WPFMediaKit"이 나와 있습니다. 비디오 재생을 위해 해당 라이브러리의 클래스를 사용하는 대신 "DeeperColor"쉐이더 효과를 별도로 시도했습니다. 즉, DeeperColor 클래스의 인스턴스를 MediaElement의 Effect 속성에 할당하고 색상을 잘 처리했습니다. DeeperColor 클래스는 WPFMediaKit 프로젝트의 Effects 폴더에서 찾을 수 있습니다. 자신의 프로젝트에서 직접 사용하려면 "DeeperColor.ps"빌드 동작을 "리소스"로 설정하십시오. –

2

비디오 카드에서 지원하는 경우이 문제를 해결할 수있는 소프트웨어 옵션이 있습니다.

NVidia 카드가있는 경우 NVidia 제어판을 사용하십시오. 옵션 트리에서 "비디오"를 클릭하십시오. 모니터를 선택하고 "With NVidia Settings"라디오 버튼을 클릭하십시오. 고급 탭에서 "동적 범위 0-255"를 선택하십시오.

그게 전부입니다!

관련 문제