Я получаю эту ошибку при преобразовании файлов .m4a в .mp3 - PullRequest
0 голосов
/ 02 августа 2020

Я получаю эту ошибку при запуске скрипта, как показано

TEST.py

from pydub import AudioSegment
wav_audio = AudioSegment.from_file("Broken Summer.m4a", format="m4a")

wav_audio.export("audio1.mp3", format="mp3")    

Ошибка показана ниже

C:\Python\lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
C:\Python\lib\site-packages\pydub\utils.py:198: 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/karti/Documents/Python Programs/ChatApplication/deezer.py", line 13, in <module>
    wav_audio = AudioSegment.from_file("Broken Summer.m4a", format="m4a")
  File "C:\Python\lib\site-packages\pydub\audio_segment.py", line 685, in from_file
    info = mediainfo_json(orig_file, read_ahead_limit=read_ahead_limit)
  File "C:\Python\lib\site-packages\pydub\utils.py", line 274, in mediainfo_json
    res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE)
  File "C:\Python\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

Ответы [ 3 ]

0 голосов
/ 03 августа 2020

Даже после добавления зависимости ffmpeg, скорее всего, файл не будет прочитан. Из-за того, что pydub не читает файлы .m4a. в основном потому, что 'ffmpeg' не поддерживает этот тип файлов через библиотеку 'libav'.

У меня тоже проблемы с этим.

0 голосов
/ 03 августа 2020

Я нашел решение. Если вы установили ffmpeg или ffmpeg- python. Удалите это. Так как это не сработает Выполните эту команду

pip uninstall ffmpeg
pip uninstall ffmpeg-python

Теперь go по этой ссылке https://ffmpeg.zeranoe.com/builds/

Загрузите ffmpeg отсюда и установите его в C : \ ffmpeg Затем go в Переменные среды и в Путь добавьте новый путь как - C: \ ffmpeg \ bin Поскольку этот путь содержит ffmpeg.exe И все

Теперь предположим, что у вас есть TEST.m4a файл, который вы хотите преобразовать в TEST.mp3 Просто скопируйте и вставьте имя файла и запустите приведенный ниже сценарий. Примечание. Файл bewlo .py должен находиться в том же каталоге, что и TEST.m4a, иначе вам нужно будет добавить правильный путь в переменную CurrentFileName. Теперь просто создайте файл .py и вставьте этот код

import subprocess

CurrentFileName = 'TEST.m4a'
FinalFileName = 'TEST.mp3'

try:
    subprocess.call(['ffmpeg', '-i', f'{CurrentFileName}', f'{FinalFileName}'])

except Exception as e:
    print(e)
    print('Error While Converting Audio')

ch = input('Press Enter to Close')

Это сработало Идеально у меня, как я хотел. :) Если я не совсем понял ответ, дайте мне знать здесь или напишите мне - kartikeyvaish99@gmail.com

0 голосов
/ 02 августа 2020

pip install ffmpeg перед операцией.

pip install ffmpeg-python
...