v4l2 / streamer在运行中不稳定

时间:2012-12-20 21:36:35

标签: python opencv webcam raspberry-pi v4l2

我正在为父母制作一个在线摄像头,使用覆盆子pi。我希望它能够捕获照片,将其上传到网络服务器,然后将副本上传到其他服务器进行存档。我使用脚本流媒体从网络摄像头拍摄静止图像。它的工作原理,问题是它看起来流光有时会崩溃,循环错误信息“v4l2:oops:select timeout”。这可能发生在几次射击之后,或者在10分钟的操作之后,似乎是随机的。我添加了一个命令,在每个快照之后杀死流媒体进程,它确实使程序更稳定,但最终它仍然卡在错误循环中。我不知道问题是什么,甚至不知道怎么调试..我该怎么办?

我正在使用附带驱动程序的raspbian。网络摄像头是罗技c200。我首先尝试使用opencv捕获静止图像,但无法使其正常工作。如果有人可以帮忙解决这个问题,我不知道......

这是代码,它是python:

import time
import sys
from subprocess import call
import ftputil

while True:
    call("streamer -q -f jpeg -s 640x480 -o ./current.jpeg", shell=True)
    time.sleep(0.2);
    call("killall -q streamer", shell=True)
    filename = str(time.time()) + ".jpg"
    host = ftputil.FTPHost(*****)
    #host.remove("/domains/***/public_html/webcam.jpg")
    host.upload("./current.jpeg", "/domains/***/public_html/webcam.jpg", mode='b')
    host.close()
    host = ftputil.FTPHost(****)
    #host.remove("/domains/***/public_html/webcam.jpg")
    host.upload("./current.jpeg", "/webcamarchive/"+filename, mode='b')
    host.close()
    time.sleep(10);

1 个答案:

答案 0 :(得分:1)

没关系,改为使用pygame:

cam = pygame.camera.Camera("/dev/video0",(640,480))
cam.start()
image = cam.get_image()