im尝试使用ffmpeg将mp3转换为mp4(命令行) 一切正常,程序正常运行。 我有一个进度条,可以通过读取ffmpeg命令行输出来通过此功能进行处理
cls_wnd.pbar_step(line.lower())
但是在使用pyinstaller程序制作(单个).exe文件后,该文件未运行且未进行任何转换
def _cli(self ,cls_wnd ,cmd):
errors = False
cmd_output=""
line=''
try:
p = subprocess.Popen(cmd ,stdout=subprocess.PIPE ,
stderr=subprocess.STDOUT ,
universal_newlines=True ,
shell=False ,
creationflags = subprocess.CREATE_NO_WINDOW)
for line in p.stdout:
if cls_wnd.bt02.cget('text').lower()!="cancel":
p.kill()
return cmd_output, True ,'cancel'
cmd_output+=line
if line.lower().find('duration:')>-1 or line.lower().find('frame=')<1:
cls_wnd.pbar_step(line.lower())
cls_wnd.root.update()
stdoutdata, stderrdata = p.communicate()
if p.wait() != 0:
p.kill()
return cmd_output, True ,line
p.kill()
return cmd_output, errors ,' '
except OSError as e:
p.kill()
return cmd_output,True,' exit from except '
return '',True,'exit from _cli end'
cmd是这样的
cmd='ffmpeg -y -loop 1 -i 1.jpg -i 1.mp3 -c:a copy -c:v libx264 -shortest 1.mp4'
使用此命令制作.exe文件
pyinstaller -w --onefile mp3tomp4.py --onefile
如果我不使用'-w',一切都很好..但是显示了丑陋的黑色cmd-windows,我无法关闭或隐藏它