我经营一个独立的音乐网站。我们有一个巨大的 MP3 文件存储库,存储在我们的 Amazon S3 CDN 上。我们从不在乎在上传时将音频的持续时间存储在数据库中。
现在,我需要以分钟和秒为单位的每个文件的长度。我不确定是否在所有文件中都设置了 TLEN ID3 信息,但我知道所有文件都是 128kbps 比特率。
由于我知道 mp3 的数量很大,我不想下载整个文件来计算它的音频长度。我想知道是否有更聪明的方法来做到这一点。
几乎所有的 mp3 文件在文件开头都有 Xing/VBRi 帧,可以用很少的下载量来计算文件的时长。
在 PHP 中,您可能会:
阅读http://www.codeproject.com/Articles/8295/MPEG-Audio-Frame-Header#XINGHeader了解如何解析 Xing 和 VBRi 帧。