Python OpenCV установил тайм-аут для VideoCapturePython

Программы на Python
Anonymous
Python OpenCV установил тайм-аут для VideoCapture

Сообщение Anonymous »

Пытаюсь установить максимальное время ожидания для VideoCapture, чтобы перехватить исключение и распечатать сообщение, если поток не работает. Например, мне нужно попробовать в течение 10 секунд, а затем предположить, что поток отключен. На данный момент у меня есть следующий код.
import cv2

try:
cap = cv2.VideoCapture("rtsp://Username:Password@IP_ADDRESS:PORT")
print("Stream found.")
cap.release()
cv2.destroyAllWindows()
except:
# It actually never reaches the exception
print("Stream not found.")

Изменить: попытался упростить ответ ниже, и он вроде как работает, как и ожидалось, но все равно имеет собственное решение о тайм-ауте.
import cv2
import time

try:
cap = cv2.VideoCapture("rtsp://DNA:DNA2020!@98.173.8.28:5514")
try:
success, video_frame = cap.read()
if success:
print('Frame read')
else:
print('No frame read')
except cv2.error as e:
print(f'CV2 Exception: {str(e)}')

cap.release()
except:
print("Stream not found.")

Вернуться в «Python»