AV_SAMPLE_FMT_FLTP轉爲AV_SAMPLE_FMT_S16P(ffmpeg)

在使用ffmpeg解碼aac的時候,若是使用avcodec_decode_audio4函數解碼,那麼解碼出來的會是AV_SAMPLE_FMT_FLTP 格式的數據( float, 4bit , planar), 若是咱們但願獲得16bit的數據(如AV_SAMPLE_FMT_S16P數據),那麼咱們須要轉換一下: 函數




解決方式:
   將 samples 由 32bits 轉爲16bits. 參考 ffmpeg samplefmt.h
   若 sample 是 AV_SAMPLE_FMT_FLTP,則 sample 會是 float 格式,且值域爲 [-1.0, 1.0]
   若 sample 是 AV_SAMPLE_FMT_S16, 則 sample 會是 int16 格式,且值域爲 [-32767, +32767]

 

相關文章
相關標籤/搜索