无法开始捕获:参数无效

时间:2017-10-09 07:14:20

标签: python bash

我是python的新手。请帮我解决下面的问题。 “无效参数”的含义是什么?

下面的代码都运行良好,但是当我添加代码时,通过数据方式发布实时流。将出现错误“无法启动捕获:无效参数i:错误抓取帧”。在发布实时流的错误之后,下面的那些功能将在运动检测时继续。

我在def is_person(image)顶部添加的代码导致错误:

os.system('sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 640x320 -n -y" -o "./output_http.so -w ./www -p 80"')

def is_person(image):

    det = Detector(image)
    faces = len(det.face())
    print ("FACE: "), det.drawColors[det.drawn-1 % len(det.drawColors)], faces
    uppers = len(det.upper_body())
    print ("UPPR: "), det.drawColors[det.drawn-1 % len(det.drawColors)], uppers
    fulls = len(det.full_body())
    print ("FULL: "), det.drawColors[det.drawn-1 % len(det.drawColors)], fulls
    peds = len(det.pedestrian())
    print ("PEDS: "), det.drawColors[det.drawn-1 % len(det.drawColors)], peds
    det.draw()
    det.overlay()

    return faces + uppers + fulls + peds
    # return len(det.face()) or len(det.full_body()) or len(det.upper_body()) # or len(det.pedestrian())

def processImage(imgFile):

    global connection
    if is_person(imgFile):
        print ("True")
        imgFile = datetime.datetime.now() .strftime ("%Y-%m-%d-%H.%M.%S.jpg")
        cam.capture (imgFile)
        #with open(imgFile, "rb") as image_file:
         #   encoded_string = base64.b64encode(image_file.read())

    else:   # Not a person
        print ("False")
    os.remove(imgFile)
    sys.exit(0) 

try:

    while True:
        previous_state = current_state
        current_state = GPIO.input(sensor)
        if current_state != previous_state:
            new_state = "HIGH" if current_state else "LOW"
            if current_state:     # Motion is Detected
                lock.acquire()
                cam.start_preview() # Comment in future
                cam.preview_fullscreen = False
                cam.preview_window = (10,10, 320,240)
                print('Motion Detected')

                for i in range(imgCount):
                    curTime = (time.strftime("%I:%M:%S")) + ".jpg"
                    cam.capture(curTime, resize=(320,240))
                    t = threading.Thread(target=processImage, args = (curTime,))
                    t.daemon = True
                    t.start()
                    time.sleep(frameSleep)
                cam.stop_preview()
                lock.release()
                time.sleep(camSleep)

except KeyboardInterrupt:

  cam.stop_preview()
  sys.exit(0)

提前谢谢。

1 个答案:

答案 0 :(得分:0)

mjpg_streamer配置存在问题。

检查comment #274 here