在采用ffmpeg 进行音频aac格式进行编码的时候,如果设置sample_fmt为 AV_SAMPLE_FMT_S16 格式,调用内部的aac编码库会抛出Input contains NaN/+-Inf错误,这是由于ffmpeg内置的aac 编码库不支持这种格式,这时如果必须采用AV_SAMPLE_FMT_S16 这种编码格式,必须集成第三方的aac编码库,比如libfaac和libfdk-aac这两个库都可以,我是采用的libfdk-aac这个库,只要在编译ffmpeg 时加上如下开关即可:
--enable-encoder=libfdk_aac \
--enable-decoder=libfdk_aac \
--enable-libfdk-aac \
前提是必须先编译libfdk-aac这个库,单独编译这个库的方式:
http://blog.csdn.net/xiaibiancheng/article/details/69676965
完整编译ffmpeg 集成libfdk-aac库的方式: