ffmpeg mov转换 mkv时出现Tag mp4a incompatible with output codec id '86018'

 原文件信息为:

 

经日志发现为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;导致出错

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值