верно понимаю, что пересборка opencv из исходников избавит от этой проблемы?
вряд ли. лучше посмотреть кто там за движок под капотом. у ffmpeg норм должно работать +/-
На всякий случай: юзаю дефолтный cv2 из conda-forge. Судя по флагам сборки, FFMPEG должен поддерживаться, но в реальности с этим бэкендом не запускается. Решил потестить работоспособность всех вариантов: import cv2 cap_names = [ attr for attr in dir(cv2) if attr.startswith("CAP_") and not attr.startswith("CAP_PROP_") ] #print(f"{cap_names = }") for cap_name in cap_names: cap_type = getattr(cv2, cap_name) try: cap = cv2.VideoCapture(0, cap_type) except Exception as e: # print(f"{cap_name:60} ERR: {e}") continue if cap.isOpened(): ret, frame = cap.read() has_frame = ret and frame is not None if has_frame: print(f"{cap_name:60} work") # else: # print(f"{cap_name:60} NOT work") cap.release() Выводит нечто такое: CAP_ANY work CAP_INTELPERC_DEPTH_MAP work CAP_OPENNI_DEPTH_MAP work CAP_OPENNI_VGA_30HZ work CAP_PVAPI_FSTRIGMODE_FREERUN work CAP_V4L work CAP_V4L2 work CAP_VFW work FFMPEG, вопреки ожиданиям, не работает. Есть у кого идеи, как завести работу буффера? На stackoverflow куча вопросов по теме нерабочего буффера, но в большинстве либо ответ "читайте лишник кадры отдельным потоком", либо о смене бэкенда для capture + закрытие вопроса. Причём встечаются упоминания, что у кого-то размер буффера работает. P.s. Есть идеи как программно проверить, что глубина буффера меняется? Мне почему-то ни единой дельной мысли не приходит, кроме искусственных задержек и кривляния перед камерой.
Обсуждают сегодня