我正在尝试使用pydub将上传的 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 模型对象,ID 来自数据库):
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
显然,mutagen 可以很好地读取文件,但 pydub 不能。是什么赋予了?