4

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

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

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

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

我正在用 python 编写代码,但这个问题很笼统,所以我没有将它标记为 python 问题。

4

1 回答 1

3

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

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

于 2012-01-28T15:42:45.233 回答