登录 注册
当前位置:主页 > 资源下载 > 44 > 将AV_SAMPLE_FMT_FLTP转换为AV_SAMPLE_FMT_S16P(ffmpeg)

将AV_SAMPLE_FMT_FLTP转换为AV_SAMPLE_FMT_S16P(ffmpeg)

  • 更新:2024-08-19 23:03:38
  • 大小:13.28MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:C++ - 后端
  • 格式:RAR

资源介绍

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]