繁体   English   中英

如何在不下载整个文件的情况下计算远程位置的 MP3 文件的持续时间?

[英]How do I calculate the duration of an MP3 file in a remote location without downloading the entire file?

我经营一个独立的音乐网站。 我们有一个巨大的 MP3 文件存储库,存储在我们的 Amazon S3 CDN 上。 我们从不关心在上传时将音频的持续时间存储在数据库中。

现在,我需要以分钟和秒为单位的每个文件的长度。 我不确定是否在所有文件中都设置了 TLEN ID3 信息,但我知道所有文件的比特率都是 128kbps。

由于我知道mp3的数量非常多,我不想下载整个文件来计算其音频长度。 我想知道是否有更聪明的方法来做到这一点。

几乎所有的 mp3 文件在文件的开头都有 Xing/VBRi 帧,可以用来计算文件的持续时间,下载量很少。

在 PHP 中,您可能会:

  • 读取前 10 个字节以获取 id3 部分的大小
  • 读取 n 个字节,其中 n 是 id3 部分长度
  • 读取 Xing/VBRi 帧所需的字节数
  • 解析并关闭连接

阅读http://www.codeproject.com/Articles/8295/MPEG-Audio-Frame-Header#XINGHeader了解如何解析 Xing 和 VBRi 帧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM