【问题标题】:Reading from an open AVI file从打开的 AVI 文件中读取
【发布时间】:2011-07-13 14:58:04
【问题描述】:

我正在设计一个程序,它将视频从 DirectShow 兼容卡捕获到 AVI 文件。 AVI 文件很可能一次被写入数小时。有没有办法在文件仍在写入时播放文件中的视频?如果是这样,我可以在包含我的剪辑的文件中定义起点和终点吗?播放完剪辑后,我将不再使用它,因此我不需要将其保存为新的 AVI 文件。保存单个帧捕获是实现此目的的更好方法吗?

【问题讨论】:

    标签: directshow avi


    【解决方案1】:

    有两个问题。一种是仅在图形停止时才将索引表写入文件(对于 AVI 和 MP4 都是如此)。另一个是文件阅读器使用 FILE_SHARE_READ 打开文件。

    如果您将文件阅读器替换为与正在打开以进行写入的文件兼容的文件阅读器,则您需要按顺序访问文件中的块,而不需要索引。这对于 AVI 是可行的,但不建议这样做,并且需要更换解复用器。

    替代方案:您可以分段捕获文件,使用 GMFBridge 之类的工具在不停止图形的情况下切换到新的输出文件。然后您可以访问以前的输出文件,但不能访问当前的输出文件。或者您可以使用非索引格式,例如 mpeg-2 PS。

    G

    【讨论】:

    • 如果我要将单个帧作为 .BMP 图像捕获到文件中并根据时间码创建索引会怎样?我的目标是一次从三个摄像头捕捉,我需要将它们同步到彼此的一两帧内。与将未压缩的视频捕获到 AVI 文件相比,执行我建议的操作会更耗费 CPU 吗?
    猜你喜欢
    • 2012-06-27
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2012-06-29
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多