diff --git a/backend/video-capture.py b/backend/video-capture.py
index 530f4e63382db7f550d58764c0458f069ac0a6f3..610adad1555dfcbfcc87fd77e6d611bc194e247e 100644
--- a/backend/video-capture.py
+++ b/backend/video-capture.py
@@ -10,27 +10,41 @@ from db.database import SessionLocal
 db = SessionLocal()
 model = keras.models.load_model('assets')
 
-cap = cv2.VideoCapture("rtsp://viarezocam:superponey@10.148.38.9/stream1")
-count = 0
 frame_gap = 450
 
-while(cap.isOpened()):
-    ret, frame = cap.read()
-    if ret and count % frame_gap == 0:
-        current_time = datetime.now()
-        treated_img = fix_singular_shape(frame, 16)
-        input_image = np.expand_dims(np.squeeze(norm_by_imagenet(np.array([treated_img]))), axis=0)
-        pred_map = np.squeeze(model.predict(input_image))
-        count_prediction = np.sum(pred_map)
-        waiting_time = timedelta(seconds=120 + count_prediction * 30)
-        record = {"place": "local",
-                  "date": current_time,
-                  "density": count_prediction,
-                  "waiting_time": waiting_time}
-        db_record = models.Records(**record)
-        db.add(db_record)
-        db.commit()
-        db.refresh(db_record)
-    count += 1
-cap.release()
-cv2.destroyAllWindows()
+cameras = [{
+    "place": "local",
+    "IP": "10.148.38.9",
+    "user": "viarezocam",
+    "password": "superponey",
+    "stream": "stream1",
+    "framegap": 900, # 60 * camera frequency
+    "count": 0, # mandatory
+    "cap": None
+}]
+
+for camera in cameras:
+    camera.cap = cv2.VideoCapture(f"rtsp://{camera.user}:{camera.password}@{camera.ip}/{camera.stream}")
+
+while True:
+    for camera in cameras:
+        if camera.cap.isOpened():
+            ret, frame = camera.cap.read()
+            if ret and camera.count % camera.frame_gap == 0:
+                current_time = datetime.now()
+                treated_img = fix_singular_shape(frame, 16)
+                input_image = np.expand_dims(np.squeeze(norm_by_imagenet(np.array([treated_img]))), axis=0)
+                pred_map = np.squeeze(model.predict(input_image))
+                count_prediction = np.sum(pred_map)
+                waiting_time = timedelta(seconds=120 + count_prediction * 30)
+                record = {"place": camera.place,
+                        "date": current_time,
+                        "density": count_prediction,
+                        "waiting_time": waiting_time}
+                db_record = models.Records(**record)
+                db.add(db_record)
+                db.commit()
+                db.refresh(db_record)
+            camera.count += 1
+        else:
+            camera.cap.release()