如何在 DirectShow.NET 中退帧?
我想应该用 IMediaSeeking SetPositions
来完成,但我不知道如何定义里面的参数。
I suppose it should be done with IMediaSeeking SetPositions
, but I don't know how define parameters inside.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
DirectShow 中没有专用的后退方法(因此存在用于前进的方法)。是的,您可以使用
IMediaSeeking::SetPositions
,但是请注意,实现它的不是 DirectShow 本身,而是实际的底层过滤器,因此对重新定位的支持取决于过滤器和实现,并且可能受到限制例如,仅单步执行关键帧(拼接点)。 DirectShow.NET 只是 DirectShow 的包装器,并且它也没有在 DirectShow 提供的步进功能之上添加任何内容。There is no dedicated method to step back in DirectShow (as such existing for stepping forward). Yes you can use
IMediaSeeking::SetPositions
, however but note that it is not DirectShow itself who implement it, but actual underlying filters, so support for re-positioning depends on filters and implementation, and may be limited to, for example, stepping through key frames (splice points) only. DirectShow.NET is onyl a wrapper over DirectShow and it also does not add anything on top what DirectShow offers for stepping.这在 C++ 中对我有用。用 C# 封装此代码对您来说可能并不困难。希望这有帮助。
This works for me in C++. Wrapping this code in C# may not be difficult for you. Hope this helps.