我尝试了许多方法,但没有获得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

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

最佳答案

试试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信息。

关于python-3.x - 获取持续时间mp3 python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54300310/

10-12 04:22