Я пытаюсь использовать pydub конвертировать загруженные mp3s в определенной скорости передачи, используя этот код:FileNotFoundError пытается получить файл mp3
from pydub import AudioSegment
def process_mp3(mp3, id):
print(mp3) # media/track1-original
audio = AudioSegment.from_mp3(mp3)
bitrates = [128, 192, 256, 320]
for bitrate in bitrates:
audio.export(settings.MEDIA_ROOT + '/' + 'track' + id + '-' + bitrate, format="mp3", bitrate=bitrate + 'k')
def save_file(file, name):
with open(default_storage.path(settings.MEDIA_ROOT + '/' + name), 'wb+') as destination:
for chunk in file.chunks():
destination.write(chunk)
return name
Я получаю эту ошибку:
FileNotFoundError: [WinError 2] Systemet finner ikke angitt fil
И код, который вызывает process_mp3
(Примечание: track_obj - это объект модели Django, а идентификатор - из базы данных):
from mutagen.mp3 import MP3
....
mp3 = save_file(mp3, 'track' + str(track_obj.id) + '-' + 'original')
mp3_info = MP3('media/' + mp3); # This works
process_mp3('media/' + mp3, str(track_obj.id)) # This does not
Видимо, мутаген может читать файл просто отлично, но pydub не может. Что дает?
Попробуйте использовать абсолютный путь к файлу, а не относительный путь 'СМИ/...' – Alasdair
@Alasdair Это на самом деле то, что я пытался первым, что вызвало как мутаген и pydub бросить эту ошибку. –
Вы пробовали без медиа-каталога? просто попробуйте сохранить файл в текущем каталоге и посмотреть, видит ли pydub файл, чтобы изолировать проблему. – Deva