如何使用ffmpeg PCM对不同样本格式的AAC进行编码?
我使用以下代码使用libav将PCM编码为AAC。它与sample_fmt=AV_sample_fmt_S16一起工作;以及更新版本的liabv。在旧版本中,只允许sample_fmt=AV_sample_fmt_FLT,但解码器始终返回0(未解码)为了使其与sample_fmt=AV_sample_fmt_S16一起工作,我需要调整代码中的哪些内容?样本是输入格式还是输出格式?如何使用ffmpeg PCM对不同样本格式的AAC进行编码?,ffmpeg,libavcodec,libav,libavformat,Ffmpeg,Libavcodec,Libav,Libavformat,我使用以下代码使用libav将PCM编码为AAC。它与sample_fmt=AV_sample_fmt_S16一起工作;以及更新版本的liabv。在旧版本中,只允许sample_fmt=AV_sample_fmt_FLT,但解码器始终返回0(未解码)为了使其与sample_fmt=AV_sample_fmt_S16一起工作,我需要调整代码中的哪些内容?样本是输入格式还是输出格式? avcodec_register_all(); codec = avcodec_find_encoder(COD
avcodec_register_all();
codec = avcodec_find_encoder(CODEC_ID_AAC);
c = avcodec_alloc_context3(codec);
c->bit_rate = 64000;
c->sample_rate= 44100;
c->channels = 1;
c->frame_size = 86000;
c->sample_fmt = AV_SAMPLE_FMT_FLT;//---> this works with AV_SAMPLE_FMT_S16
buf = (uint8_t *)malloc(bufSize);
audioData = (uint8_t *)malloc(size);
//fill audioData
int packetSize = avcodec_encode_audio(c, buf, bufSize,
(short *)audioData);//------>returns 0 when using AV_SAMPLE_FMT_FLT