我正在尝试将mp3转换为wav文件pycharm使用子流程
import subprocess
subprocess.call(['ffmpeg', '-i','test.mp3','test.wav'])
它返回找不到文件的错误,所以我将'ffmpeg'
更改为我pc上的路径,它工作。
问题是我正在制作一个应用程序,其他人可能会在其他位置安装ffpmeg(因为它是用zip下载的,可以在任何地方解压缩),但我不知道如何获得它的完整路径。
我尝试使用os
模块
import os
print(os.path('ffmpeg.exe'))
,但似乎无法获得exe
的路径Traceback (most recent call last):
File "C:UsersPercyPycharmProjectsAPPtest3.py", line 8, in <module>
print(os.path('ffmpeg.exe'))
TypeError: 'module' object is not callable
我也尝试了shutil
模块
import shutil
print(shutil.which('ffmpeg'))
print(shutil.which('ffmpeg.exe'))
但它返回2 None(可能是错误的,因为我100%肯定我已经安装了ffmpeg)
None
None
我想问是否有任何方法可以在pycharm中获得ffmpeg的完整路径或任何方法,我可以使ffmpeg安装在指定的路径与应用程序,当它被用户下载
如果你能让" everyone ";使用我的ffmpeg-downloader
安装,然后你们所有人都可以安装FFmpeg:
pip install ffmpeg-downloader
ffdl install
那么在Python中你的包可以使用
import ffmpeg_downloader as ffdl
sp.run([ffdl.ffmpeg_path, '-i', 'input.mp4', 'output.mkv'])
或者,您可以使用static-ffmpeg
(动态地)将FFmpeg安装到Lib/site-package
。(参见链接的GitHub页面了解如何。)