从正在写入的视频 .avi 文件中读取
Posted
技术标签:
【中文标题】从正在写入的视频 .avi 文件中读取【英文标题】:Read from video .avi file as it is being written 【发布时间】:2012-12-25 20:37:06 【问题描述】:使用 python 我想监控一个 .avi 原始 RGB 视频文件,该文件在录制时被另一个进程写入硬盘。所以我需要的是反复给我磁盘上视频文件的当前最后一帧(或第 n 个最后一帧)的东西。
我已经尝试过使用 OpenCV,但是这只给了我一次当前的最后一帧,第一次到达最后一帧后对 QueryFrame 的任何进一步调用都不会返回更多图像。
所以基本上我在寻找类似this 的东西,但对于.avi 视频文件。此外,对我来说,跳过帧不是问题,每秒获得几个新帧就足够了。
【问题讨论】:
您是否完全关闭并重新打开所有资源OpenCV
使用循环的每次迭代?也许你正在遭受缓冲......
你说得对,关闭再重新打开确实解决了问题,非常感谢!
我将从我的评论中创建一个答案,以便您可以将此主题标记为“已回答”。
【参考方案1】:
您必须在每次循环迭代结束时关闭.avi
-文件,然后重新打开它。
编辑:艺术要求提供代码示例。在这里。
while True:
with open("test.avi") as fh:
get_last_frame()
wait_or_do_whatever_you_want()
我不知道 OP 如何使用 AVI 格式,但这不是问题的一部分。
【讨论】:
您有示例代码来说明解决方案吗?以上是关于从正在写入的视频 .avi 文件中读取的主要内容,如果未能解决你的问题,请参考以下文章