C# 在windows窗体应用程序中动态提高/降低视频速度

C# 在windows窗体应用程序中动态提高/降低视频速度,c#,winforms,performance,video,C#,Winforms,Performance,Video,我正在VS2010中构建一个Windows窗体应用程序,它可以根据用户输入的速度平滑地提高或降低视频播放的速度 我试过好几种方法 1.)使用AudioVideoPlayback DirectX class-我根据计时器设置视频的当前位置,从而设置视频的速度。。并根据用户输入增加或减少该值。虽然这在我的电脑上起作用,但在我们的低端目标电脑上却落后了很多。有人能想出一个更有效的方法来提高/降低使用这个类的播放速度吗 2.)我尝试过Windows Media Player ActiveX控件,并尝试过

我正在VS2010中构建一个Windows窗体应用程序,它可以根据用户输入的速度平滑地提高或降低视频播放的速度

我试过好几种方法

1.)使用AudioVideoPlayback DirectX class-我根据计时器设置视频的当前位置,从而设置视频的速度。。并根据用户输入增加或减少该值。虽然这在我的电脑上起作用,但在我们的低端目标电脑上却落后了很多。有人能想出一个更有效的方法来提高/降低使用这个类的播放速度吗

2.)我尝试过Windows Media Player ActiveX控件,并尝试过动态设置速率/位置,但即使在我的开发PC上,这也非常烦琐和滞后

3.)我试过VS2010附带的Apple QuickTime Control 2.0 COM组件,它也非常落后

4.)我正试图找出如何设置Shockwave Flash对象控件的速度,但还没有找到答案

有人能提出其他的探索途径吗?我只需要能够根据用户输入无延迟地平滑地增加/降低视频播放速度。我不在乎视频需要什么格式,所有视频都可以转换成所需的格式

如有任何帮助/想法,将不胜感激


谢谢

最终的方法是解码视频中的位图,然后自己处理帧


请尝试DirectShow.NET中的CaptureNET示例。它允许您从每个帧捕获位图。之后,编写自己的播放控件来处理刷新率。

在尝试了许多不同的格式/库和组件后,我发现VLC Media Player ActiveX控件是最有效的方法,可以在没有任何明显延迟的情况下减慢/加速视频。

您在本文中尝试过这个建议吗。它讨论了如何更改播放速率,我尝试了DirectShow.NET示例。让您更改速率的示例甚至不会更改速率。