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]

 

相关文章
相关标签/搜索