今天接到一个需求:获取合成音频的时长,提供给前端使用,便于实现音频播放进度的功能。
心想,在python看来,这都不是事,python的第三方库那么丰富,肯定有python库可以实现这个需求的啦,于是上网一搜,真的有很多。但是,往往编程这一行,不是掉坑里,就是在掉坑的路上。
最后选择了libroso库,使用到的接口很简单
import librosa
time = librosa.get_duration(filename='get_duration_test.mp3')
print(time)
运行显示NoBackendError的错误,网上搜索都是说程序没有找到ffmpeg路径的问题,在shell运行
which ffmpeg
找到ffmpeg位置在/usr/bin/ffmpeg,于是进入librosa源码,将:
COMMANDS = ('ffmpeg', 'avconv')
改为:
COMMANDS = ('/usr/bin/ffmpeg', 'avconv')
然