当前位置: 首页 > 知识库问答 >
问题:

如何获得MP3文件的持续时间

羿季
2023-03-14

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

随着电影:

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

我不知道我的音频文件发生了什么,我测试了音乐网站上的一些文件,仍然得到了正确的值。这是我的音频文件

共有1个答案

巫马淳
2023-03-14

试试Pyxsox

我试图用Pysox来处理包含这个问题的音频文件

注意: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信息。

 类似资料:
  • 问题内容: 如何在不创建MediaPlayer实例的情况下获得mp3曲目的持续时间?我只需要在mp3文件列表中显示mp3歌曲的长度,所以我认为我不应该为列表中的每个音轨创建MediaPlayer对象 还有一个: 有时MediaPlayer会返回错误的歌曲持续时间(我认为是错误的,因为这些文件的比特率是动态的)。如何获得正确的歌曲时长? 问题答案: 您可以使用MediaMetadataRetriev

  • 问题内容: 是否有任何PHP函数可以给我MP3持续时间。我看过ID 3的功能,但是在持续时间内我看不到任何东西,除此之外,id3是某种标签,在所有MP3中都不会出现,因此使用它没有任何意义。 问题答案: 这应该为您工作,请注意getduration函数:http ://www.zedwood.com/article/127/php-calculate- duration-of-mp3

  • 问题内容: 我想记录实际的时间花了多长时间。目前,我正在这样做: 但是,如果在运行SQL查询(或任何其他查询)时调整了时间,那将失败(产生不正确的结果)。 我不想仅仅对其进行基准测试。我想将其记录在实时应用程序中,以便查看实时系统上的趋势。 我想要类似clock_gettime(CLOCK_MONOTONIC,…)的东西,但是在Python中。并且最好不必编写一个调用clock_gettime()

  • 问题内容: 如何使用Java获取声音文件的总时间中提供的答案?适用于WAV文件,但不适用于mp3文件。 它们是(给定文件): 和: 它们为wav文件提供相同的正确结果,但为mp3文件提供错误和不同的结果。 知道要获取mp3文件的持续时间该怎么办吗? 问题答案: 使用MP3SPI:

  • 问题内容: 我正在寻找一种方法来找出python中音频文件(.wav)的持续时间。到目前为止,我看了一下蟒蛇库,,我没能得到wav文件的时间。给了我持续时间,但不一致。 提前致谢。 问题答案: 持续时间等于帧数除以帧率(每秒帧数): 关于@edwards的评论,下面是一些产生2通道wave文件的代码: 如果您在音频播放器中播放结果文件,则会发现持续时间为40秒。如果运行上面的代码,它还会计算持续时

  • 我想获取正在上传到系统中的音频/视频文件的持续时间。早些时候,我使用了,但我想它不再被维护了,因为没有与此兼容的python 3模块。 还有其他轻量级替代品吗? 如果我想写一些自己的东西来完成它,先决条件是什么?