【问题标题】:why does ffmpeg_extract_subclip error only happen in python exe为什么ffmpeg_extract_subclip错误只发生在python exe中
【发布时间】:2023-02-06 00:20:42
【问题描述】:

这段代码在 Spyder IDE 上运行时运行良好,但当我使用 auto-py-to-exe 将其转换为 exe 时崩溃。我知道这可能是因为我没有在我的 pytoexe 配置中明确包含 ffmpeg,所以我的程序的另一个用户没有安装 ffmpeg 可能会遇到介绍问题,但它甚至对我不起作用。当我注释掉 try/except 块时,tt 崩溃了,我的调试方式是使用 Windows 事件查看器,它没有提供太多细节,除了这个代码 0xC0000409(我有其他时间因为我访问了数组上的索引那不存在)所以我将脚本打印到一个文件中,给出了这个错误:'NoneType'对象没有属性'write'

try:
    ffmpeg_extract_subclip(required_video_file, clipStart , clipEnd)    
except Exception as e:
    with open('DEBUGGING.txt', 'a+') as f:
        f.writelines('\n EXCEPCION:\n'+str(e))
        f.close()

没有意义,因为 ffmpeg_extract_subclip 甚至没有 write 方法,错误仅由这一行引起,因为所有其他行都被打印到我的 txt 文件中。正如我所说,当我通过我的 IDE 完成时,剪辑成功制作,但当我运行 exe 时由于某种原因停止工作。

编辑:将 ffmpeg 和 ffprobe 放在文件夹中并没有解决它。蟒蛇版本:3.11

【问题讨论】:

  • 尝试将 ffmpeg.exeffprobe.exe 放在您的 exe 文件的同一文件夹中。如果您希望我们尝试重现该问题,请发布可执行的最小代码示例。还请说明如何使用auto-py-to-exe 转换为 exe。什么是 Python 版本? MoviePy 的版本是什么? auto-py-to-exe 的版本是什么? Python 脚本是否使用参数(我们从上面的代码中看不到)? open('DEBUGGING.txt', 'a+') 崩溃 - 确保您对工作文件夹具有写权限(使用open('DEBUGGING2.txt', 'w')并尝试以管理员身份执行)。

标签: python ffmpeg


【解决方案1】:

我想我解决了这个问题,答案与堆栈溢出ffmpeg_extract_subclip function and moviepy string output error 中的另一篇文章有​​关。我得到的奇怪错误('NoneType' 对象没有属性 'write')是由 ffmpeg、moviepy 或任何其他写入控制台的库引起的,并且由于我的应用程序是基于 Windows 的,它无法输出下载过程所以它崩溃了。我在使用 moviepy 和 cx freeze 时弄清楚了,因为这种将 py 转换为 exe 的方法也会创建一个控制台窗口,因此文本会显示在那里并且不会崩溃。我猜我不介意这个控制台,但如果你想要解决方案,它在上一个问题中提到过,要么直接使用 ffmpeg,这对我不起作用,要么暂时重定向 stdout,我认为这是最好的解决方案,但还没有还没试过。

编辑:最终有效的解决方案是这个Moviepy still prints a progress bar even after setting `verbose` to `False`,它将此参数(verbose=False,logger=None)添加到方法 write_videofile 中,是的,它正在使用 moviepy。我怀疑你可以使用我的原始代码来完成它,ffmpeg 可能有一些类似的设置,但我切换到这个具有相同功能的设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2020-07-17
    • 2015-09-29
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多