0

我创建了两个 DirectShow 图表。一个从 Hauppauge HD-PVR 捕获并将其存储在 StreamBufferSink 中。第二个使用 a StreamBufferSource,将输出发送到 MPEG-2 Demultiplexer,将视频发送到 ArcSoft Video Decoder,然后发送到设置为无窗口模式的 Video Mixing Renderer 9。

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

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

关于出了什么问题或如何找出问题所在的任何想法?

4

2 回答 2

0

我发现 StreamBufferSink/StreamBufferSource 只能理解 MPEG-2 或 DV 视频。不支持 H.264,因此它不知道如何在流中搜索,因此我无法使用此组件来完成我想做的事情,除非我将流转码为 MPEG-2,这违背了拥有 H.264 的目的首先是流。

于 2009-02-09T21:44:46.567 回答
0

更多信息:这实际上可以在 Windows 7 下使用流式缓冲区引擎的更新。要倒带,我必须在将数据放入 Stream Buffer Sink 之前对流进行解复用并添加 MPEG-2 Video Stream Analyzer 过滤器。

于 2011-02-15T19:22:49.990 回答