Windows 防止pydub打开控制台窗口

Windows 防止pydub打开控制台窗口,windows,ffmpeg,pydub,Windows,Ffmpeg,Pydub,在使用ffmpeg(在Windows上)时,有没有办法防止pydub打开控制台窗口?每次启动ffmpeg将mp3文件转换为wav时,它都会短暂打开一个控制台窗口,该窗口在处理完成后自动关闭,但可能会造成干扰。我使用的解决方案是使from_file功能过载。我刚刚更改了子流程调用,添加了选项startupinfo。以下是我添加的几行内容: import platform systeme = platform.system() if systeme == 'Windows': s

在使用ffmpeg(在Windows上)时,有没有办法防止pydub打开控制台窗口?每次启动ffmpeg将mp3文件转换为wav时,它都会短暂打开一个控制台窗口,该窗口在处理完成后自动关闭,但可能会造成干扰。

我使用的解决方案是使
from_file
功能过载。我刚刚更改了
子流程
调用,添加了选项
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)`

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

在导入pydub之前添加
导入子流程

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

如果subprocess.mswindows:
subprocess.STARTUPINFO.dwFlags |=subprocess.STARTF_USESHOWWINDOW


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

pydub在子进程中运行ffmpeg-我对windows不太了解,但也许这个小消息会帮助其他人回答?在audio_segment.py中,我更改了两行
p=subprocess.Popen(conversion\u命令,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
,添加
creationflags=0x08000000
。这似乎是避免命令窗口与这些调用一起显示的一种相当常见的方法,因此,如果可能的话,这是否值得放入pydub本身?