Ich habe ein paar IP-Cams, hauptsächlich Foscams. Einige von ihnen haben einen SD-Steckplatz, andere nicht, und hier beginnt das Problem, da die mit dem SD-Steckplatz das tun können, aber die anderen nicht, es sei denn, ich definiere einen FTP-Ordner, den ich nicht habe.
Ich brauche eine App, die alle n Intervalle automatisch im Hintergrund einen Screenshot von allen definierten Cams macht und lokal speichert. Mein PC läuft 24 Stunden.
Es ist mir egal, ob es sich um eine Win32-App oder eine Windows 10-UWP-App handelt.
OpenCV kann dies mit ein wenig Hilfe von python & numpy für Sie erledigen. Aus diesem Grund können Sie eine ipCamera-Klasse erstellen:
import base64
import time
import urllib2
import cv2
import numpy as np
"""
Examples of objects for image frame aquisition from both IP and
physically connected cameras
Requires:
- opencv (cv2 bindings)
- numpy
"""
class ipCamera(object):
def __init__(self, url, user=None, password=None):
self.url = url
auth_encoded = base64.encodestring('%s:%s' % (user, password))[:-1]
self.req = urllib2.Request(self.url)
self.req.add_header('Authorization', 'Basic %s' % auth_encoded)
def get_frame(self):
response = urllib2.urlopen(self.req)
img_array = np.asarray(bytearray(response.read()), dtype=np.uint8)
frame = cv2.imdecode(img_array, 1)
return frame
# Section for physically connected cameras removed
Persönlich würde ich das Obige mit jeder Ihrer Kameras testen, um zu sehen, ob Sie daran etwas ändern müssen. Dann müssen Sie nur noch eine Liste von Instanzen mit Ihrer Liste von Kameras und ihren Benutzernamen und Passwort-Anmeldeinformationen füllen und ein Bild von jeder in einem beliebigen Intervall in einer geeigneten Verzeichnisstruktur abrufen und speichern. Persönlich würde ich das Obige erweitern, um jeder Instanz einen Namen, einen Speicherort usw. zu geben, und eine Methode hinzufügen, um einen Frame in einem geeigneten Format zu erfassen und zu speichern.
Haftungsausschluss: Der obige Originalcode wurde am 12. Mai 2013 von Tristan Hearn an einen Github- Gist gepostet . Ich kann nicht loben, dass ich ihn selbst geschrieben habe.
Nean Der Thal
Steve Barnes
Nean Der Thal
Steve Barnes
Hack-R
Steve Barnes