我正在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对象控件的速度,但还没有找到它
有人可以建议其他途径进行探索吗?我只需要能够根据用户输入平滑地增加/减少视频播放的速度而不会延迟。我不关心视频需要的格式,所有视频都可以转换为所需的格式。
任何帮助/想法都将受到赞赏。
由于
答案 0 :(得分:1)
最终的方法是从视频解码位图,并自己处理帧。
尝试使用DirectShow.NET中的CaptureNET示例。它允许您从每个帧捕获位图。之后,编写自己的播放控件来处理刷新率。
答案 1 :(得分:0)
在尝试了许多不同的格式/库和组件后,我发现VLC Media Player ActiveX控件是减慢/加速视频的最有效方法,没有任何明显的延迟。