You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AMDh264Encoder读取MFSampleExtension_CleanPoint返回MF_E_ATTRIBUTENOTFOUND

AMD Media Foundation H.264编码器MFSampleExtension_CleanPoint属性读取失败原因

该问题是AMD的MF编码器实现和其他厂商标准实现的逻辑差异导致,具体触发原因如下:

  • 基础属性标记逻辑差异
    *英伟达、Intel的主流MF H.264编码器都会默认在所有IDR关键帧对应的输出样本上自动附加MFSampleExtension_CleanPoint属性,值为1标记关键帧;但AMD h264编码器默认不会主动给输出样本附加该属性,哪怕输出的确实是IDR帧,直接查询就会返回MF_E_ATTRIBUTENOTFOUND错误。
  • 编码器初始化参数要求差异
    AMD编码器要求必须在编码前显式配置CODECAPI_AVEncCommonForceKeyFrame或MFPKEY_FORCEKEYFRAME的触发规则,同时开启MF_XVP_ENABLE_KEYFRAME_METADATA属性,才会给关键帧样本附加MFSampleExtension_CleanPoint标记,其他厂商编码器无此强制要求,不传该类参数也会默认输出属性标记。
  • 旧版本驱动实现bug
    2022年之前发布的Adrenalin显卡驱动版本中,AMD MF编码器的属性标记逻辑存在缺陷,即使配置了上述参数,也只会在携带SPS/PPS的首个关键帧样本上附加属性,后续的周期关键帧样本不会附加对应属性,只能通过NALU解析判断关键帧。

兼容方案:如果需要适配AMD编码器,可以在获取输出样本后优先查询MFSampleExtension_CleanPoint属性,查询失败时自行解析H.264 NALU头,判断NALU类型是否为5(IDR帧),即可准确识别关键帧,避免封装时缺失关键帧标记导致文件损坏。

内容的提问来源于stack exchange,提问作者user16850544

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:15:02