我创建了两个DirectShow图。一个从Hauppauge HD-PVR捕获并将其存储在StreamBufferSink中。第二个使用StreamBufferSource
,将输出发送到MPEG-2解复用器,将视频发送到ArcSoft视频解码器,然后发送到以无窗口模式设置的视频混合渲染器9。
这一切都适用于预览数据。当我使用IStreamBufferMediaSeeking.SetPositions
方法(从StreamBufferSource
获取界面)来更改播放位置时,如果我将其设置在流的开头的任何位置,则视频会冻结并停止更新。在GetCurrentPosition
上拨打IStreamBufferMediaSeeking
会显示该位置正在流上移动,但视频却没有跟随。
我使用C#和DirectShowLib-2005进行编程。
有关错误或如何找出问题的任何想法?
答案 0 :(得分:0)
我发现StreamBufferSink / StreamBufferSource只能理解MPEG-2或DV视频。 H.264不受支持,所以它不知道如何在流中搜索,因此我不能将此组件用于我想要做的事情,除非我将我的流转码为MPEG-2,这违背了拥有H.264的目的流在第一位。
答案 1 :(得分:0)
更多信息:这实际上可以在Windows 7下使用流式缓冲引擎的更新。为了获得倒带,我必须在将数据放入流缓冲接收器之前对流进行解复用并添加MPEG-2视频流分析器过滤器。