IStreamBufferMediaSeeking setPosition似乎不呈现

时间:2009-01-14 18:47:08

标签: c# directshow

我创建了两个DirectShow图。一个从Hauppauge HD-PVR捕获并将其存储在StreamBufferSink中。第二个使用StreamBufferSource,将输出发送到MPEG-2解复用器,将视频发送到ArcSoft视频解码器,然后发送到以无窗口模式设置的视频混合渲染器9。

这一切都适用于预览数据。当我使用IStreamBufferMediaSeeking.SetPositions方法(从StreamBufferSource获取界面)来更改播放位置时,如果我将其设置在流的开头的任何位置,则视频会冻结并停止更新。在GetCurrentPosition上拨打IStreamBufferMediaSeeking会显示该位置正在流上移动,但视频却没有跟随。

我使用C#和DirectShowLib-2005进行编程。

有关错误或如何找出问题的任何想法?

2 个答案:

答案 0 :(得分:0)

我发现StreamBufferSink / StreamBufferSource只能理解MPEG-2或DV视频。 H.264不受支持,所以它不知道如何在流中搜索,因此我不能将此组件用于我想要做的事情,除非我将我的流转码为MPEG-2,这违背了拥有H.264的目的流在第一位。

答案 1 :(得分:0)

更多信息:这实际上可以在Windows 7下使用流式缓冲引擎的更新。为了获得倒带,我必须在将数据放入流缓冲接收器之前对流进行解复用并添加MPEG-2视频流分析器过滤器。