On Tue, Mar 22, 2016 at 11:35 AM, qw <applema...@163.com> wrote: > Hi, > > I am reading ffmpeg source code, and confused about the following logic in > movenc.c, > > if (enc->codec_id == AV_CODEC_ID_AAC && pkt->size > 2 && > (AV_RB16(pkt->data) & 0xfff0) == 0xfff0) { > if (!s->streams[pkt->stream_index]->nb_frames) { > av_log(s, AV_LOG_ERROR, "Malformed AAC bitstream detected: " > "use the audio bitstream filter 'aac_adtstoasc' to fix it " > "('-bsf:a aac_adtstoasc' option with ffmpeg)\n"); > return -1; > } > av_log(s, AV_LOG_WARNING, "aac bitstream error\n"); > } > > If I used default setting to encode audio samples into packets and moved > those packets into mp4 container, my transcoding program will report: > > [mov @ 0xe30a00] Malformed AAC bitstream detected: use the audio bitstream > filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg) > > why movenc.c can't support ADTS format? how to set fdk_aac encoder to code > audio samples without the error message? >
ADTS in MOV/MP4 is not allowed, only raw AAC is. When encoding with ffmpeg straight into MP4, it should automatically do this, if you have your own application, you need to set the global header flag on the decoder context. Please post questions to the user mailing list, not the development list. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel