Contents

在 mpv 啟用 AMD Fluid Motion Frames (AFMF) 補幀

最近幫朋友測了一輪 mpv 的 AFMF 補幀設定,確認在條件符合的情況下,的確可以正常啟用,而且搭配 AI 畫質拉升一起使用時,整體觀看體驗也不錯。雖然我自己手上沒有 AMD 內顯或外顯,沒辦法在自己的機器長時間交叉驗證,但至少這次實測結果是可行的,所以先把步驟整理成筆記,之後要重配環境比較不會再重踩一次。

這篇主要會整理幾個重點:mpv 啟用 AFMF 需要什麼條件、mpv.conf 應該怎麼寫、濾鏡怎麼確認有沒有真的生效,以及和 VapourSynth 串接時要注意哪些細節。

先看原始討論
本篇內容主要參考 AMD Fluid Motion Frames 补帧 · hooke007/mpv_PlayKit · Discussion #650,這裡偏向我自己的整理筆記與實作紀錄。若你要追最新參數、相容性或額外玩法,建議還是一起對照原討論。

先講結論

  1. mpv 可以透過 amf_frc 濾鏡啟用 AFMF 補幀。
  2. 前提是要有支援的 AMD GPU,並且 mpv 與相關濾鏡環境要正確設定。
  3. 硬解與軟解都能用,但設定方式略有不同,尤其軟解模式一定要補上 format=d3d11
  4. 如果你還有串接 VapourSynth 或 AI 超分流程,記得把影格格式轉成 d3d11,不然 AFMF 很容易看起來像是沒啟動。

心智圖

mindmap root((mpv 啟用 AFMF)) 前置需求 AMD GPU mpv 最新版 基本設定 d3d11 顯卡指定 硬解模式 軟解模式 濾鏡驗證 amf_frc indicator=yes 串接注意 VapourSynth format=d3d11 實測心得 可正常補幀 可搭配 AI 拉升畫質

1. 環境需求

在開始前,先確認環境條件有到位,不然後面就算把設定檔照抄,濾鏡也可能完全不會動。

  1. 需要有 AMD GPU,不論是內顯或外顯都可以,但前提是驅動與功能支援 AFMF。
  2. 建議使用較新的 mpv 版本,避免碰到舊版在濾鏡、硬解或裝置辨識上的問題。
  3. Windows 環境下,若你不想自己編譯,可以先用別人整理好的版本,例如 zhongfly/mpv-winbuild
我的測試背景
我自己沒有 AMD 內顯或外顯,所以這次是幫朋友測試設定是否能正常使用。實際結果是 AFMF 可以啟用,搭配 AI 畫質拉升與補幀後,主觀觀看體驗是順的,至少不是那種設定完卻完全沒作用的狀態。

2. mpv.conf 基本設定

如果你的目標很單純,就是先讓 AFMF 成功啟用,建議先從最基本的 mpv.conf 設定開始,不要一開始就串太多濾鏡,這樣比較容易確認問題到底卡在哪。

指定顯卡

先讓 mpv 明確知道要使用哪一張 AMD 顯卡:

1
2
d3d11-adapter=AMD Radeon Graphics
vulkan-device=AMD Radeon Graphics

如果你的顯卡名稱不是這個,請改成自己機器上實際顯示的名稱。這裡最常見的問題不是語法錯,而是名稱打錯或抓錯裝置,結果 mpv 根本沒用到你想指定的 AMD GPU。

硬解模式

如果你是走硬體解碼,可以先用下面這組:

1
2
3
gpu-context=d3d11
hwdec=d3d11va
vf-append=amf_frc

這組重點有兩個:

  1. gpu-context=d3d11 讓圖形環境走 d3d11。
  2. hwdec=d3d11va 讓硬解流程跟 AFMF 的需求一致。

軟解模式

如果你不是走硬解,或你的流程本來就偏向軟體處理,則可以改用:

1
vf=format=d3d11,amf_frc

