在我的python应用程序中,我使用OpenCV,除其他外,从IP摄像机流式传输视频:
cap = cv2.VideoCapture("http://usr:[email protected]/video.cgi")
一切正常
但是我需要获得一个可执行文件,所以我使用了PyInstaller
。在结果.exe
中,流不再工作。
相反,如果我用这个来改变捕获:
# works with camera_num = 0 (pc's webcam) and = 1 (external USB webcam)
cap = cv2.VideoCapture(camera_num)
从我的电脑摄像头捕捉,或与外部USB摄像头,一切工作.
有什么建议吗?
2条答案
按热度按时间yiytaume1#
感谢@GPPK和@Dan Mašek的评论,我可以解决这个问题。
问题是,就像@Dan Mašek说的,“FFMPEG不是一个硬依赖”。
所以一个解决方案是搜索OpenCV的FFMPEG dll。从cosnole启动
python
:输出应该类似于:
转到
cv2
文件夹,搜索opencv_ffmpeg340_64.dll
并将其复制到python应用程序的文件夹中。现在我们必须告诉
PyInstaller
将此dll添加到.exe
:llycmphe2#
我在c++中也遇到了同样的问题,我在重新编译opencv后,首先安装了gstream,ffmpeg和opencv-python,解决了这个问题。也许你可以用同样的方法来处理python。