登录
首页 >  文章 >  python教程

使用 Pyinstaller 生成可视化界面程序时,如何阻止 ffmpeg 转换音频时命令窗口弹出?

时间:2024-11-14 13:42:57 181浏览 收藏

目前golang学习网上已经有很多关于文章的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《使用 Pyinstaller 生成可视化界面程序时,如何阻止 ffmpeg 转换音频时命令窗口弹出?》,也希望能帮助到大家,如果阅读完后真的对你学习文章有帮助,欢迎动动手指,评论留言并分享~

使用 Pyinstaller 生成可视化界面程序时,如何阻止 ffmpeg 转换音频时命令窗口弹出?

在使用pyinstaller生成可视化界面程序时,调用ffmpeg转换音频的subprocess.run()可能导致命令窗口弹出。为了解决这个问题,开发者尝试了以下方法:

  • 添加creationflags=subprocess.create_no_window参数:
subprocess.run(command, creationflags=subprocess.create_no_window)
  • 对于mp3转换,添加startupinfo参数:
startupinfo = subprocess.startupinfo()
startupinfo.dwflags |= subprocess.startf_useshowwindow

subprocess.run(command, startupinfo=startupinfo, creationflags=subprocess.create_no_window)

然而,这些方法都无法有效屏蔽mp3转换时的命令窗口。这个问题的根源在于wav和mp3转换命令的不同。wav转换命令中使用-y参数来覆盖输出文件,而-y参数会在windows系统中打开命令窗口。

因此,开发者需要在mp3转换命令中也添加-y参数,如下所示:

command = [
    "ffmpeg",
    "-i", file_path,
    "-loglevel", "quiet",       # 屏蔽ffmpeg log
    "-ar", sample_rate,         # 设置采样率为 16kHz
    "-b:a", bitrate,            # 设置比特率为 40kbps
    "-ac", audio_channel,       # 设置音频通道数为 2(立体声)
    "-c:a", "libmp3lame",       # 使用libmp3lame编码器
    "-q:a", "9",                # 设置质量参数为 9,确保使用恒定比特率
    "-filter:a", f"volume=1.5", # 调整音量
    "-y", save_path             # 覆盖输出文件
]

subprocess.run(command, creationflags=subprocess.CREATE_NO_WINDOW)

添加-y参数后,mp3转换也能够有效屏蔽命令窗口的弹出了。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>