Pydub无法定位ffprobe。

15
这里有一个类似的问题链接:Pydub (WindowsError: [Error 2] The system can not find the file specified)。虽然在这个问题中问题出现在ffmpeg,但我通过设置绝对路径解决了它。
在使用以下任一方法设置转换器和/或ffmpeg的绝对路径后: AudioSegment.converter = r'C:\ffmpeg\bin'AudioSegment.ffmpeg = r'C:\ffmpeg\bin' 我仍然遇到这个错误:
C:\Program Files\Python36\lib\site-packages\pydub\utils.py:193: RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning) Traceback (most recent call last): File "C:/Users/Sean/Desktop/vp/encode_audio/m4a_to_wav.py", line 4, in song = AudioSegment.from_file("pines.m4a", "m4a") File "C:\Program Files\Python36\lib\site-packages\pydub\audio_segment.py", line 660, in from_file info = mediainfo_json(orig_file) File "C:\Program Files\Python36\lib\site-packages\pydub\utils.py", line 263, in mediainfo_json res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE) File "C:\Program Files\Python36\lib\subprocess.py", line 707, in init restore_signals, start_new_session) File "C:\Program Files\Python36\lib\subprocess.py", line 990, in _execute_child startupinfo) FileNotFoundError: [WinError 2] The system cannot find the file specified
我在环境变量中添加了ffmpeg和libav,按照https://github.com/jiaaro/pydub#dependencies的顺序安装了libav和pydub。
无论我做什么都似乎不起作用,所以任何想法或解决方案将不胜感激!

1
Windows 安装后,我重新启动系统,这对我起作用了。 https://dev59.com/i30QtIcB2Jgan1znXQ1e - Gatsby
Windows:我在安装后重新启动后,这个方法对我有效。 https://dev59.com/i30QtIcB2Jgan1znXQ1e - Gatsby
5个回答

10

我之前也遇到了同样的问题,但是我在五分钟前解决了。

以下是解决方案:

  1. 下载ffmpeg文件并安装到电脑上。

  2. 传递ffmpeg文件位置的系统路径。 enter image description here

(¥表示\)

我把文件放到了C:\\ffmpeg\\ffmpeg\\bin\\ffmpeg.exe

(注意:这是在我更改文件名后的路径)

from pydub import AudioSegment
AudioSegment.converter = "C:\\ffmpeg\\ffmpeg\\bin\\ffmpeg.exe"
AudioSegment.ffmpeg = "C:\\ffmpeg\\ffmpeg\\bin\\ffmpeg.exe"
AudioSegment.ffprobe ="C:\\ffmpeg\\ffmpeg\\bin\\ffprobe.exe"

在导入语句后添加这些代码。

最后,重新启动您的计算机

我曾经非常苦恼于这个问题,但现在问题已经解决了。


这解决了我一直在遇到的错误。我早已放弃并只通过cmd使用ffmpeg,但我想对于那些不幸遇到这个问题的人标记为已回答。我应该提到,现在这个错误被替换为json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)这是我找到的唯一相关链接:https://github.com/blueset/ehForwarderBot/issues/133 - Recessive

5

在 @Gopesh Kwandelwal 的答案上添加:

sudo apt install ffmpeg

另一种方法是安装 Anaconda 或 Miniconda,然后使用:
conda install ffmpeg

当我在自定义环境中时,这对我很有用,并且甚至不需要重新启动内核,更不用说重新启动计算机了。(我不能在那个帖子上发表评论,因为我没有足够的声望)。


首先,按照以下链接的步骤安装ffmpeg:https://www.geeksforgeeks.org/how-to-install-ffmpeg-on-windows/ 然后,执行conda install ffmpeg命令。这对我很有效!谢谢 :) - DANIEL ROSAS PEREZ

3

对于Linux/Ubuntu/Debian用户:

sudo apt install ffmpeg

1

0

我按照@user9402680提供的步骤操作,但仍然出现问题。然后我将FFmpeg二进制文件路径添加到PATH环境变量中,现在它可以正常工作了。


也许你错过了"我在我的路径环境变量中有ffmpeg。我还在我的路径环境变量中有libav,并按照https://github.com/jiaaro/pydub#dependencies中指定的顺序安装了libav和pydub。" - Recessive

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接