.exe не может прочитать видеопоток с камеры, подключенной через rtsp?

У меня есть небольшой проект, который должен читать VideoStream с камеры rtsp для выполнения некоторых других задач. Я мог без проблем запустить исходный файл hc_yolo_all.py. Однако после создания исполняемого файла с помощью pyinstaller --onefile hc_yolo_all.py он не смог получить VideoStream и выдал ошибку

 Traceback (most recent call last):
  File "hc_yolo_all.py", line 60, in <module>
cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'

[7340] Failed to execute script hc_yolo_all. 

Видно, что frame = cv2.resize(frame, (416,416)), строка 60 файла hc_yolo_all.py получает пустой кадр и поэтому выводит ошибку.

Как вы думаете, в чем заключается проблема?

Я, если честно, не знаю, связано ли это с opencv, rtsp или pyinstaller, поэтому я отметил эти три.


person bit_scientist    schedule 14.11.2018    source источник
comment
Вы могли бы просто реализовать простой оператор if, который применяет cv2.resize только в том случае, если полученный кадр не пуст? Таким образом, вы сможете получить весь видеопоток rtsp, игнорируя пустые входящие кадры.   -  person Employee    schedule 14.11.2018
comment
@Employee, хорошее замечание, но я упомянул, что могу запускать программу без каких-либо проблем, когда напрямую использую сам файл .py. Иначе я бы не смог этого сделать. Я склонен думать, что файл .exe не может получить доступ к указанному адресу rtsp   -  person bit_scientist    schedule 15.11.2018


Ответы (1)


Ну, я мог бы найти решение моего собственного вопроса. Похоже, нам нужно иметь файл opencv_ffmpegxx.dll вместе с файлом .exe. Здесь xx должна быть версия opencv, когда .py делался .exe. Моя opencv версия была 3.4.3 (даже ошибка отображается выше), поэтому я поставил opencv_ffmpeg343_64.dll рядом с моей .exe.

Как найти соответствующую dll: Найдите C:\Users\username\Anaconda3\envs\envname\Lib\site-packages\cv2/ в случае использования Anaconda.

Кредиты на это

person bit_scientist    schedule 26.11.2018