4

フレーム長の計算に関する情報をインターネット全体で探していますが、大変でした...次を使用して、MPEG-4、AACのフレーム長をミリ秒単位で正常に計算できました。

frameLengthMs = mSamplingRate/1000

AACにはフレームごとに1つのサンプルがあるため、これは機能します。MPEG-1またはMPEG-2の場合、私は混乱しています。フレームごとに1152のサンプルがあります、わかりました、それで私はそれで何をしますか?:P

フレームサンプル:

MPEGDecoder(23069): mSamplesPerFrame: 1152
MPEGDecoder(23069): mBitrateIndex: 7
MPEGDecoder(23069): mFrameLength: 314
MPEGDecoder(23069): mSamplingRate: 44100
MPEGDecoder(23069): mMpegAudioVersion 3
MPEGDecoder(23069): mLayerDesc 1
MPEGDecoder(23069): mProtectionBit 1
MPEGDecoder(23069): mBitrateIndex 7
MPEGDecoder(23069): mSamplingRateFreqIndex 0
MPEGDecoder(23069): mPaddingBit 1
MPEGDecoder(23069): mPrivateBit 0
MPEGDecoder(23069): mChannelMode 1
MPEGDecoder(23069): mModeExtension 2
MPEGDecoder(23069): mCopyright 0
MPEGDecoder(23069): mOriginal 1
MPEGDecoder(23069): mEmphasis 0
MPEGDecoder(23069): mBitrate: 96kbps
4

1 に答える 1

13

MPEGオーディオフレームの長さは、サンプリングレートとフレームあたりのサンプル数の関数です。式は次のとおりです。

frameTimeMs = (1000/SamplingRate) * SamplesPerFrame

あなたの場合、これは

frameTimeMs = (1000/44100) * 1152

これにより、フレームあたり約26msが得られます。異なるサンプリングレートでは、異なる期間が得られます。重要なのは、MPEGオーディオは常にフレームごとに固定数のサンプルを表すことですが、各サンプルの継続時間はサンプリングレートによって異なります。

于 2011-06-15T14:58:09.050 に答える