這裡最關鍵的是前面的 format=d3d11。少了這段,後面的 amf_frc 很可能根本起不來,或者你會誤以為它有掛上,但實際上沒有真正生效。

3. 先理解濾鏡寫法

如果你平常比較少碰 mpv 濾鏡,建議先知道最基本的寫法,後面看參數會比較不容易亂掉。

mpv 濾鏡快速整理

掛載單一濾鏡:

1
vf=濾鏡名

掛載濾鏡並指定子參數:

1
vf=濾鏡名=子參數1:子參數2

串接多個濾鏡:

1
vf=濾鏡1,濾鏡2

手動加標籤:

1
vf=@標籤名:!濾鏡名

參考資料:音視頻濾鏡 - mpv_CFanStation

知道這些基本規則後,下面在看 amf_frc 參數時就會比較直覺。

4. 濾鏡選項與生效確認

AFMF 最怕的不是不能設,而是你以為有設成功。最簡單的驗證方式,是先打開指示器看看:

1
vf=amf_frc=profile=super:indicator=yes

如果有正常生效,畫面左上角會出現閃爍方塊,這可以當成最直接的判斷依據。

常用參數

下面兩個參數是比較常需要調整的:

  1. profileautolowhighsuper
  2. mv-searchnativeperformance

如果你是 4K 影片,或者還有額外掛 AI 超分、去雜訊之類的濾鏡,播放不順時可以優先試著調整這兩個值。通常 profile 降低一點,或改成較偏效能的 mv-search,會比較容易穩住播放流暢度。

5. 與 VapourSynth 串接時的注意事項

如果你本來就有用 VapourSynth 做 AI 畫質拉升、補幀或其他後處理,AFMF 並不是完全不能一起用,但你要特別注意輸出影格格式。

原因很簡單,VapourSynth 輸出的通常是軟體幀,而 AFMF 比較期待的是 d3d11 流程。所以中間要補一段格式轉換。

範例如下:

1
vf=vapoursynth="~~/vs/MIX_UAI_DML.vpy",format=d3d11,amf_frc

這段裡面最容易忽略的就是:

  1. format=d3d11 必須放在 VapourSynth 與 amf_frc 之間。
  2. format=d3d11 不能亂加空白。

如果少了這一步,AFMF 很可能就接不起來。這也是很多人看起來設定都差不多,結果只有部分環境能動的原因之一。

6. 實測心得

這次幫朋友測完後,我的感覺是這套流程不是只有「理論上能用」,而是真的可以拿來看片。補幀有正常作用,搭配 AI 拉升畫質後,主觀體驗也算不錯,至少不會有明顯設定失敗或完全無感的情況。

不過這類設定還是很吃幾個條件:

  1. 顯卡型號與驅動版本。
  2. 影片解析度與位元率。
  3. 你同時還掛了多少濾鏡。
  4. 是用硬解還是軟解流程。

所以如果你照著設定後效果不如預期,我會建議先把流程簡化成「只留 AFMF」,確認能正常啟用之後,再把 AI 超分、VapourSynth 腳本或其他濾鏡一個一個加回來,這樣最好排查。

常見踩雷點
  1. 顯卡名稱填錯,導致 mpv 沒有吃到 AMD GPU。
  2. 軟解模式漏掉 format=d3d11
  3. VapourSynth 串接後沒有把輸出轉成 d3d11。
  4. 一次掛太多濾鏡,結果分不清楚到底是哪個步驟出問題。

小結

如果你本來就在用 mpv,而且手上有支援的 AMD GPU,AFMF 其實是可以試的,設定上也沒有想像中那麼複雜。重點不是把一堆參數全塞進去,而是先確認最小可行設定能動,再慢慢把自己的 AI 畫質拉升、補幀或其他濾鏡流程加回去。

對我來說,這篇比較像是一次實測後的整理筆記。雖然不是在我自己的 AMD 環境長期使用,但至少幫朋友測下來,功能是正常的,也確實能帶來不錯的觀看體驗。之後如果再遇到需要重配 mpv 補幀環境時,應該就能少走很多冤枉路。