windows 找不到[WinError 2]的解决方案AudioSegment.from_mp3找不到文件

vvppvyoh  于 2023-01-02  发布在  Windows
关注(0)|答案(2)|浏览(411)

尽管在这个问题上有一些线索,但没有解决方案帮助我,以下是有问题的代码行:

AudioSegment.converter = r'C:/users/user_/appdata/local/packages/pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0/localcache/local-packages/python38/site-packages/ffmpeg.exe'                        
AudioSegment.ffprobe   = r'C:/users/user_/appdata/local/packages/pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0/localcache/local-packages/python38/site-packages/ffprobe.exe'
final_voice = AudioSegment.from_mp3(file_path) + AudioSegment.silent(duration=silence_duration)

我尝试过不同的方法来解决这个问题,例如添加ffmpeg.exe和ffprobe.exe的路径,但之后没有任何变化,其他解决方案没有太大意义,因为我没有使用他们有问题的模块,我没有做他们做过的事情。
如果你有任何想法,请分享,因为我还没有找到如何做的事情AudioSegment做与其他模块(顺便说一句,这个问题已经出现在每一行代码包含AudioSegment.from_mp3(file_path))
谢啦,谢啦

2nc8po8w

2nc8po8w1#

解决方法很简单,只需在脚本目录中添加ffmpeg.exe、ffprobe.exe和ffplay.exe,从FFMPEG下载页面下载这些exe文件,然后从bin文件夹中取出

swvgeqrz

swvgeqrz2#

添加ffmpeg文件对我来说不是一个选项,所以我深入挖掘了一下。简短回答:
修改本地...\site-packages\pydub\utils.pyget_prober_name()的else子句(我当前版本中的第199行),返回ffprobe.exe的绝对路径。

from pydub import AudioSegment

AudioSegment.converter = 'D:/Stuff/Software/ffmpeg/bin/ffmpeg.exe'
AudioSegment.ffprobe =  'D:/Stuff/Software/ffmpeg/bin/ffprobe.exe' # this does nothing!

mp3_fol = "D:/mp3/"
mp3_file = AudioSegment.from_mp3(mp3_fol + "my.mp3")

我使用的Windows是解压版的ffmpeg(所以没有安装,路径条目或类似的)。虽然转换器方法似乎确实设置了一个值,ffprobe方法没有做任何事情。
脚本调用的子进程只是将'ffprobe'作为一个程序来调用。当然,如果这不是一个注册的程序,这将不会起作用。因此,避免这种行为的最简单(希望也是最安全的)方法是将默认的探测器名称设置为正确的完整路径(如上所述)。

相关问题