原文件信息为:
经日志发现为avformat_write_header时出错,跟踪源码分析出错在validate_codec_tag中。mkv封装器ff_matroska_muxer信息为
.codec_tag = (const AVCodecTag* const []){
ff_codec_bmp_tags, ff_codec_wav_tags,
additional_audio_tags, additional_video_tags, additional_subtitle_tags, 0
}
在进行validate_codec_tag验证时,没有匹配到AV_CODEC_ID_AAC导致出错。
最后发现只要在写头之前使用stream->codecpar->codec_tag = 0;即可。 新版ffmpeg中,avformat_write_header 调用init_muxer时会判断par->codec_tag,如果不为0,会进行附加验证。由于之前习惯使用的是stream->codec->codec_tag = 0;导致出错