news 2026/9/11 4:55:31

如何使用 mpv 的 amd_frc 滤镜启用 AMD FRC 帧率转换?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用 mpv 的 amd_frc 滤镜启用 AMD FRC 帧率转换?

如何使用 mpv 的 amd_frc 滤镜启用 AMD FRC 帧率转换?

【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv

想在 AMD 显卡上把低帧率视频(如 24 Hz 素材)转换出更高帧率的输出时,mpv 提供了一个 mpv 内置的视频滤镜amf_frc(AMD Frame Rate Conversion,基于 AMD AMF 的 FRC 组件)。本文只覆盖这个任务:把amf_frc挂进--vf滤镜链,让它正确收到 D3D11 格式的输入帧,并确认可用地验证它已经生效。

先明确一个命名问题:这个滤镜在项目文档 vf.rst 中的名字是amf_frc,接口变更记录 vf-amd-frc.txt 写的也是add --vf=amf_frc。它对应的就是标题所说的 AMD FRC 帧率转换功能,但命令行里必须写--vf=amf_frc,而不是amd_frc

前提条件

按 vf.rst 的说明,这个滤镜有两个硬性要求:

  1. AMD 硬件和驱动:需要支持 AMF FRC 的 AMD 硬件及驱动,mpv 运行时通过加载 AMF 动态库来调用它。
  2. 输入必须是 D3D11 格式:文档写明 “AMF FRC only supports D3D11 input currently”,也就是说视频帧必须已经处于 D3D11 硬件格式上。文档给出的两条做法是:
    • 使用--hwdec=d3d11va硬件解码,让解码输出直接是 D3D11 帧;
    • 或用--vf-pre=format=d3d11把软解帧上传到 D3D11。

帧率转换的效果是把输入帧率翻倍:滤镜通过在相邻帧之间生成中间帧实现,例如 24 Hz 输入得到 48 Hz 输出。它不会按显示器刷新率自动调整倍数。

基本启用方式

最短可行路径:用--vf-pre=format=d3d11把帧上传到 D3D11,再把amf_frc追加到滤镜链末尾:

mpv video.mkv --vf-pre=format=d3d11 --vf=amf_frc
  • --vf-pre=format=d3d11保证进入amf_frc的帧是 D3D11 格式,满足滤镜的输入要求;
  • --vf=amf_frc启用滤镜,不传任何参数时全部使用默认值。

如果你本来就在用 D3D11 硬件解码,可以省掉format=d3d11上传步骤:

mpv video.mkv --hwdec=d3d11va --vf=amf_frc

此时帧从解码器出来就已经在 D3D11 上,滤镜链只需要amf_frc

配置滤镜参数

amf_frc的参数按--vf的通用规则书写:参数名用=,多个参数用:分隔(注意不是逗号,逗号是分隔下一个滤镜的)。

mpv video.mkv --hwdec=d3d11va --d3d11va-zero-copy \ --vf=amf_frc:profile=high:mv-search=performance:indicator=yes

文档中给出的参数及其默认值:

参数默认值文档说明
profileauto画质档位。auto按输入分辨率选档:1440p 及以下用high,1440p 及以上用superlow分层运动搜索层数更少,仅建议极分辨率场景;high建议用于 1440p 及以下;super运动搜索层数更多,建议用于 1440p 及以上
mv-searchnative运动矢量搜索模式。native在源图全分辨率上搜索;performance在缩小后的图上搜索,文档建议 APU 或低端 GPU 使用
fallbackno插值置信度过低时的回退行为。设为 yes 时回退到简单帧混合;不设置则重复最后一帧
indicatorno是否在画面左上角显示 FRC indicator 方框
future-frameyes启用时插值计算会额外使用下一帧信息,代价是引入一帧时间的延迟

需要说明的组合关系:

  • 文档提到--d3d11va-zero-copy“is also recommended for better performance”,它只在--hwdec=d3d11va路径下有意义;软解 +format=d3d11上传的路径不涉及 zero-copy。
  • indicator=yes主要用于确认滤镜在工作,见下一节。

确认滤镜已生效

文档没有给出固定的日志字符串,但可以按两条路径验证:

  1. 运行时指示器(文档明确给出的开关):加indicator=yes后,画面左上角会显示 FRC indicator 方框:

    mpv video.mkv --vf-pre=format=d3d11 --vf=amf_frc:indicator=yes

    看到指示方框说明滤镜已挂载并参与帧转换;看不到则说明滤镜链没建起来(常见原因:未满足 D3D11 输入要求、驱动/AMF 库加载失败,此时 mpv 会在创建滤镜时报错,终端日志可见)。

  2. 确认滤镜名存在--vf=<filter>=help会打印某个滤镜的参数名和取值范围(见 vf.rst),--vf=help可以列出当前编译版本中可用的全部视频滤镜。如果你的 mpv 是较老版本,列表中找不到amf_frc,说明该滤镜尚未包含(它由 vf-amd-frc.txt 记录的接口变更新增),需要更新 mpv 构建。

限制与边界

  • 输入只支持 D3D11,没有 D3D11 帧时必须先经--hwdec=d3d11va--vf-pre=format=d3d11处理。
  • 输出帧率固定为输入的两倍,不是“对齐显示器刷新率”。
  • 依赖 AMF 组件:加载 AMF 库失败时滤镜无法创建,表现为启动报错而不是静默失效(AMF 库由 AMD 驱动提供)。
  • 需要逐帧参数调优时,可用--vf=amf_frc=help打印完整参数名与取值范围;若只想临时对比效果,也可以按 vf.rst 的通用规则给滤镜加@label前缀后在运行时用vf命令切换,本文不再展开。

参考来源:DOCS/man/vf.rst(amf_frc条目及--vf通用语法)、DOCS/interface-changes/vf-amd-frc.txt、filters/user_filters.c(amf_frc注册入口)、video/filter/vf_amf.c(AMF FRC 组件实现)。

【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 4:54:45

CodeWhale 断网后如何恢复:用 /queue 查看并重新发送离线队列

CodeWhale 断网后如何恢复&#xff1a;用 /queue 查看并重新发送离线队列 【免费下载链接】Codewhale Open-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/9/11 4:50:51

持续更新的Wayland客户端开发指南:从裸协议到实战源码

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:48:50

免费邮件营销平台BillionMail:从零到群发指南

免费邮件营销平台BillionMail&#xff1a;从零到群发指南 【免费下载链接】BillionMail BillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg…

作者头像 李华
网站建设 2026/9/11 4:48:47

CAN总线从物理层到协议层:车载与机器人控制实战解析

搞车载和机器人控制这些年&#xff0c;我最大的感受是&#xff1a;CAN总线就是那个绕不过去的"基础设施"。不管是整车电子电气架构里的动力域、车身域、底盘域&#xff0c;还是一条机械臂里的多个关节电机&#xff0c;只要涉及多节点、实时性强、环境又恶劣的通信场景…

作者头像 李华