获取持续时间mp3 python

时间:2019-01-22 02:12:10

标签: python-3.x audio mp3 duration

我尝试了许多方法,但没有获得mp3文件的确切长度值。

使用moviepy:

audiofile = AudioFileClip(url)
print("duration moviepy: " + str(audiofile.duration))

我得到结果:

duration moviepy: 183.59

使用诱变剂:

from mutagen.mp3 import MP3
audio = MP3(url)
print("duration mutagen: " + str(audio.info.length))

我收到了另一个持续时间值:

duration mutagen: 140.93416666666667

使用Windows Media Player打开文件时的实际持续时间值:2m49s

我不知道我的音频文件会如何处理,我从音乐网站测试了一些文件,但仍获得正确的值。 This is my audio file

1 个答案:

答案 0 :(得分:0)

尝试pyxsox

我试图用pysox来the audio file which includes this question post

注意:pysox需要SOX cli。

使用方法如下。

import sox
mp3_path = "YOUR STRANGE MP3 FILEPATH"
length = sox.file_info.duration(mp3_path)
print("duration sec: " + str(length))
print("duration min: " + str(int(length/60)) + ':' + str(int(length%60)))

结果是

duration sec: 205.347982
duration min: 3:25

以及有关该mp3文件持续时间的其他信息。

ID3 information => 2.49
mutagen => 2:20
pysox => 3:25
actural length => 3:26

诱变似乎只是在读取ID3信息。