2012-01-28 8 views
3

私はウェブ上で.mp3ファイルのリストを持っており、最高品質のファイルを取得したいと考えています。 マルチメディアファイルの品質は、それらのビットレートと同じです。.mp3ビットレートをダウンロードせずに決定するにはどうすればよいですか?

ビットレート自体はファイルのヘッダーにあります。そうでない場合は、オーディオトラックの長さも使用できます。 (ファイルサイズ/トラック長=ビットレート)

これらのファイルをローカルに置くとこれらのことは簡単になりますが、HTTP経由でこの情報を取得して、どのファイルが最高品質であるかを確認したいと思います。

HTTPヘッダーからオーディオトラックの長さを取得できますか?そうでない場合は、ファイル全体をダウンロードするのではなく、長さ/ビットレートを表すビットだけを取り出すことは可能ですか?

私はPythonでコードを書いていますが、質問は非常に一般的ですので、私はPythonの質問としてタグ付けしていません。

答えて

2

リモートサーバーがうまく動作していると仮定すると、HEAD要求をファイルに発行し、Content-Length header fieldの内容を確認できます。それはあなたにトラックの長さやビットレートを与えるものではありませんが、ファイルのサイズを得ることができます。

EDIT:MP3sは複数のフレームで構成され、それぞれが異なるビットレート(VBR)にすることができます。トラックの長さは、格納される長さ自体ではなく、これらの各フレームのビットレートから計算されます。ビットレートを確実にするには、ファイル全体を取得し、各フレームのビットレートを取得する必要があります。ファイルの最初の数KBをつかみ、最初のフレームからビットレートを読み取ることは可能かもしれませんが、これはファイル内の同じポイントに常にあるとは限りません(ID3タグなどの位置など)。

+0

それは私にコンテンツのファイルサイズをもたらします。私はバイト単位ではなく、秒単位でオーディオトラックの長さを取得したいと考えています。 – iTayb

+0

MP3には、ビットレートを示すヘッダー/タグ情報を含めることができますが、ファイルに使用されている実際のビットレートは必ずしも含まれていません。彼らは可変ビットレートでもあると考えると、より複雑になります。ファイルがCBRの場合は、[フレームヘッダー](http://www.mp3-tech.org/programmer/frame_header.html)が検索を開始する場所になっている可能性があります。 – cmbuckley

関連する問題