OpenCv Python frame empty in mjpeg stream from webcam -


i'm creating program displays 4 mjpg cameras in grid, problem happens frame empty , stream freeze, capture error checking size of each frame, , if equal 1 continue cycle, problem remain in control loop, seems stream flow not able obtain valid frame, suggestion?

import socket import numpy np import cv2  cap = cv2.videocapture("http://85.90.40.19/mjpg/video.mjpg") cap2 = cv2.videocapture("http://85.90.40.19/mjpg/video.mjpg") cap3 = cv2.videocapture("http://85.90.40.19/mjpg/video.mjpg") cap4 = cv2.videocapture("http://85.90.40.19/mjpg/video.mjpg")    cv2.namedwindow('frame', cv2.wnd_prop_fullscreen)  cv2.setwindowproperty('frame', cv2.wnd_prop_fullscreen, cv2.window_fullscreen)  while true:      try:          ret, frame = cap.read()          ret2, frame2 = cap2.read()          ret3, frame3 = cap2.read()          ret4, frame4 = cap2.read()      except:          print("try catch")          continue         size = np.size(frame)      size2 = np.size(frame2)      size3 = np.size(frame3)      size4 = np.size(frame4)        if (size or size2 or size3 or size4) == 1:         print("frame 0")         continue       # print("dimensione" + str(size))       rframe = cv2.resize(frame, (640,480))      rframe2 = cv2.resize(frame2, (640,480))      rframe3 = cv2.resize(frame3, (640,480))      rframe4 = cv2.resize(frame4, (640,480))       print(ret,ret2,ret3,ret4)        vert1 = np.vstack((rframe,rframe2))      vert2 = np.vstack((rframe3,rframe4))       both = np.hstack((vert1,vert2))      print(both.shape)      # both.resize((1024, 768,3))       cv2.imshow('frame', both)      if cv2.waitkey(1) == 27:          break  cap.release() cv2.destroyallwindows() 

thanks , sorry bad english

could suggest following type of approach:

try:     ret, frame = cap.read() except:     ret, frame = (-1, blackframe)  try:     ret2, frame2 = cap2.read() except:     ret2, frame2 = (-1, blackframe)  try:     ret3, frame3 = cap3.read() except:     ret3, frame3 = (-1, blackframe)  try:     ret4, frame4 = cap4.read() except:     ret4, frame4 = (-1, blackframe) 

where blackframe suitable image have available when capture fails. allow other frames continue displayed.

the aim remove continue statement causes execution return top without letting of other code execute.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -