使用WPF MediaElement渲染HDVideo是否成功? WPF是否有更好的视频播放器选项?

时间:2020-03-06 14:53:27  来源:igfitidea点击:

我正在使用WPF MediaElement在应用程序中渲染高清视频。当MediaElement的大小超过约300单位见方时,视频断断续续,计算机几乎完全无响应。我需要全屏显示视频。

有没有人成功使用WPF MediaElement渲染全屏视频?

使用的计算机的处理器/视频规格是什么?

是否有更好的方法在WPF应用程序中显示视频?

编辑:
蒂莫西(Timothy):我需要能够在图形上放置文本或者其他元素,因此我认为托管WMP已经淘汰。

目前,我不做任何图层,也不做任何不透明度/透明度。

我目前在XP中运行。我希望能够在Vista和XP中运行该应用程序。

迈克:在回来看这篇文章之前,我正在MSDN论坛上阅读耶利米·莫里尔(Jeremiah Morrill)的一些文章。我找到了通往他某些图书馆的路,并将对其进行测试。谢谢。

更新:

看来问题出在我的开发机器上。在测试机上,一切运行正常。我的开发机器是带有2个1650x1080 CRT的双头,带有256MB内存的ATI Radon X1650系列卡。

使用WPF perfmon工具时,它表示所有内容都是硬件渲染的,但是性能却很差。现在,我将继续使用它,因为我知道代码在与它一起分发的机器上运行良好。在将来的某个时候,我将尝试探究为什么它在我的开发机器上表现如此差。 (所有机器都是XP)。

感谢所有的建议。

解决方案

耶利米·莫里尔(Jeremiah Morrill)最近发布了专门的WPF库,该库支持显示HD Media(以及其他功能)

它肯定似乎无法正常工作。测试其他层的不透明度可能会使其减慢太多。我们是否尝试过在Aero关闭的情况下运行测试?

有人建议托管Windows Media Player是可行的方法。

演练:使用XAML在Windows Presentation Foundation中托管ActiveX控件

高清视频的分辨率/格式是什么?

我已经在双核2.6GHz全屏上完成了720p WMV,没有问题,但其中包含NVidia 9800GXT。仅WMP中高清视频的CPU使用率是多少?请记住,在WPF中渲染任何内容都会产生一些开销。因此,如果我们在接近100%的CPU上运行,则渲染到WPF可能就足以设置它。同样,如果GPU太慢,我们也可能会遇到断断续续的视频。

-耶利米

我认为这只是Windows XP中的问题。似乎视频播放没有通过vsynch更新。因此,它会在需要时更新屏幕。在Vista中,WPF的视频渲染在某种程度上更加智能。

使用正确的vsync应该可以解决问题,并且不一定与wpf和Vista有关。某些ATI卡带有图形驱动程序,这些驱动程序默认情况下关闭了vsync选项。希望这可以帮助。

旧线程,但是就像分享我自己的经验。我的猜测是分发机是单个监视器。我曾经在笔记本电脑上安装了第二台显示器,然后发现视频的前几秒钟不可见,之后又晃动了视频。卸下并禁用添加监视器可以解决问题。我看到更多的报道说媒体元素在双显示器环境中存在问题。