#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:
Я решил эту проблему. Я думаю, что это лучший способ использовать поток для получения кадров потокового видео.
Я надеюсь, что многие люди, столкнувшиеся с такой же проблемой, решат ее после прочтения.