【发布时间】:2021-11-11 22:59:37
【问题描述】:
我有一个代码,我将 youtube 视频下载为 3gpp 并将其转换为 mp3,我需要使用 FFmpeg 来执行此操作,并且在使用 cmd 和 powershell 时效果很好,但是,当我尝试运行Python中的相同命令,它根本不起作用。
这是我的命令:
ffmpeg -i C:\YTDownloads\CurrentAudio.3gpp C:\YTDownloads\CurrentAudio.mp3
我试过了:
subprocess.call(r'%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe ffmpeg -i C:\YTDownloads\CurrentAudio.3gpp C:\YTDownloads\CurrentAudio.mp3', shell=True)
subprocess.run(["ffmpeg","-i","C:\YTDownloads\CurrentAudio.3gpp","C:\YTDownloads\CurrentAudio.mp3]")
os.system('powershell ffmpeg -i C:\YTDownloads\CurrentAudio.3gpp C:\YTDownloads\CurrentAudio.mp3')
subprocess.run([
'ffmpeg',
'-i', os.path.join(parent_dir, f"{newname}.3gpp"),
os.path.join(parent_dir, f"{newname}.mp3")
])
subprocess.call('C:\Windows\System32\powershell.exe ffmpeg -i C:\YTDownloads\CurrentAudio.3gpp C:\YTDownloads\CurrentAudio.mp3', shell=True)
它们都返回某种类型的错误,其中一些返回 ffmpeg 不是被识别为内部命令,在另一些中它说系统找不到指定的路径,但它们都不起作用,甚至认为当我在 cmd/powershell 上使用完全相同的命令时它可以完美运行。
对不起我的英语不好:3
【问题讨论】:
-
注意
subprocess.run(["ffmpeg","-i","C:\YTDownloads\CurrentAudio.3gpp","C:\YTDownloads\CurrentAudio.mp3]")中最后一个引号位置不对,它必须出现在之前右括号...
标签: python python-3.x powershell cmd ffmpeg