Pydub не может найти ffprobe

Вот ссылка на аналогичный вопрос к этому: Pydub (WindowsError: [Ошибка 2] Система не может найти указанный файл) Хотя в этом проблема с 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 на моем пути envvar. У меня также есть libav в моем пути envvar, и я установил libav, а затем pydub в порядке, указанном в https://github.com/jiaaro/pydub#dependencies.

Ничего из того, что я делаю, похоже, не работает, поэтому будем благодарны за любые идеи или решения!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
0
12 289
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

У меня была такая же проблема, но я решил ее пять минут назад.

Вот решение:

  1. Загрузите файл ffmpeg на свой компьютер и установите его.

  2. Передайте системный путь расположения файла ffmpeg.

(¥ означает \)

Закладываю файл в 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"

Поместите эти строки после предложения импорта.

Наконец, перезагрузите ваш компьютер

Я очень сильно страдал от этой проблемы, но теперь проблема решена.

Это решило полученную мной ошибку. Я давно отказался от этого и вместо этого просто использую ffmpeg через cmd, но подумал, что отмечу это как ответ для тех из вас, кому посчастливилось наткнуться на этот вопрос. Я должен упомянуть, что эта ошибка теперь заменена на json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0). Это единственная ссылка, которую я мог найти, относящуюся к ней: github.com/blueset/ehForwarderBot/issues/133

Recessive 21.08.2018 01:30

Я выполнил шаг, упомянутый @ user9402680, но все еще вызываю проблему. Затем я добавляю путь к файлу bin ffmpeg в переменную среды PATH. Теперь он работает нормально

Может вы пропустили "I have ffmpeg in my path envvar. I also have libav in my path envvar, and installed libav and then pydub in the order specified at https://github.com/jiaaro/pydub#dependencies."

Recessive 14.03.2019 00:26

для пользователей LINUX / ubuntu / deb:

sudo apt install ffmpeg

Чтобы добавить к ответу @Gopesh Kwandelwal

sudo apt install ffmpeg

альтернатива - установить Anaconda или Miniconda, а затем использовать:
conda install ffmpeg

Это сработало для меня, когда я находился в пользовательской среде, и даже не требовал перезапуска ядра, не говоря уже о перезагрузке компьютера. (Я не мог комментировать эту тему, потому что у меня недостаточно репутации).

Другие вопросы по теме