2017-10-09 4 views
-1

Ich bin neu in Python. Bitte helfen Sie mir das folgende Problem zu lösen. Was bedeutet "ungültiges Argument"?Capture konnte nicht gestartet werden: Ungültiges Argument

Unten Code sind alle gut funktionieren, aber wenn ich einen Code hinzufügen, veröffentlichen Sie den Live-Stream durch Datapicity. Es wird der Fehler "Capture kann nicht gestartet werden: Ungültiges Argument i: Fehler beim Erfassen von Frames" auftreten. Nach dem Fehler zum Veröffentlichen des Livestreams werden diese unten bei der Bewegungserkennung ausgeführt.

Der Code, den ich in der Spitze des def is_person hinzufügen (Bild) verursachte Fehler:

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) 

Danke im Voraus.

+0

Bitte schreiben Sie die gesamte Traceback - wenn wir nicht wissen, wo der Fehler passiert, können wir nicht helfen. –

+0

@brunodesthuilliers der ganze Code sind gut, aber der Fehler passiert, während ich den Code hinzufügen os.system ('sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 640x320 -n -y" -o "./output_http.so -w ./www -p 80" ') – XYZ

Antwort

0

Sie haben ein Problem mit mjpg_streamer Konfiguration.

Überprüfen Sie comment #274 here.

+0

Ich habe erfolgreich alle mjpg-Streamer-Konfiguration gemacht ... und ich habe versucht, vor diesem Code os.system (' sudo ./mjpg_streamer -i " ./input_uvc.so -f 10 -r 640x320 -n -y "-o" ./output_http.so -w ./www -p 80 "') funktionieren in einem anderen Python-Skript gut – XYZ

Verwandte Themen