检测到动作时播放超时视频

时间:2015-09-02 03:02:01

标签: python opencv motion-detection

我的一个朋友让我写了一个简单的代码,每次检测到动作时播放视频。使用的硬件是Raspberry Pi B +和Logitech C170网络摄像头。

这是完整代码:http://pastebin.com/Z6nS9MXf。总的来说,它按预期工作几乎

所以问题是timeout_command部分:

def timeout_command(command, timeout):
    cmd = command.split(" ")
    start = datetime.datetime.now()
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    while process.poll() is None:
        time.sleep(0.1)
        now = datetime.datetime.now()
        if (now - start).seconds > timeout:
            os.kill(process.pid, signal.SIGKILL)
            os.waitpid(-1, os.WNOHANG)
        return None

    return process.stdout.read()

它会在超时期限内做某事,在达到期限后,该过程就会停止。

我在代码中写了这个:

timeout_command("omxplayer /home/pi/video/trololo.mp4", 10)

这应该让omxplayer播放视频只有10秒钟,然后关闭。然而,omxplayer播放视频直到最后。

如何解决这个问题?

0 个答案:

没有答案