我在网上有一个 .mp3 文件列表,我想获得最高质量的文件。多媒体文件的质量等于它们的比特率。
比特率本身应该在文件的标头中找到。如果没有,也可以使用音轨的长度。(文件大小 / 轨道长度 = 比特率)
如果我在本地拥有这些文件,这些事情会很容易,但我想通过 HTTP 获取这些信息并确定哪个文件具有最高的质量。
我可以从 HTTP 标头中获取音轨的长度吗?如果没有,是否可以仅获取描述长度/比特率的位,而不是下载整个文件?
我正在用 python 编写代码,但问题非常普遍,所以我不会将其标记为 python 问题。
假设远程服务器运行良好,您可以向该文件发出请求并检查标头字段HEAD的内容。它不会为您提供曲目长度或比特率,但您可以获取文件的大小。Content-Length
编辑:MP3 由多个帧组成,每个帧可以具有不同的比特率 (VBR)。轨道长度是根据每个帧的比特率计算的,而不是存储的长度本身。如果您想要可靠的比特率,则需要两次获取整个文件并获取每个帧的比特率。可以抓取文件的前几 KB 并从第一帧读取比特率,但这并不总是在文件中的同一点(例如,由于 ID3 标签的位置等)。