音频换算相关

G7221采样率为16000Hz, 采样位宽为16bit, 采样通道为1, 则有如下定义和公式:
采样位宽: BitWide = 16 bit
采样通道: Channel = 1 (单声道:1,立体声:2)
每秒16000个样本: SampleRate = 16000
每个样本时间: PerSampleTime = 1/16000 (单位: 秒)
每秒采集字节大小: PerSecondCaptureByte = SampleRate*BitWide*Channel/8 = 32000 (单位: 字节)
每个样本字节大小: PerSampleByte = SampleRate*BitWide*Channel/8/SampleRate = 2 (单位: 字节)
帧率: FrameRate = 50 (固定)
每帧播放时间: PerFramePlayTime = 1000 / 50 = 20 (单位: 毫秒)
每帧处理的样本数量: PerFrameSampleNum = SampleRate*20/1000 = 320
每帧数据大小: PerFrameDataSize = PerFrameSampleNum*PerSampleByte = 640 (单位: 字节)
解码后的音频包大小: AudioPackageSize (单位: 字节) 假如收到G7221的音频包长度为80字节, 解码后的PCM音频长度为1280字节, 则AudioPackageSize = 1280
解码后的音频包播放时间: AudioPackagePlayTime = AudioPackageSize/PerFrameDataSize*PerFramePlayTime = 40ms
RTP包时间戳增量:
1.如果一个RTP包负载一帧音频数据, 则: RTPTimestampInterval_Normal = SampleRate / FrameRate = 320
2.如果一个RTP包负载多帧(n)音频数据, 则: RTPTimestampInterval_Special = AudioPackageSize/PerFrameDataSize*RTPTimestampInterval_Normal = 640

例: PCMU 8000Hz 8bit 1 每包大小320字节
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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值