在Windows窗体应用程序中动态增加/减少视频的速度

时间:2012-06-20 09:26:09

标签: c# winforms performance video

我正在VS 2010中构建一个Windows窗体应用程序,可以根据用户输入的速度平滑地增加或减少视频播放的速度。

我尝试了几个途径..

1。)使用AudioVideoPlayback DirectX类 - 我通过基​​于计时器设置视频的当前位置来设置视频的速度,并根据用户输入增加或减少该值。虽然这在我的电脑上运行,但它在我们的低端目标PC上却落后很多。任何人都可以想到一种更有效的方法来增加/降低使用这个类的播放速度吗?

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

3.。)我尝试过VS 2010附带的Apple QuickTime Control 2.0 COM组件,而且它也非常迟钝。

4。)我正在试图弄清楚如何设置Shockwave Flash对象控件的速度,但还没有找到它

有人可以建议其他途径进行探索吗?我只需要能够根据用户输入平滑地增加/减少视频播放的速度而不会延迟。我不关心视频需要的格式,所有视频都可以转换为所需的格式。

任何帮助/想法都将受到赞赏。

由于

2 个答案:

答案 0 :(得分:1)

最终的方法是从视频解码位图,并自己处理帧。

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

答案 1 :(得分:0)

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

相关问题