【问题标题】:Read from video .avi file as it is being written从正在写入的视频 .avi 文件中读取
【发布时间】:2012-12-25 20:37:06
【问题描述】:

使用 python 我想监控一个 .avi 原始 RGB 视频文件,该文件在录制时被另一个进程写入硬盘。所以我需要的是反复给我磁盘上视频文件的当前最后一帧(或第 n 个最后一帧)的东西。

我已经尝试过使用 OpenCV,但是这只给了我一次当前的最后一帧,第一次到达最后一帧后对 QueryFrame 的任何进一步调用都不会返回更多图像。

所以基本上我在寻找类似this 的东西,但对于.avi 视频文件。此外,对我来说,跳过帧不是问题,每秒获得几个新帧就足够了。

【问题讨论】:

  • 您是否完全关闭并重新打开所有资源OpenCV 使用循环的每次迭代?也许你正在遭受缓冲......
  • 你说得对,关闭再重新打开确实解决了问题,非常感谢!
  • 我将从我的评论中创建一个答案,以便您可以将此主题标记为“已回答”。

标签: python video opencv monitoring


【解决方案1】:

您必须在每次循环迭代结束时关闭.avi-文件,然后重新打开它。

编辑:艺术要求提供代码示例。在这里。

while True:
    with open("test.avi") as fh:
        get_last_frame()
    wait_or_do_whatever_you_want()

我不知道 OP 如何使用 AVI 格式,但这不是问题的一部分。

【讨论】:

  • 您有示例代码来说明解决方案吗?
猜你喜欢
  • 2016-08-07
  • 2021-05-21
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
相关资源
最近更新 更多