【已解决】pyinstaller 将程序打包成 exe 文件后,无法保存视频或者保存的视频为空文件

简介: 【已解决】pyinstaller 将程序打包成 exe 文件后,无法保存视频或者保存的视频为空文件

问题描述

使用pyinstaller将python程序打包为exe文件,其中包含保存视频的代码。直接运行脚本时,程序能够正确的保存视频。但是通过pyinstaller打包成exe文件后,exe文件无法保存视频或者保存的视频文件为空。

解决方法

方法一

将python的环境下的cv2安装包中的opencv_videoio_ffmpeg481_64.dll文件拷贝到exe的同目录下即可恢复正常。每个人的python路径不一样,opencv_videoio_ffmpeg481_64.dll文件名中的数字部分也可能不一样。我的文件路如下:

D:\anaconda3\envs\yolov8test\Lib\site-packages\cv2

方法二

打包exe文件时,使用--add-binary参数,将上述opencv_videoio_ffmpeg481_64.dll文件一起打包进来即可。命名格式如下:

--add-binary参数后面写的是opencv_videoio_ffmpeg481_64.dll文件的绝对路径。

pyinstaller --onefile videoSave.py --add-binary D:\anaconda3\envs\yolov8test\Lib\site-packages\cv2\opencv_videoio_ffmpeg481_64.dll

参考

1.pyinstaller 打包成 exe 文件后无法保存视频的问题

2.Exe file build by Pyinstaller can not save video with cv2.VideoWriter

相关文章
|
8月前
报错:文件夹在另一个程序中打开无法删除怎么办
报错:文件夹在另一个程序中打开无法删除怎么办
179 1
|
3月前
|
Python
Python实用记录(十二):文件夹下所有文件重命名以及根据图片路径保存到新路径下保存
这篇文章介绍了如何使用Python脚本对TTK100_VOC数据集中的JPEGImages文件夹下的图片文件进行批量重命名,并将它们保存到指定的新路径。
48 0
|
8月前
|
存储 定位技术 Python
批量将文件名称符合要求的文件自动复制到新文件夹:Python实现
批量将文件名称符合要求的文件自动复制到新文件夹:Python实现
119 2
|
存储 JSON 安全
electron如何自定义目录,修改文件名保存下载的网络文件
很多同学觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage无法做到,原因就是区别1。
bat文件调用cmd命令批量提取文件夹中的文件名(批量修改文件扩展名)
bat文件调用cmd命令批量提取文件夹中的文件名(批量修改文件扩展名)
1232 0
bat文件调用cmd命令批量提取文件夹中的文件名(批量修改文件扩展名)
python批量更改目录名/文件名
简介:跑模型和测试一些批量操作时,常常需要一个或多个文件中的文件的命名格式具有一定的规律。有时候获取的数据又是从一些网站爬取下来的,数据名具有一定的不规律性,这是就需要我们去重命名这些文件。10,20个还好说,如果是上百个,上千个,甚至上万个呢?我们还能去手动命名吗?显然不可能的!这时就需要批量更改文件名的操作。
BAT 批处理命令 - 实现输出当前文件夹下的所有文件夹名的功能实例演示
BAT 批处理命令 - 实现输出当前文件夹下的所有文件夹名的功能实例演示
520 0
BAT 批处理命令 - 实现输出当前文件夹下的所有文件夹名的功能实例演示
修改注册表打开PDF内嵌的zip等文件
今天在打开一个 PDF 文件的时候,发现文件里面嵌入的 .zip 文件无法打开。当然 .png 之类的文件还是可以打开的。 网上的各种“信任管理器”白名单方法都是无效的。 后来查了官网说明,得知是因为这类文件不安全,所以不允许打开。
754 0
|
数据安全/隐私保护
命令行方式调用winrar对文件夹进行zip压缩示例代码
调用winRAR进行压缩 [csharp] view plain copy   using System;   using System.Collections.Generic;   using System.
2540 0
|
编译器 C语言 C++