防止pydub打开控制台窗口

问题描述 投票:1回答:2

有没有办法在使用ffmpeg(在Windows上)时阻止pydub打开控制台窗口?每次启动ffmpeg将mp3文件转换为wav时,它都会短暂打开一个控制台窗口,当进程完成时会自动关闭,但可能会令人不安。

windows ffmpeg pydub
2个回答
2
投票

我使用的解决方案是重载from_file函数。我刚刚更改了subprocess电话,添加选项startupinfo。以下是我添加的几行:

import platform  
systeme = platform.system()  
if systeme == 'Windows':  
    startupinfo = subprocess.STARTUPINFO()  
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    startupinfo.wShowWindow = subprocess.SW_HIDE
    p = subprocess.Popen(conversion_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=startupinfo)
else:  
    p = subprocess.Popen(conversion_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)`

1
投票

我在使用pydub的任何脚本中执行以下操作:

在导入pydub之前添加import subprocess

然后,就在我在脚本中使用pydub之前,我添加:

if subprocess.mswindows: subprocess.STARTUPINFO.dwFlags |= subprocess.STARTF_USESHOWWINDOW

这告诉来自该脚本的任何子进程调用(无论是否通过pydub指令)默认情况下不显示窗口,而是查看另一个名为wShowWindow的标志来决定是否显示。由于该标志默认为0,因此不显示该窗口。

© www.soinside.com 2019 - 2024. All rights reserved.