前兩天我們只能從選單裡選,同一時間只能開超分或補幀其中一個,今天要教大家怎麼兩個一起開。
為什麼是先放大後補幀?補幀往往帶來幀破損,放大在後處理會放大這種瑕疵(所以這只是基於質量優先的考慮而不是速度)
參考:vpy 的設計與最佳化思路 · hooke007/mpv_PlayKit · Discussion #313
實測下來,先放大再補幀的畫質確實比較好,RIFE 產生的偽影也比較少,所以推薦這樣用。通常 AI 會給你建議先補幀再拉升,我實測下來會偽影會比較嚴重,所以還是先放大再補幀會比較好。
可以參考下面的腳本。檔案命名為 k7f_zen.vpy,放在 \mpv-lazy\portable_config 裡。
import vapoursynth as vs
from vapoursynth import core
import k7sfunc as k7f
clip = video_in
if clip.height < 2160 * 0.85 :
clip = k7f.FMT_CTRL(clip, h_max=720)
clip = k7f.UAI_NV_TRT(clip, model_pth="the_database_AnimeJaNaiV2L1_x2_fp16_op17.onnx", fp16_qnt=True, gpu=0, gpu_t=2, st_eng=True)
clip = k7f.FMT_CTRL(clip, h_max=2160)
if container_fps <= 32 :
clip = k7f.FMT_CTRL(clip, h_max=2160)
clip = k7f.RIFE_NV(clip, model=46, fps_in=container_fps, fps_num=2, gpu=0, gpu_t=2)
if not (clip == video_in) :
clip.set_output()
如果想讓設定永久生效,在 mpv.conf 最後面加上下面這行,之後打開影片就會自動執行腳本:
vf=vapoursynth="~~/k7f_zen.vpy"
為了讓大家順利跑,照著原本預設配置。這邊每個人效能都不一樣需要手動調整。用 shift+i 查看 DROP Frame 有沒有持續升高,假如有必須在解析度、補幀做一個取捨。
我個人偏好超分優先。雖然 RIFE 我喜歡開 3 倍,但為了讓電腦能順利播放,我把補幀前的畫面高度限制在 950,RIFE 倍數也改成 2 倍,這樣才不會掉幀。
我這邊做了一個簡單的快速編輯網址:連結
右邊選結果,直接改左邊變數,可以從右邊進行複製動作。
說明:
data:
- 螢幕大小: 2160 # 4K;理論上超過螢幕解析度後,再超分也沒意義
補幀畫面大小限制: 950 # 現在片源大多是 1080p,超分後會變成 4K;官方預設是 720p,超分後大約是 2K
補幀倍數: 2
超分模型: the_database_AnimeJaNaiV2L1_x2_fp16_op17.onnx # 可以看 mpv-lazy\vs-plugins\models 裡有哪些模型
以下是我的配置:
import vapoursynth as vs
from vapoursynth import core
import k7sfunc as k7f
clip = video_in
if clip.height < 2160 * 0.85 :
clip = k7f.FMT_CTRL(clip, h_max=950)
clip = k7f.UAI_NV_TRT(clip, model_pth="the_database_AnimeJaNaiV2L1_x2_fp16_op17.onnx", fp16_qnt=True, gpu=0, gpu_t=2, st_eng=True)
clip = k7f.FMT_CTRL(clip, h_max=2160)
if container_fps <= 32 :
clip = k7f.FMT_CTRL(clip, h_max=2160)
clip = k7f.RIFE_NV(clip, model=46, fps_in=container_fps, fps_num=2, gpu=0, gpu_t=2)
if not (clip == video_in) :
clip.set_output()
其實官方有出 [Lua] k7f_zen “要是連這個都不會用,就別問 vs 濾鏡怎麼玩了” · hooke007/MPV_lazy · Discussion #574,本來想帶大家走一遍。不過我還是希望大家能快速上手,就直接把設定貼給你們用;真的有興趣的話,我後面幾天再詳細講解。
其實前幾天內容我還是覺得寫有點多,但不寫又感覺不完整,原本目標是大家一篇一分鐘可以做完😅。