4

私は独立した音楽ウェブサイトを運営しています。AmazonS3CDNに保存されているMP3ファイルの巨大なリポジトリがあります。アップロード中にオーディオの長さをデータベースに保存することは決して気にしませんでした。

ここで、これらの各ファイルの長さを分と秒で指定する必要があります。TLEN ID3情報がすべてのファイルに設定されているかどうかはわかりませんが、すべてのファイルが128kbpsのビットレートであることはわかっています。

mp3の数が非常に多いことを知っているので、オーディオの長さを計算するためにファイル全体をダウンロードしたくありません。これを行うためのより賢い方法があるかどうか疑問に思いました。

4

1 に答える 1

5

ほとんどすべての mp3 ファイルには、ファイルの先頭に Xing/VBRi フレームがあり、これを使用して、ダウンロードをほとんど行わずにファイルの長さを計算できます。

PHP では、おそらく次のようになります。

  • 最初の 10 バイトを読み取って、id3 部分のサイズを取得します
  • n バイトの量を読み取ります。ここで、n は id3 部分の長さです
  • Xing/VBRi フレームに必要なバイト数を読み取る
  • 接続を解析して閉じる

Xing および VBRi フレームを解析する方法については、http ://www.codeproject.com/Articles/8295/MPEG-Audio-Frame-Header#XINGHeaderを参照してください。

于 2012-06-11T07:18:15.587 に答える