首页 > 解决方案 > .exe 文件无法从通过 rtsp 连接的摄像机读取 VideoStream?

问题描述

我有一个小项目应该从rtsp相机中读取 VideosStream 来完成一些其他任务。我可以毫无问题地运行它的原始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. 

可以看出,hc_yolo_all.pyframe = cv2.resize(frame, (416,416))的第 60 行 正在接收一个空帧,因此输出错误。

你认为问题出在哪里?

老实说,我不知道它是否与opencv或rtsp或pyinstaller有关,所以我标记了这三个。

标签: pythonpyinstallerrtspcv2opencv-python

解决方案


好吧,我可以找到解决我自己问题的方法。看起来我们需要opencv_ffmpegxx.dll.exe文件一起使用。这里,xx应该是.py制作时的opencv版本.exe。我的opencv版本是 3.4.3(上面甚至显示了错误),因此,我opencv_ffmpeg343_64.dll.exe.

如何找到对应的dll:如果使用Anaconda,请查找C:\Users\username\Anaconda3\envs\envname\Lib\site-packages\cv2/

归功于


推荐阅读