1

我有一个 mp4 Capture 应用程序,它连续捕获图形 30 分钟(或一些动态值),我需要非常高的捕获精度,这样就不会丢失频率。数据的。

为此,我们决定制作 2 个捕获图,首先运行第一个图,然后在 30 分钟后制作第二个图,运行它然后停止第一个图,这样我们就不会丢失任何数据。

以简单的方式,我们无法创建第二个图,因为第一个图正在运行并且资源正在使用中(我猜这几乎是我们的逻辑不起作用的原因)

我正在寻找它并找到了 GMFBridge ,我想这在我们的案例中可能很有用,我正在考虑进行如下处理

源图

Video Source --> XCodec Filter --> Infinite tee --> GMF Bridge Sink Filter (multile as per tee)-->

Audio Source --> ACM Wrapper --> MonoGraph AAC Encodec --> Infinite Tee (multile as per tee)--> GMF Bridge Sink Filter -->

第一张图

  --> GMF Source Filter -->  GDCL Mux --> Filter Writer

第二张图

  --> GMF Source Filter -->  GDCL Mux --> Filter Writer

现在使用 GMFBridge,我们将让源代码只使用一次,并使用 复制它Infinite Pin Tee Filter,并制作连接Source Graph to First GraphSource Graph to Second Graph.

第一次运行组合Source Graph to First Graph并在 30 分钟后运行组合Source Graph to First Graph然后停止该图表。

我想知道我的理解是否正确?我可以使用 GMFbridge 实现这一点吗?除了在他们的示例应用程序中提供之外,我还需要简单的 GMFBridge 代码。

请帮助解决这个问题。

谢谢

4

1 回答 1

1

您只需将一个 GMF Bridge Sink Filter 添加到源图中。如果需要多个流,可以将桥配置为具有多个流。但是仅仅因为您需要两次就将 Infinite tee 放入其中是没有意义的。

你要做的是:

  • 启动源图。
  • 开始第一张图
  • 将源与第一张图连接起来
  • 开始第二张图
  • (30 分钟后)将源图与第二个图连接起来
  • 停止第一张图
  • ...

这样您就不会丢失任何样本,前 30 分钟所有样本都会转到第一个图表。从您切换的那一刻起,所有样本都会转到第二张图。

于 2012-05-30T20:55:48.707 回答