背景
研究python+opencv,使用VideoWriter保存摄像头视频时,jupyter notebook开发代码,在开发环境时,可以创建视频文件并正常保存视频流,但是通过pyinstaller编译打包成exe后,不能创建视频文件,或者创建了视频文件,但是不能保存视频流,视频文件显示0字节。
网上查询了很多都是强调视频编码格式不对,也就是
cv2.VideoWriter_fourcc('X','V','I','D') #DIVX,XVID,MJPG,X264,WMV1,WMV2。
也许有些人的问题出现在这里,试试其他的编码格式,就可以解决问题。
但是我将各种格式试了个遍,都不能解决问题,网上几乎没有再搜到有用的东东。
解决灵感以及方案
就这样折腾了2天,一天吃饭的时候突然有个灵感,想到曾经看opencv的文档时,提到有个基础库(暂且这么称呼)opencv_ffmpeg,然后在opencv的目录下搜了下果然有这个文件(opencv_videoio_ffmpeg420,不同版本名字可能不用),然后搜了下pyinstaller编译成exe的目录dist下应用程序文件夹(此时需要通过pyinstaller -D xxx.py 编译),没有此文件,那么很显然缺少文件,将此文件复制到应用程序下面cv2文件夹下,运行exe,应用正常创建文件并写入了视频。
亲,如果您觉得本文不错,愿意给我一些动力的话,请用手机扫描二维码即可向我打赏