【问题标题】:How to avoid writing non-I Frames using GMFBridge如何避免使用 GMFBridge 写入非 I 帧
【发布时间】:2011-06-29 20:12:42
【问题描述】:

我使用 GMFBridge 将流源视频文件录制成离散文件。就像 DSBoy GMFBridge with GMF GDCL MPEG 4 Mux Filter

FirstPart ==>  SourceFilter--> BridgeSinkFilter
SecondPart ==> BridgeSourceFilter ---> GDCL MPEG 4 Mux Filter---> FileWriter 

我以 10 分钟的间隔录制流并打开新文件以进行下一次录制。 它可以工作,但是当第一条记录正常时,​​其他记录在开始时以绿色坏帧打开(其余视频正常)。

我认为当我使用桥停止文件编写器并使用新文件重新创建它时,它会将非 I 帧写入文件。如果是这样,我如何避免使用这种 directshow 过滤器结构在记录开头写入非 I 帧?

最好的祝福

【问题讨论】:

    标签: directshow


    【解决方案1】:

    你的解释听起来很正确。 GMFBridge 最初是为未压缩的视频设计的,因此您需要添加一些代码才能使其正常工作。

    最简单的解决方案是在 mux 图中添加代码,就在 mux 之前,该代码会丢弃数据,直到您看到 GOP 开始,但这并不理想,因为您会丢失数据。

    要正确执行此操作,您需要在看到 GOP 开始时触发桥接开关。一种方法是编写一个 GOP 检测器过滤器,它将位于桥接接收器前面的上游图中。

    当您准备好切换时(10 分钟后),该应用会启用 GOP 检测器。当 GOP 检测器看到 GOP 启动时,它会阻止交付并向应用程序发出信号。当应用看到信号时,它会将桥切换到新的复用图,然后在 GOP 检测器上重新启用传递。

    G

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多