5

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

我尝试了几种途径..

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

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

3.) 我试过VS 2010自带的Apple QuickTime Control 2.0 COM Component,也很卡。

4.) 我想弄清楚如何在 Shockwave Flash Object 控件上设置速度,但还没有发现

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

任何帮助/想法将不胜感激。

谢谢

4

2 回答 2

1

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

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

于 2012-06-23T00:57:19.100 回答
0

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

于 2013-05-15T04:15:44.663 回答