gpt4 book ai didi

c++ - 有选择地 'turn off' 多出 pin 流 directshow 过滤器

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:22:08 26 4
gpt4 key购买 nike

我确定之前有人会问过这个问题,但我已经搜索过了,但找不到任何具体的信息来帮助解决问题。

我将首先概述最初的问题,如果需要更深入的技术信息,我可以提供。希望初始问题有足够的信息。

我正在 visual studio 2010 中使用 c++ 和 directshow 编写一个应用程序。主要项目规范是用于实时预览,并且在任何选择的时间,将视频录制到 mpeg2 到硬盘驱动器,然后再录制到 dvd 以在标准 DVD 播放器,始终不会中断实时预览。

对于 directshow 来说,捕获似乎是一个非常微不足道的标准直接事情。

我写了几个自定义过滤器。没什么了不起的,但我们想要我们自己的自定义屏幕覆盖信息——时间和日期等——这必须在预览和录制的文件中。我使用连接到采集卡视频输出引脚的 avi 解压缩器,并将 avi 解压缩器连接到我的过滤器,给我一个我可以操作的 rgb 图像。这个过滤器的输出然后通过 inftee 过滤器分离,一个进入屏幕,另一个进入 ms mpeg2 编码器。音频从采集卡音频输出到同一个 mpeg2 编码器。 mpeg2 编码器的输出然后进入一个文件。然后该文件被制作成 DVD 并刻录到 DVD。

所以我的问题是...

允许仅通过用户操作来启动和停止 mpeg2 文件输出的最佳位置在哪里以及如何?

我尝试使用智能 T 型过滤器 - 1 个用于视频,1 个用于音频作为 mpeg2 编码器之前的最后一个过滤器,然后使用 iamstreamcontrol 接口(interface)在适当的时间关闭引脚。这会导致最终的 mpeg2 出现任何时序问题吗?因为输出文件将通过 mplayer 和 vlc 等播放,但不会转换为 mpeg2 dvd 兼容(用于测试 - 通过任何 dvd 创作软件 - 文件损坏的投诉和 somteimes 提供时间引用) - 时间戳是否可能在文件有问题并给出错误?如果文件是从捕获开始的第一刻捕获的(而不是说在流式传输 5 分钟后),那么一切正常。

我确实考虑过使用流缓冲路由 - http://msdn.microsoft.com/en-gb/library/windows/desktop/dd693041(v=vs.85).aspx - 但我不确定采取行动的最佳方向。看起来可能是几个最佳方向的选择。

如有任何帮助和提示,我们将不胜感激。特别是如果有 DirectShow 过滤器、图钉、图表以及它们如何一起流动的网站/书籍/信息。

编辑:我正在考虑制作我自己的“智能 T 恤”过滤器的拷贝,因为我将有 2 个输入引脚 - 音频和视频 - 和 4 个输出引脚 - 2 个视频(1 个预览和 1 个捕获)和2 个相同的音频,但我最终会遇到同样的问题吗?什么是处理“关闭”该自定义过滤器的捕获引脚的正确方法。我会浪费时间做这样的事情吗?这是覆盖输出引脚的事件/非事件方法并发送或不发送样本的简单情况吗?感觉没那么简单?

非常感谢!

最佳答案

Where and how would be the best place to allow starting and stopping of only mpeg2 file output, to be done via user action?

对于这种操作,我会推荐 GMFBridge .创建自己的过滤器并不容易。 GMFBridge 允许您使用两个具有动态连接的独立图形。使用第一张图进行预览,将第二张图用于文件输出。并且仅在用户操作后连接图表。

关于c++ - 有选择地 'turn off' 多出 pin 流 directshow 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24552450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com