【问题标题】:Programmatically add AVI file header to video stream以编程方式将 AVI 文件头添加到视频流
【发布时间】:2013-03-05 00:39:40
【问题描述】:

我有一个采集设备(模拟数字转换器:AverMedia USB Capture Card)。 当我想在 C# 中使用 DirectShowLib 录制视频时,我只接收帧。我可以使用 RawVideo Player 录制帧并播放文件。如何创建像 AVI 这样的标准视频文件头?当我想压缩数据时会出现第二个问题。当我使用压缩时,我根本无法阅读。

这是我的工作 GraphEdit 架构:

如何创建带有标头等的标准 AVI 或 MPEG 文件?

【问题讨论】:

    标签: c# video stream directshow.net data-compression


    【解决方案1】:

    可播放文件具有一定的结构,捕获的数据通常通过所谓的多路复用器过滤器写入此类文件。对于 AVI 格式,标准过滤器是AVI Mux Filter。它在输入上获取视频/音频,并在输出上转换为文件兼容的流。如果/当此输出连接到 File Writer Filter 时,后者会生成具有正确标题的文件。

    【讨论】:

      【解决方案2】:

      看看this,你应该可以用它来设置一个Avi对象,然后用你的框架AddFrame()来创建一个avi。

      【讨论】:

      • 不幸的是我做不到。因为代码只是将传入的帧保存到单个文件中。我可以将视频文件头添加到保存的帧吗?我知道帧的宽度、高度和 fps。有可能吗?
      • 我下载了 DirectShow.NET 示例并打开了 Samples\Capture\DxTuner 项目。在项目中,您可以选择视频压缩器并使用 DirectShow 功能创建标准 AVI 文件。它将捕获设备记录到 AVI 文件中。
      猜你喜欢
      • 2011-11-02
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 2017-10-09
      • 2017-06-28
      • 1970-01-01
      相关资源
      最近更新 更多