我正在尝试将这个python脚本作为exe文件运行-使用pyinstaller,这会引发此错误:
[ERROR:0]全局C:\ projects \ opencv-python \ opencv \ modules \ videoio \ src \ cap.cpp(415)cv :: VideoWriter :: open VIDEOIO(CV_IMAGES):引发了OpenCV异常: OpenCV(4.2.0)C:\ projects \ opencv-python \ opencv \ modules \ videoio \ src \ cap_images.cpp:267:错误:(-215:断言失败)number
当我将其作为python脚本运行时,它运行良好。 python脚本:
SCREEN_SIZE = (1920, 1080)
FPS = 20.0
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, FPS, SCREEN_SIZE)
我在命令行中使用pyinstaller:
pyinstaller --onefile python_script.py
我应该进行哪些更改才能使其正常工作?
答案 0 :(得分:0)
主要解决方案:可能是一个DLL
错误。
我想您的问题与this issue有关。 this comment中建议使用一种解决方法。建议将pyinstaller运行为
pyinstaller -F --add-data opencv_ffmpeg410_64.dll;. python_script.py
请确保适应您的OpenCV版本。确保此dll位于任何地方。
替代: 我相信错误
python \ opencv \ modules \ videoio \ src \ cap_images.cpp:267:错误:(-215:断言失败)数字<函数'cv :: icvExtractPattern'中的max_number
是由此行fourcc = cv2.VideoWriter_fourcc(*"XVID")
引起的,此处设置的值为>
最大值。
您可以尝试将fourcc设置为-1
。然后,它将为您提供用于编写的视频编解码器的选择。我已经看到未压缩的视频选择适用于大多数平台。