Как получить кадры в реальном времени с помощью метода видеозаписи opencv?

#python #opencv #gstreamer #rtsp

Вопрос:

Мой Opencv имеет версию 4.5.4 и скомпилирован с помощью библиотеки gstreamer.

В моей ситуации я получаю кадры потокового видео. Существует разрыв между временем потокового видео и временем получения видео(cv2.VideoCapture). И если, несмотря на потоковую передачу следующего видео, cv2.VideoCapture не получает кадры следующего потокового видео, потому что opencv не достиг последнего кадра.

Как мне ее решить? (Когда я использовал opencv версии 3.4.0, я не сталкивался с этой проблемой.)

Мой код(не использовать многопроцесс/поток)

 def connect_streaming(rtsp_url):  while True:  video_cap = cv2.VideoCapture(rtsp_url, cv2.CAP_GSTREAMER)   while video_cap.isOpened():  ret, frame = video_cap.read()  if not ret:  video_cap.release()  break  ...  

Комментарии:

1. Вы не показываете никакого кода, поэтому трудно понять, что было бы неправильно. Возможно, вам нужна многопоточность или многопроцессорность?

2. если это работало в предыдущей версии, то, возможно, вам следует отправить это авторам в качестве проблем.

Ответ №1:

Я решил эту проблему. Я думаю, что это лучший способ использовать поток для получения кадров потокового видео.

Я надеюсь, что многие люди, столкнувшиеся с такой же проблемой, решат ее после прочтения.