PCM转AAC  
报错如下:
Output #0, adts, to '/var/mobile/Containers/Data/Application/6BD36B53-E9BF-49BF-9BA3-8CEBD98D2233/Documents/TestAAC1.aac':
    Stream #0:0: Audio: aac, 44100 Hz, stereo, s16, 64 kb/s
[aac @ 0x14c8a0400] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.查找问题说 pCodecCtx->strict_std_compliance =FF_COMPLIANCE_EXPERIMENTAL; 然后解决。出现下面的错误:
Output #0, adts, to '/var/mobile/Containers/Data/Application/4DF33CCF-C12B-4CB5-8D50-019204860CC7/Documents/TestAAC1.aac':
    Stream #0:0: Audio: aac, 44100 Hz, stereo, s16, 64 kb/s
[aac @ 0x14e873200] Specified sample format s16 is invalid or not supported
Failed to open encoder!Specified sample format s16 is invalid or not supported? 求解

解决方案 »

  1.   

    按照理解:sample_fmt 不是(或不支持) AV_SAMPLE_FMT_S16 格式,你换种? 比如:AV_SAMPLE_FMT_FLTP 。。
      

  2.   


    所有的格式: https://www.ffmpeg.org/doxygen/2.0/samplefmt_8h.htmlenum   AVSampleFormat {
      AV_SAMPLE_FMT_NONE = -1, AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32,
      AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P,
      AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_DBLP, AV_SAMPLE_FMT_NB
    }或者试下:AV_SAMPLE_FMT_S16P ?
      

  3.   

    这个没用,不过还是谢谢
    Output #0, adts, to '/var/mobile/Containers/Data/Application/B956CB26-C09A-406B-A7B8-0C389BDD8F1B/Documents/TestAAC1.aac':
        Stream #0:0: Audio: aac, 8000 Hz, 1 channels (FL+FR), s16p, 0 kb/s
    [aac @ 0x13480ca00] Specified sample format s16p is invalid or not supported
    Failed to open encoder!
    你用过Ffmpeg 将PCM转AAC吗?
      

  4.   

    修改了 ,还是报错!
    你用过Ffmpeg 将PCM转AAC吗?
      

  5.   

    这个打印是从avcodec_open2里打印出来的,看源码就知道sample_fmt不支持AV_SAMPLE_FMT_S16,至于支持哪一种?可以参考avcodec_open2,打印出pCodec->sample_fmts就知道了
      

  6.   

    http://blog.csdn.net/lichen18848950451/article/details/78265659