【问题标题】:Writing a Direct Show Source Filter编写直接显示源过滤器
【发布时间】:2011-06-20 15:35:53
【问题描述】:

我应该写一个直接显示过滤器

  • 从实时源中获取输入(视频、音频)。

  • 它应该将数据(视频、音频:已编码)提供给解码器过滤器

MyCustomDirectShowSourceFilter ---> 解码器

我可以构建自己的源过滤器的任何实际工作示例以及任何实施建议?

最好的祝福

更新:

基本上我想要一个源过滤器,它从网络中获取流并让另一个过滤器处理视频流的解析和解码。

因此,当我修改 Microsoft 示例 Push Source Filter 并连接到解码器时,它不会调用 FilllBuffer 方法。该图根本不起作用。我需要一个源过滤器示例,它的输出连接到解码器而不是视频渲染器或 Mux。

【问题讨论】:

标签: directshow directshow.net


【解决方案1】:

Windows SDK (7.1) 包含 DirectShow 示例过滤器代码,包括一个源过滤器,我已成功地使用它为实时设备构建源过滤器。

如果您安装了最新的 Windows SDK,它应该在这里:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\filters\pushsource

此外,MSDN 有关于这个主题的大量参考资料:

http://msdn.microsoft.com/en-us/library/dd757807(v=vs.85).aspx

如果您仍然卡住,March Hare 还提供了很好的样本让人们开始:

http://tmhare.mvps.org/downloads.htm

【讨论】:

  • 嗨,摩根。示例 Push Source Filter 的问题在于其输出直接连接到视频渲染器。当我为我的目的修改这个推送过滤器时——给它视频解码器——它不起作用。
  • 快速变得复杂。 FillBuffer 由源过滤器的输出引脚的 ThreadProc(流式线程)调用。没有调用 FillBuffer 的几个原因,包括图中没有时钟,没有过滤器下游“拉”样本(例如渲染器)。您可能会查看您的自定义输出引脚类并在 FillBuffer 内部中断。还要确保图形播放状态转换成功。您也可以尝试添加 Null 渲染器过滤器,只需提供一个接收器,用于通过图形提取样本。您在 FillBuffer 中生成的时间戳也可能导致阻塞。评论太复杂了;-)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
相关资源
最近更新 更多