1. 程式人生 > >音訊處理——pcm基礎知識與重取樣

音訊處理——pcm基礎知識與重取樣

對於 planar音訊(左右聲道分開存放),每個聲道有自己的資料存放位置。
聲道0的起始地址為 frame->data[0](或frame->extended_data[0])
聲道1的起始地址為 frame->data[1](或frame->extended_data[1])
聲道i的起始地址為 frame->data[i](或frame->extended_data[i])
每個聲道的資料長度為linesize[0](單位:位元組)

實際上ffmpeg在實現的時候,每個聲道的資料連續存放,不同聲道之間也是連續存放的。

地址 聲道
data[0] 聲道1 取樣點1
取樣點2
取樣點i
data[1] 聲道2 取樣點1
取樣點2
取樣點i

所以 data[i]=data[i-1] + linesize[0]

比如: AV_SAMPLE_FMT_S16P 每個聲道的資料放在單獨的buffer中,每個取樣值為一個signed 16位(範圍為-32767 to +32767)。