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

Windows10下FFmpeg h264_amf编码CreateComponent失败的解决方法

解决FFmpeg使用h264_amf硬件编码时出现Error 36的问题

错误CreateComponent(AMFVideoEncoderVCE_AVC) failed with error 36本质是AMF编码器组件初始化失败,核心原因集中在显卡兼容性、参数支持、驱动组件这几个方面,以下是具体解决步骤:

1. 确认显卡是否支持h264_amf编码

  • h264_amf是AMD专属硬件编码器,仅支持GCN 2代及以上架构的AMD显卡(对应Radeon HD 7000系列、Radeon R200系列及以后型号)。如果是NVIDIA或Intel显卡,直接替换为对应编码器:
    • NVIDIA显卡用h264_nvenc
    • Intel显卡用h264_qsv
  • 可通过dxdiag命令查看显卡型号,核对AMD官方VCE编码支持列表。

2. 检查输入视频参数是否超出编码器范围

部分AMD显卡的AMF编码器对分辨率、帧率有严格限制:

  • 老显卡不支持奇数分辨率(如1921×1080),或过高帧率(如超过60fps)
  • 先执行ffmpeg -i <input_file>查看输入视频的分辨率、帧率,若参数不符合要求,添加调整参数:
    # 缩放为1920×1080,帧率设为30
    ffmpeg -i <input_file> -v verbose -c:v h264_amf -vf scale=1920:1080 -r 30 -acodec copy -y <output_file>
    

3. 更新AMD显卡驱动及AMF组件

  • 必须安装官方完整版AMD Adrenalin驱动,第三方精简驱动可能缺失AMF编码组件。驱动安装完成后重启系统,确保AMF服务正常运行。
  • 若已安装驱动,尝试卸载后重新安装,避免驱动损坏导致的组件异常。

4. 显式指定编码器兼容参数

部分情况下,默认参数可能触发编码器不支持的模式,显式指定预设或码率控制模式可解决问题:

# 指定medium预设,使用CBR码率控制(老显卡常用兼容模式)
ffmpeg -i <input_file> -v verbose -c:v h264_amf -preset medium -rc cbr -acodec copy -y <output_file>

5. 验证FFmpeg的AMF支持完整性

  • 执行ffmpeg -encoders | findstr amf,确认输出中存在h264_amf编码器。如果没有,说明当前FFmpeg构建版本未启用AMF支持,更换为gyan.dev的full_build版本(essentials_build可能精简了部分硬件编码组件)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:17:38