找回密码
 立即注册
楼主: 孤雨独火

[MPV+] MPV_lazy 懒人包

  • TA的每日心情
    擦汗
    2021-12-4 12:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    45

    主题

    2692

    回帖

    2020

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    394182

    崭露头角活跃达人CD!BD!

    孤雨独火  楼主| 发表于 2020-5-16 20:01:47 | 显示全部楼层
    本帖最后由 孤雨独火 于 2020-5-16 20:04 编辑
    Rain 发表于 2020-5-16 19:06
    楼主能不能同时发个去除python环境的压缩包
    我自己有python环境
    或者发布在GitHub上

    我用的都是便携包,不影响你主机path的py,之所以预设是考虑到了vp和py相互吃版本的特别情况
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-19 00:48
  • 签到天数: 609 天

    [LV.9]以坛为家II

    3

    主题

    198

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    71444
    Starlight 发表于 2020-5-16 20:52:34 | 显示全部楼层
    本帖最后由 Starlight 于 2020-5-18 16:16 编辑

    可以考虑加几个svpflow-test.vpy了
    这个脚本在不需要补帧的时候完全不工作,以屏幕刷新率为目标帧率,会降低1920x1080以上视频的分辨率(渣机4K补帧带不动)

    四种补帧方法
        svpflow 同现 svpflow-anime
        svpflow_alt 对现 svpflow-anime 做小修改得来
        svpflow_nvof 使用N卡Optical Flow的svp(需要20系显卡,本人无测试条件,按原先svpflow-anime脚本推导得来)
        mvtools 同现 mvtools-high
    1. import vapoursynth as vs


    2. # 绝大部分场景趋于理想
    3. # 画面快速平移时平行线有概率会烂,svpflow_alt 无此问题
    4. def svpflow(clip, fps, freq):
    5.     super_params = "{pel:2,gpu:1,scale:{up:2,down:4}}"
    6.     analyse_params = "{block:{w:32,h:32,overlap:2},main:{levels:4,search:{type:4,distance:-8,coarse:{type:4,distance:-5,bad:{range:0}}},penalty:{plevel:1.3,pzero:110,pnbour:75}},refine:[{thsad:200,search:{type:4,distance:2}}]}"
    7.     smoothfps_params = "{rate:{num:" + str(freq) + \
    8.         ",den:1000,abs:true},algo:21,mask:{area:100},scene:{limits:{m1:1800,m2:3600,scene:5200,zero:100,blocks:45}}}"

    9.     svp_super = core.svp1.Super(clip, super_params)
    10.     svp_analyse = core.svp1.Analyse(
    11.         svp_super["clip"], svp_super["data"], clip, analyse_params)
    12.     svp_smooth = core.svp2.SmoothFps(
    13.         clip, svp_super["clip"], svp_super["data"], svp_analyse["clip"], svp_analyse["data"], smoothfps_params, src=clip, fps=fps)

    14.     return svp_smooth


    15. # 相较于 svpflow 会更加流畅一点,但烂帧肉眼可见增多
    16. def svpflow_alt(clip, fps, freq):
    17.     super_params = "{pel:2,gpu:1,scale:{up:2,down:4}}"
    18.     analyse_params = "{block:{w:32,h:32,overlap:2},main:{levels:0,search:{type:4,distance:-8,coarse:{type:4,distance:-6,bad:{range:0}}},penalty:{plevel:1.3,pzero:110,pnbour:75}},refine:[{thsad:400,search:{type:4,distance:2}}]}"
    19.     smoothfps_params = "{rate:{num:" + str(freq) + \
    20.         ",den:1000,abs:true},algo:21,mask:{area:200},scene:{limits:{m1:1800,m2:3600,scene:5200,zero:100,blocks:45}}}"

    21.     svp_super = core.svp1.Super(clip, super_params)
    22.     svp_analyse = core.svp1.Analyse(
    23.         svp_super["clip"], svp_super["data"], clip, analyse_params)
    24.     svp_smooth = core.svp2.SmoothFps(
    25.         clip, svp_super["clip"], svp_super["data"], svp_analyse["clip"], svp_analyse["data"], smoothfps_params, src=clip, fps=fps)

    26.     return svp_smooth


    27. # NVIDIA Optical Flow
    28. def svpflow_nvof(clip, fps, freq):
    29.     smoothfps_params = "{rate:{num:" + \
    30.         str(freq) + ",den:1000,abs:true},algo:21}"

    31.     crop_clip = clip.std.Crop(0, 0, 0, 2)
    32.     svp_smooth = core.svp2.SmoothFps_NVOF(
    33.         clip, smoothfps_params, nvof_src=crop_clip, src=clip, fps=fps)

    34.     return svp_smooth


    35. # mvtools-high
    36. def mvtools(clip, fps, freq):
    37.     clip = core.std.AssumeFPS(clip, fpsnum=fps, fpsden=1)

    38.     mv_super = core.mv.Super(clip, pel=2, sharp=2, rfilter=4,
    39.                              hpad=16, vpad=8, levels=0)
    40.     mv_vec_b = core.mv.Analyse(mv_super, blksize=32, blksizev=16, overlap=16, overlapv=8, levels=0,
    41.                                isb=True, search=3, searchparam=0, pelsearch=3, badrange=-1, badsad=10000)
    42.     mv_vec_f = core.mv.Analyse(mv_super, blksize=32, blksizev=16, overlap=16, overlapv=8, levels=0,
    43.                                isb=False, search=3, searchparam=0, pelsearch=3, badrange=-1, badsad=10000)
    44.     mv_smooth = core.mv.BlockFPS(clip, mv_super, mv_vec_b, mv_vec_f,
    45.                                  num=freq, den=1000, mode=2, ml=1020.0, thscd1=16320, thscd2=255)

    46.     return mv_smooth


    47. # scale-down
    48. def clip_fit(clip, clip_w, clip_h, fit_w, fit_h):
    49.     ratio = min(fit_w / clip_w, fit_h / clip_h)
    50.     if (ratio < 1):
    51.         clip = clip.resize.Lanczos(
    52.             width=int(clip_w * ratio), height=int(clip_h * ratio))
    53.     return clip


    54. # 补帧方法 (svpflow / svpflow_alt / svpflow_nvof / mvtools)
    55. clip_interp = svpflow
    56. fps = container_fps if (container_fps > 0.1) else 24
    57. freq = display_fps if (display_fps > 0.1) else 60

    58. if (fps < freq):
    59.     core = vs.core
    60.     core.max_cache_size = 8192

    61.     clip = video_in
    62.     clip = clip.resize.Point(format=vs.YUV420P8, dither_type="random")
    63.     clip = clip_fit(clip, video_in_dw, video_in_dh, 1920, 1080)
    64.     clip = clip_interp(clip, fps, int(freq * 1000))
    65.     clip = core.std.AssumeFPS(clip, fpsnum=clip.fps_num, fpsden=clip.fps_den)
    66.     clip.set_output()
    复制代码

    另外附上版本号高了0.0.0.001的svpflow2_vs64.dll





    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 3 反对 0

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-12-4 12:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    45

    主题

    2692

    回帖

    2020

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    394182

    崭露头角活跃达人CD!BD!

    孤雨独火  楼主| 发表于 2020-5-16 22:02:36 | 显示全部楼层
    Starlight 发表于 2020-5-16 20:52
    可以考虑加几个svpflow-test.vpy了
    这个脚本在不需要补帧的时候完全不工作,以屏幕刷新率为目标帧 ...

    6666
    不过这个Optical Flow问题很大,画面变形的频率更加高了,所以我不开
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-9-17 09:44
  • 签到天数: 157 天

    [LV.7]常住居民III

    0

    主题

    19

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    18759
    strangeqaq 发表于 2020-5-16 22:03:44 | 显示全部楼层
    9700KF用了ctrl+6,占用90%
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-12-4 12:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    45

    主题

    2692

    回帖

    2020

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    394182

    崭露头角活跃达人CD!BD!

    孤雨独火  楼主| 发表于 2020-5-17 12:59:28 | 显示全部楼层
    strangeqaq 发表于 2020-5-16 22:03
    9700KF用了ctrl+6,占用90%

    intel这边已经实锤跑mvtools就是垃圾了,有人测试下3700x一点压力都没有
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-6 12:13
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    16

    主题

    86

    回帖

    196

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8385
    cnlolicon 发表于 2020-5-18 00:28:27 | 显示全部楼层
    想问一下,播放列表的loadfile功能用不了,打开播放器后按大“P”显示no additional files found,但是在载入一个视频后小'p'是可以保存M3U播放列表到默认的portable_config\playlists文件夹下的,是有什么参数需要修改才能开启loadfile功能吗?尝试修改了playlistmanager.conf中的show_playlist_on_fileload为1或2,没有作用,其他的似乎没看到和这个相关的修改项
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-12-4 12:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    45

    主题

    2692

    回帖

    2020

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    394182

    崭露头角活跃达人CD!BD!

    孤雨独火  楼主| 发表于 2020-5-18 01:11:06 | 显示全部楼层
    cnlolicon 发表于 2020-5-18 00:28
    想问一下,播放列表的loadfile功能用不了,打开播放器后按大“P”显示no additional files found,但是在载 ...

    https://github.com/jonniek/mpv-playlistmanager


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-14 12:32
  • 签到天数: 69 天

    [LV.6]常住居民II

    23

    主题

    276

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    53451
    楚轩 发表于 2020-5-18 09:18:45 | 显示全部楼层
    本帖最后由 楚轩 于 2020-5-18 11:51 编辑

    请问补帧到59.94(mvtools标准版) 59,997 (mvtools测试版)和稳定60(svpflow)有什么区别吗 我的显示器刷新是59.997
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-6 12:13
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    16

    主题

    86

    回帖

    196

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8385
    cnlolicon 发表于 2020-5-18 10:33:57 | 显示全部楼层

    感谢回复,看了下似乎理解错了loadfile的功能,用作者的另一个脚本mpv-filenavigator解决了载入问题
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-12-4 12:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    45

    主题

    2692

    回帖

    2020

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    394182

    崭露头角活跃达人CD!BD!

    孤雨独火  楼主| 发表于 2020-5-18 11:50:50 | 显示全部楼层
    楚轩 发表于 2020-5-18 09:18
    请问补帧到59.94(mpvtools标准版) 59,997 (mpvtools测试版)和稳定60(svpflow)有什么区别吗 我的显示 ...

    为啥你老是打错mvtools...
    这几个帧速率脚本都是锁60的没有区别,实际在60hz的显示上为啥不能达标我也不知道~~
    视频帧速率和显示器刷新率不成整数匹配的时候。。。这个算播放器常识吧,影响不大,欠的frame就repeat,多的就drop。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表