2

各 MP3 フレームのマーカー バイトについてお聞きしたいです。MP3 からのフレームであることをどのように知ることができますか? いくつかの記事では、マーカーは各フレーム ヘッダーの Hexa (FF FB) であると述べています。本当ですか?

4

1 に答える 1

12

すべての MP3 フレームには、先頭に同期ワード マーカーがあります。この同期ワードは 11 ビット長で、すべて 1 です。したがって、MP3 フレームは FFF または FFE で始まります。MP3 フレーム構造の詳細については、以下のリンクを参照してください。

これは、0xFFE または 0xFFF で始まるバイト シーケンスが MP3 フレーム ヘッダーであることを意味するものではありません。他にも多くのケースが考えられます
(a) ADTS(AAC) などの他のフォーマットにも同様の同期ワードがあります。ADTS フレームの詳細はこちら.
(b) MP3 フレーム内のデータには、FFF/FFE シーケンスも含めることができます。

したがって、バイトのシーケンスが MP3 であるかどうかを判断する最善の方法は、以下を実行することです
(o) 同期語 (FFF または FFE) シーケンス
を検索します (o) 同期語の後のヘッダー ブロックを解析してフレームの長さを見つけます
(o) シーク インフレーム長ごとにファイルし、別の同期ワードがあるかどうかを確認します。
MP3 ファイルの場合は、現在の同期ワードにフレーム長を追加した後、別の同期ワードを見つける必要があります。

于 2012-07-03T16:47:12.640 に答える