如何在不下载的情况下确定 .mp3 比特率?

iTa*_*ayb 5 mp3 bitrate

我在网上有一个 .mp3 文件列表,我想获得最高质量的文件。多媒体文件的质量等于它们的比特率。

比特率本身应该在文件的标头中找到。如果没有,也可以使用音轨的长度。(文件大小 / 轨道长度 = 比特率)

如果我在本地拥有这些文件,这些事情会很容易,但我想通过 HTTP 获取这些信息并确定哪个文件具有最高的质量。

我可以从 HTTP 标头中获取音轨的长度吗?如果没有,是否可以仅获取描述长度/比特率的位,而不是下载整个文件?

我正在用 python 编写代码,但问题非常普遍,所以我不会将其标记为 python 问题。

cmb*_*ley 3

假设远程服务器运行良好,您可以向该文件发出请求并检查标头字段HEAD的内容。它不会为您提供曲目长度或比特率,但您可以获取文件的大小。Content-Length

编辑:MP3 由多个帧组成,每个帧可以具有不同的比特率 (VBR)。轨道长度是根据每个帧的比特率计算的,而不是存储的长度本身。如果您想要可靠的比特率,则需要两次获取整个文件并获取每个帧的比特率。可以抓取文件的前几 KB 并从第一帧读取比特率,但这并不总是在文件中的同一点(例如,由于 ID3 标签的位置等)。

  • ID3v2 标签是可选的,可以有一个可选的“TLE”或“TLEN”字段,其中包含音频持续时间。此外,第一音频帧可以是隐藏在无声音频中的元数据帧。对于 CBR 文件,这可能是“Info”,对于 VBR 文件,这可能是“Xing”或“VBRI”。如果是 CBR 文件,则可以计算持续时间,但如果是 VBR 文件,则不能计算持续时间。对于 VBR 文件,您必须将所有音频帧的持续时间相加,减去第一帧(如果它是元数据帧)。 (2认同)