2013-01-11 49 views
0

使用python我想监视在录制时由另一个进程写入硬盘的.avi原始RGB视频文件。所以我需要的是重复给我磁盘上视频文件的当前最后一帧(或第n帧)。从视频中读取.avi文件正在写入

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

所以基本上我正在寻找像this,但为.avi视频文件。另外对于我来说,如果帧被跳过,这不是问题,这足以让一秒钟的新帧产生。

+1

你完全关闭并重新打开所有资源'OpenCV'使用循环的每次迭代?也许你正在遭受缓冲... –

+0

你是对的,关闭并重新打开确实解决了这个问题,非常感谢! – user1967895

+0

我会从我的评论中创建一个答案,以便您可以将此线程标记为“已答复”。 –

回答

0

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

编辑:艺术请求代码示例。这里是。

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

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

+0

您是否有任何示例代码来说明解决方案? – art