找回密码
 立即注册
查看: 5044|回复: 21

报告一个mpv.config的自动加载配置文件的语法问题+关于启用Animate4k后视频渲染流程的问题

  • TA的每日心情

    2022-10-20 03:13
  • 签到天数: 385 天

    [LV.9]以坛为家II

    25

    主题

    146

    回帖

    24

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48613
    HuangRuixiao 发表于 2020-12-12 18:34:01 | 显示全部楼层 |阅读模式
    本帖最后由 HuangRuixiao 于 2020-12-12 18:47 编辑

    在大佬的帖子https://bbs.acgrip.com/forum.php?mod=viewthread&tid=2730&highlight=mpv指导下以及各种自行摸索后,终于实现了mvtools60FPS补帧+Animate4k升分辨率。但是今天看番的时候遇到一个麻烦的点,就是我的视频全是1080P的,每集一开始都要按两下快捷键才能启用补帧和升分辨率插件,有点麻烦。mvtools默认开启播4k又会卡,于是就想着干脆把这两个插件写进1080P文件里,于是有以下代码
    1. [HD] # 1080p
    2. profile-desc=cond:((p["video-params/w"]<2560 and p["video-params/h"]<1440) and (p["video-params/w"]>1810 or p["video-params/h"]>1018))
    3. glsl-shaders-clr
    4. glsl-shaders-append="~~/shaders/.glsl"
    5. glsl-shaders-append="~~/shaders/Anime4K_Denoise_Bilateral_Mode.glsl"
    6. glsl-shaders-append="~~/shaders/Anime4K_Deblur_DoG.glsl"
    7. glsl-shaders-append="~~/shaders/Anime4K_DarkLines_HQ.glsl"
    8. glsl-shaders-append="~~/shaders/Anime4K_ThinLines_HQ.glsl"
    9. glsl-shaders-append="~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"
    10. glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
    11. scale=ewa_lanczossharp
    12. #glsl-shader-append="~~/shaders/FSRCNNX_x2_16-0-4-1.glsl"
    13. sigmoid-upscaling=no
    14. linear-downscaling=yes
    15. vf=vapoursynth="~~/mvtools-blksize64.py":concurrent-frames=25#开启mvtools补帧
    复制代码
    然后当再次打开mpv时,发现两个插件都没有工作:


    查完mpv手册后,发现是这一句的语法有问题:
    1. profile-desc=cond:((p["video-params/w"]<2560 and p["video-params/h"]<1440) and (p["video-params/w"]>1810 or p["video-params/h"]>1018))
    复制代码
    profile-desc是描述函数,profile-cond才是判断函数
    于是修改这一行代码成这样:
    1. profile-cond=(p["video-params/w"]<2560 and p["video-params/h"]<1440) and (p["video-params/w"]>1810 or p["video-params/h"]>1018)
    复制代码
    保存config,重启mpv,脚本加载成功:



    ---------------------------------------------------话题分割线-----------------------------------------------------------

    然后发现加载了Animate4k后 “KrigBilateral.glsl" 仍在工作:

    按理说此时画面已被升为4K,所以插件应该执行downscale的操作(屏幕2560*1440)
    但是信息中却有一步这个插件upscaling的操作,而且scale=ewa_lanczossharp也在工作,于是想请问一下大佬整个渲染的流程是怎样的:
    什么分辨率的数据被传递给了哪个部分?这个部分传出的数据分辨率是多少?又由哪个部分接受它的数据呢?想以此检查一下渲染步骤中有没有重复冗余的步骤(比如1080P->1440P->4K>1440P->屏幕,那第一个”->1440“就是不必要的、精度有损的步骤。)

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 01:10
  • 签到天数: 762 天

    [LV.10]以坛为家III

    3

    主题

    198

    回帖

    0

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    81643
    Starlight 发表于 2020-12-12 19:19:12 | 显示全部楼层
    现在autoprofile不需要外挂lua,是内置的功能
    附上我自己的配置
    1. [Motion interpolation]
    2. profile-cond=vid and (1 < container_fps) and (container_fps < 48) and (width <= 1920) and (height <= 1080)
    3. profile-restore=copy
    4. hr-seek-framedrop=no
    5. vf-add="@interp:vapoursynth=~~/filters/svpflow.py"
    复制代码


    超出范围显示不出来的渲染流程可以按方向键滚动查看
    是从上到下的同步渲染流程
    上面upscale UV这个提升的是色度

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情

    2022-10-20 03:13
  • 签到天数: 385 天

    [LV.9]以坛为家II

    25

    主题

    146

    回帖

    24

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48613
    HuangRuixiao  楼主| 发表于 2020-12-12 19:43:18 | 显示全部楼层
    Starlight 发表于 2020-12-12 19:19
    现在autoprofile不需要外挂lua,是内置的功能
    附上我自己的配置

    这样说的话就奇怪了,按理说animate4k 可以直接输入1080p的亮度平面,不需要downscaling了,但是却还是有两步亮度平面的downscaling,。
    还有就是这一步scale=ewa_lanczossharp

    也很让人在意,是指从4k降到 1440*2560的运算吗?

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-20 16:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    32

    主题

    1181

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    22933
    hsmms 发表于 2020-12-12 19:59:47 | 显示全部楼层
    HuangRuixiao 发表于 2020-12-12 19:43
    这样说的话就奇怪了,按理说animate4k 可以直接输入1080p的亮度平面,不需要downscaling了,但是却还是有 ...

    就你主楼提供的代码并没有任何问题,我建议你提供完整的代码看下
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 01:10
  • 签到天数: 762 天

    [LV.10]以坛为家III

    3

    主题

    198

    回帖

    0

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    81643
    Starlight 发表于 2020-12-12 20:01:59 | 显示全部楼层
    本帖最后由 Starlight 于 2020-12-12 20:07 编辑
    HuangRuixiao 发表于 2020-12-12 19:43
    这样说的话就奇怪了,按理说animate4k 可以直接输入1080p的亮度平面,不需要downscaling了,但是却还是有 ...

    krig不是animate4k的一部分啊
    scale=ewa_lanczossharp应该是是放大……



    我是1080p的屏幕,全屏播放720p视频是这样子的
    acnet .> kirg .> dscale
    我用的不是a4k



    ---------------------


    换了a4k还是dscale

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情

    2022-10-20 03:13
  • 签到天数: 385 天

    [LV.9]以坛为家II

    25

    主题

    146

    回帖

    24

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48613
    HuangRuixiao  楼主| 发表于 2020-12-12 20:13:06 | 显示全部楼层
    hsmms 发表于 2020-12-12 19:59
    就你主楼提供的代码并没有任何问题,我建议你提供完整的代码看下

    mpv.config完整代码如下:
    1. icc-profile-auto
    2. blend-subtitles=video
    3. scale=ewa_lanczossharp
    4. #cscale=ewa_lanczossharp
    5. #dscale=ewa_lanczossharp
    6. video-sync=display-resample
    7. interpolation
    8. tscale=oversample

    9. # 软解
    10. hwdec=no

    11. #使用OSC
    12. osc=no
    13. load-scripts=yes

    14. # 高优先级
    15. priority=high

    16. #profile=gpu-hq

    17. ### gpu-api的选择?
    18. ## macOS:  只有opengl可选
    19. ## Linux:  vulkan或者opengl,推荐vulkan
    20. ## Windows:vulkan、d3d11及opengl都可选。三者理论上vulkan性能最好,但依然推荐d3d11。
    21. ## 通过d3d11 api,目前mpv已支持windows的10 bit输出和HDR colorspace的设定。
    22. ## HDR metadata pass on正在跟进,独占全屏正在跟进。
    23. #----------------------------------------
    24. ### 使用d3d11 (mpv对于windows的默认。显卡注意开自适应电源模式)
    25. gpu-api=vulkan
    26. # 通过d3d11-adapter可以设定mpv使用哪块显卡。详见文档:https://mpv.io/manual/master/#options-d3d11-adapter

    27. # 如果需要记忆上次播放的位置,去掉下面这行的注释。不能与SVP共存,使用SVP必须把此项设为no。
    28. #save-position-on-quit
    29. # 注意,需要mpv.conf所在文件夹有用户写入权限,或者用watch-later-directory=路径来手动指定。
    30. # mpv.conf放APPDATA里是不会有问题的,有问题的是放mpv安装目录但mpv安装目录本身需要管理员权限

    31. # may help with 4K videos
    32. vd-lavc-dr=yes
    33. opengl-pbo=yes

    34. # 如果要插其他视频滤镜,比如deint或者SVP,就要去掉下面这行的注释
    35. #hr-seek-framedrop=no

    36. # "ReClock" replacement
    37. video-sync=display-resample
    38. #video-sync-max-video-change=5

    39. temporal-dither
    40. dither-size-fruit=7
    41. # 默认6。会稍微延缓mpv启动
    42. # 有兴趣也可以测试下error diffusion算法

    43. # smooth motion
    44. interpolation

    45. # interpolation使用的算法。详见https://mpv.io/manual/master/#options-tscale
    46. # 一些讨论见 https://github.com/mpv-player/mpv/issues/2685
    47. # 目前的默认为mitchell。总体而言mitchell更平滑(当然不好和SVP插帧比),但会有模糊。oversample没有模糊,但不平滑(基本还原24帧的样子)
    48. # 具体选择哪个请依据自身需求来
    49. tscale=oversample

    50. # 想看log就取消这行的注释。mpv.log会保存到桌面
    51. #log-file="~~desktop/mpv.log"

    52. icc-profile-auto  # 启用校色
    53. icc-3dlut-size=256x256x256
    54. # 默认64x64x64。会稍微延缓mpv启动

    55. # 在mpv.conf所在目录下建一个 shaders_cache 空文件夹,以存放编译好的GPU shaders,加速启动。
    56. # 注意!如果不放APPDATA下,确保该文件夹有用户写入权限。
    57. gpu-shader-cache-dir="~~/shaders_cache"

    58. # 播放结束后不退出
    59. keep-open=yes

    60. # 始终处于最前阶段。配合ontop-playback.lua可以使得暂停之后解除保持最前端。
    61. #ontop
    62. # 对于vulkan,使用ontop容易让驱动选择进入独占全屏。d3d11需要额外的选项,等https://github.com/mpv-player/mpv/pull/6329实现

    63. # 为了应对VFR,禁用刷新率切换
    64. # 下面这个脚本选项主要是个autospeedwin(自动调节显示器的刷新率)用的
    65. #script-opts=autospeed-nircmd=true,autospeed-speed=false,autospeed-nircmdc="C:\nircmd-x64\nircmdc.exe",autospeed-monitor=0,autospeed-dwidth=1920,autospeed-dheight=1080,autospeed-bdepth=32,autospeed-rates="23;24;25;29;30;50;59;60",autospeed-exitrate=60,autospeed-minspeed=0.9,autospeed-maxspeed=1.1,autospeed-osd=true,autospeed-osdtime=10,autospeed-osdkey=y,autospeed-estfps=false,autospeed-spause=4
    66. # 注意需要自己下载nircmdc,然后在autospeed-nircmdc里给出绝对路径。或者把nircmdc.exe所在位置加到PATH里
    67. # autospeed-monitor=0是主显示器,1、2、3……是其他副显示器
    68. # dwidth dheight bdepth 宽高和位深
    69. # autospeed-rates="23;24;25;29;30;50;59;60",autospeed-exitrate=60 显示器支持的刷新率和退出时应返回的刷新率。23指23.976
    70. # autospeed-spause=4 自动暂停的时间,秒为单位

    71. # WASAPI音频输出(Windows)
    72. # 其他系统请相应更改音频输出方式
    73. ao=wasapi
    74. # 需要独占音频则去掉注释。开启会使得其他程序没声音。
    75. #audio-exclusive=yes

    76. # 如果双声道系统播放多声道影片时有的声道声音没出现,尝试强制设定为双声道
    77. #audio-channels=stereo
    78. # 规格化:
    79. #audio-normalize-downmix=yes
    80. # 多声道音轨downmix成双声道时,如果觉得背景音过响,角色台词声音小,尝试看看这个:https://github.com/mpv-player/mpv/issues/6563

    81. sub-auto=fuzzy
    82. sub-file-paths=subs
    83. slang=chi,zh-CN,sc,chs
    84. #sid=1
    85. # 字幕显示出来和xy-subfilter不一样?尝试启用下面的设置
    86. # 关乎字幕是否随视频拉伸
    87. #sub-ass-vsfilter-aspect-compat=no
    88. # 关乎字幕模糊的设定
    89. #sub-ass-vsfilter-blur-compat=no
    90. # 即使都用上了也不一致?那不是这两个选项的问题,重新注释掉这两行,回帖问吧。(多半是vsfilter/libass其中一个的bug)

    91. audio-file-auto=fuzzy
    92. #audio-file-paths=audio
    93. alang=jpn,ja,eng,en
    94. #aid=1
    95. # 暂时无法根据其他的metadata选择轨道,mpv又默认偏好外挂轨道,常常选到我不想要的音轨
    96. # 有类似情况的话就用aid=1始终选择第一条音轨再自己手动调吧
    97. # 设计者也是这么推荐的:https://github.com/mpv-player/mpv/issues/967#issuecomment-94744964

    98. screenshot-format=png
    99. screenshot-tag-colorspace=yes
    100. screenshot-high-bit-depth=yes
    101. #screenshot-png-compression=0
    102. #screenshot-png-filter=0

    103. #vf=vapoursynth="~~/mvtools-blksize64.py":concurrent-frames=25#开启mvtools补帧

    104. # 根据视频是否是HDR以及视频aspect ratio决定是否启用blend-subtitles的profile
    105. # 目前HDR->SDR建议关闭blend-subtitles,见https://github.com/mpv-player/mpv/issues/6368
    106. # 如果hdr-compute-peak将来继续改进可能可以兼容blend-subtitles
    107. [HDR_or_21:9]
    108. profile-cond=(p["video-params/primaries"]=="bt.2020" or p["video-params/aspect"]>=2.0)
    109. blend-subtitles=no
    110. # 使字幕输出在黑边上
    111. sub-ass-force-margins=yes

    112. [SDR_and_16:9]
    113. profile-cond=(p["video-params/primaries"]~="bt.2020" and p["video-params/aspect"]<2.0)
    114. blend-subtitles=yes
    115. sub-ass-force-margins=no

    116. # 以下根据分辨率和视频帧率设置不同的升/降阶算法,以期获得在能不掉帧的情况下达到最好的效果

    117. [SD] # 主要针对720p和480p
    118. profile-cond=(p["video-params/w"]<=1810 and p["video-params/h"]<=1018)
    119. glsl-shaders-clr
    120. glsl-shaders-append="~~/shaders/Anime4K_Upscale_CNN_L_x2_Denoise.glsl"
    121. glsl-shaders-append="~~/shaders/Anime4K_Auto_Downscale_Pre_x4.glsl"
    122. glsl-shaders-append="~~/shaders/Anime4K_Deblur_DoG.glsl"
    123. glsl-shaders-append="~~/shaders/Anime4K_DarkLines_HQ.glsl"
    124. glsl-shaders-append="~~/shaders/Anime4K_ThinLines_HQ.glsl"
    125. glsl-shaders-append="~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"
    126. glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
    127. glsl-shaders-append="~~/shaders/nnedi3-nns128-win8x4.hook" # 720p觉得没压力可以换nns128
    128. glsl-shaders-append="~~/shaders/nnedi3-nns64-win8x4.hook" # 第二次倍增。480p有压力则降nns32
    129. glsl-shaders-append="~~/shaders/SSimDownscaler.glsl" # 觉得有压力可以去掉这个
    130. scale=ewa_lanczossharp
    131. sigmoid-upscaling=yes
    132. linear-downscaling=no # 不用SSimDownscaler则一并去掉这个

    133. [HD] # 1080p
    134. profile-cond=(p["video-params/w"]<2560 and p["video-params/h"]<1440) and (p["video-params/w"]>1810 or p["video-params/h"]>1018)
    135. glsl-shaders-clr
    136. glsl-shaders-append="~~/shaders/.glsl"
    137. glsl-shaders-append="~~/shaders/Anime4K_Denoise_Bilateral_Mode.glsl"
    138. glsl-shaders-append="~~/shaders/Anime4K_Deblur_DoG.glsl"
    139. glsl-shaders-append="~~/shaders/Anime4K_DarkLines_HQ.glsl"
    140. glsl-shaders-append="~~/shaders/Anime4K_ThinLines_HQ.glsl"
    141. glsl-shaders-append="~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"
    142. glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
    143. scale=ewa_lanczossharp
    144. #glsl-shader-append="~~/shaders/FSRCNNX_x2_16-0-4-1.glsl"
    145. sigmoid-upscaling=no
    146. linear-downscaling=yes
    147. vf=vapoursynth="~~/mvtools-blksize64.py":concurrent-frames=25#开启mvtools补帧

    148. [UHD]
    149. profile-cond= (p["video-params/w"]>=2560 or p["video-params/h"]>=1440)
    150. glsl-shaders-clr
    151. glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
    152. glsl-shaders-append="~~/shaders/SSimDownscaler.glsl"
    153. scale=ewa_lanczossharp
    154. sigmoid-upscaling=yes
    155. linear-downscaling=no


    156. #------scripts------- 以下是脚本
    157. # https://github.com/mpv-player/mpv/blob/master/TOOLS/lua
    158. #autocrop.lua             # Shift+c自动切黑边,再按Shift+c复原
    159. autodeint.lua            # Ctrl+d 让脚本自动判断需不需要反交错
    160. autoload.lua             # 自动加载同目录中的文件
    161. ontop-playback.lua       # 暂停播放后窗口不再保持最前
    162. pause-when-minimize.lua  # 最小化时暂停

    163. # https://github.com/VideoPlayerCode/mpv-tools/
    164. cycle-video-rotate.lua   # 使用快捷键旋转视频

    165. # https://github.com/wiiaboo/mpv-scripts/blob/master/auto-profiles.lua
    166. #auto-profiles.lua        # 装了这个才能使用上面这个mpv.conf,用于区分播放的文件所需要的配置

    167. # https://github.com/kevinlekiller/mpv_scripts/tree/master/autospeedwin
    168. autospeedwin.lua         # 自动切换刷新率

    169. # https://github.com/rossy/mpv-open-file-dialog
    170. open-file-dialog.lua     # Ctrl+o 选择要播放的文件,再也不用手动拖文件进来或者从命令行启动了

    171. #stats.lua               # 这个不用单独下了,mpv自带此功能了。用来看profile是否正确工作。i短时间显示,shift+i始终显示osd。按数字键1和2切换两个tab

    172. # 新增可选  https://github.com/fbriere/mpv-scripts/blob/master/scripts/tree-profiles.lua
    173. tree-profiles.lua        # 可依据文件路径设置profile
    复制代码


    回复

    使用道具 举报

  • TA的每日心情

    2022-10-20 03:13
  • 签到天数: 385 天

    [LV.9]以坛为家II

    25

    主题

    146

    回帖

    24

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48613
    HuangRuixiao  楼主| 发表于 2020-12-12 20:18:33 | 显示全部楼层
    Starlight 发表于 2020-12-12 20:01
    krig不是animate4k的一部分啊
    scale=ewa_lanczossharp应该是是放大……

    但是按照信息从上到下传递的原则,在换成 animate4k 后 KrigBilateral.glsl 的位置到了最前面,之前是ACNEt的后面,就是说数据先发给KrigBilateral了,那这里出来的是什么分辨率的数据?还有关于dscaling,是不是我需要在mpv.config里写上dscale=ewa_lanczossharp,而不是仅仅一行scale=ewa_lanczossharp?之前特意把dscale、cascale都注释掉了。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-20 16:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    32

    主题

    1181

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    22933
    hsmms 发表于 2020-12-12 21:54:21 | 显示全部楼层
    HuangRuixiao 发表于 2020-12-12 20:18
    但是按照信息从上到下传递的原则,在换成 animate4k 后 KrigBilateral.glsl 的位置到了最前面,之前是ACNE ...

    UHD这块把glsl-shaders-clr取消看下
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-20 16:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    32

    主题

    1181

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    22933
    hsmms 发表于 2020-12-12 21:55:06 | 显示全部楼层
    HuangRuixiao 发表于 2020-12-12 20:18
    但是按照信息从上到下传递的原则,在换成 animate4k 后 KrigBilateral.glsl 的位置到了最前面,之前是ACNE ...

    不需要
    回复

    使用道具 举报

  • TA的每日心情

    2022-10-20 03:13
  • 签到天数: 385 天

    [LV.9]以坛为家II

    25

    主题

    146

    回帖

    24

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48613
    HuangRuixiao  楼主| 发表于 2020-12-12 22:01:59 | 显示全部楼层
    本帖最后由 HuangRuixiao 于 2020-12-12 22:03 编辑
    hsmms 发表于 2020-12-12 21:54
    UHD这块把glsl-shaders-clr取消看下

    取消了后没有用以及我发现换成HEVC视频后 KrigBilateral.glsl 不工作了
    回复

    使用道具 举报

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

    本版积分规则

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