Audio conversion related

G7221 16000Hz sampling rate, sampling bit width is 16bit, sampling channel 1, then the following definitions and formulas:
sampling bit width: BitWide = 16 bit
sampling channels: Channel = 1 (mono: 1, Stereo: 2)
per 16000 samples
per second: SampleRate = 16000 Time per sample: PerSampleTime = 1/16000 (unit: second)
Byte size collected per second: PerSecondCaptureByte = SampleRate*BitWide*Channel/8 = 32000 (unit: byte)
per sample byte size: PerSampleByte = SampleRate * BitWide * Channel / 8 / SampleRate = 2 ( unit: bytes)
frame Rate: frameRate = 50 (fixed)
per frame playback time: PerFramePlayTime = 1000/50 = 20 ( unit: ms)
per The number of samples processed by the frame: PerFrameSampleNum = SampleRate*20/1000 = 320
Data size per frame: PerFrameDataSize = PerFrameSampleNum*PerSampleByte = 640 (Unit: Byte) The
decoded audio package size: AudioPackageSize (Unit: Byte) If received The length of the audio package of G7221 is 80 bytes, and the length of the decoded PCM audio is 1280 bytes, then AudioPackageSize = 1280
Audio package playback time after decoding: AudioPackagePlayTime = AudioPackageSize/PerFrameDataSize*PerFramePlayTime = 40ms
RTP packet timestamp increment:
1. If an RTP packet carries one frame of audio data, then: RTPTimestampInterval_Normal = SampleRate / FrameRate = 320
2. The packet carries multi-frame (n) audio data, then: RTPTimestampInterval_Special = AudioPackageSize/PerFrameDataSize*RTPTimestampInterval_Normal = 640

Example: PCMU 8000Hz 8bit 1 The size of each packet is 320 bytes
PerSampleByte = SampleRate*BitWide*Channel/8/SampleRate = 8000×8×1 /8/8000 = 1
PerFrameSampleNum = SampleRate*20/1000 = 8000×20/1000 = 160
PerFrameDataSize = PerFrameSampleNum*PerSampleByte = 160
AudioPackagePlayTime = AudioPackageSize/PerFrameDataSize*PerFramePlayTime = 320/160×20 = 40ms

Guess you like

Origin blog.csdn.net/gouguofei/article/details/40648979