Ich versuche pydub zu verwenden uploaded mp3s auf eine bestimmte Bitrate zu konvertieren, mit diesem Code:FileNotFoundError versuchen, mp3-Datei zu erhalten
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
Ich erhalte diese Fehlermeldung:
FileNotFoundError: [WinError 2] Systemet finner ikke angitt fil
Und der Code, der process_mp3
aufruft, ist (Anmerkung: track_obj ist ein Django-Modellobjekt und die ID stammt aus einer Datenbank):
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
Anscheinend kann mutagen die Datei gut lesen, aber pydub kann nicht. Was gibt?
Versuchen Sie, den absoluten Pfad zur Datei anstelle eines relativen Pfad 'media/...' – Alasdair
@Alasdair Das mit ist eigentlich das, was ich versuchte, erste und das verursacht sowohl mutagen und pydub diesen Fehler zu werfen. –
haben Sie ohne das Medienverzeichnis versucht? Versuchen Sie einfach, die Datei im aktuellen Verzeichnis zu behalten und sehen Sie, ob pydub die Datei sieht, um das Problem zu isolieren. – Deva