gpt4 book ai didi

python - cx_freeze - 通过创建的程序的 GUI 运行 ffmpeg.exe 或 ffplay.exe 时打开命令窗口 - 如何隐藏它?

转载 作者:行者123 更新时间:2023-12-04 22:58:16 37 4
gpt4 key购买 nike

我已经为我的 python 程序 tool.box 使用 cx_freeze 构建了一个 MSI。
一切都很好 - 但是,我在 setup.py 中实现了这个片段:

base = None
if (sys.platform == "win32"):
base = "Win32GUI"
隐藏运行最终 .exe cx_freeze 生成的通常会打开的 cmd 窗口。
这工作正常,现在当我启动时,我看不到这个空白的 cmd 窗口。
但是 - 在我的程序中,我有几个按钮调用 ffplay.exe 和 ffmpeg.exe - 以前,没有那个片段,我可以运行程序,当我点击这些按钮时,不会出现 CMD 窗口 - 但是,现在它确实- 它显示 ffplay 或 ffmpeg 的输出。
在我的 main.py 中,我有以下命令:
command_play = [ffplay_path, originalAudio, "-ss", str(actual_start_segment), "-t", "10", "-nodisp", "-autoexit"]

ffmpeg_command = FFmpeg(
inputs={originalAudio: None},
outputs={new_filename: ['-ss', str(actual_start_segment), '-to', str(actual_end_segment), '-async', '1', '-strict', '-2', '-ar', '44100', '-ab', '56k', '-ac', '1', '-y']}
)
两者都设置为不显示 CMD 窗口。
他们似乎只在我编译时这样做。关于如何隐藏这些以使基于 GUI 的程序在最终用户使用其功能时不会出现 CMD 窗口的任何建议?

最佳答案

最后的简单解决方案是使用 Python 3.7 中的新 CREATE_NO_WINDOW 标志。
调用 ffplay 或 ffmpeg 时的新代码如下所示;

from subprocess import CREATE_NO_WINDOW

def play_beginning(command_play):

subprocess.Popen(command_play, stderr=subprocess.DEVNULL, creationflags=CREATE_NO_WINDOW)

关于python - cx_freeze - 通过创建的程序的 GUI 运行 ffmpeg.exe 或 ffplay.exe 时打开命令窗口 - 如何隐藏它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63416439/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com