找回密码
 立即注册
查看: 6485|回复: 18

[MPV] 简单易懂的 auto_profiles

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

    [LV.5]常住居民I

    46

    主题

    2720

    回帖

    2020

    VC币

    星辰大海

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

    积分
    421667

    崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

    孤雨独火 发表于 2021-2-15 00:37:20 | 显示全部楼层 |阅读模式
    本帖最后由 孤雨独火 于 2022-4-18 20:16 编辑

    本文已过时,附件已移除。
    以后在这里更新,手册02

    写在前面,写的时候有点放飞自我,论坛编辑器做成精编我有点苦手,排版完善版建议直接下html版(下楼/后页底部)


    • 阅读本章前默认已基本熟悉 mpv.conf 内各参数用途及含义
    • mpv.com 文件是MPV播放器的CLI(命令行界面)程序
    • 这里有另一种思路下 mpv.conf 的写法与更多条件配置示例(conditional auto profiles)

    ☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲



    ​        我把 mpv.conf 里的参数分为通用参数和配置参数。通用参数在你打开MPV空窗口的同时就已经加载了,而配置参数正常情况下不会加载。
    ​        你所见到的 [xxxxx] 这样的文本就是一个配置参数的头部标志,在首个未被注释掉的配置 [xxxxx] 所在行之前的参数都是通用参数,在两个配置 [profile-x] 和 [profile-y] 所在行之间的参数都属于 [profile-x] ,这些特性也决定了通用参数只能写在最前面。

    ​        配置参数又分为常规配置和条件配置。先讲解一下常规配置,它不会自动触发,下面导入实际例子。

    基本操作

    ​        很多人的 mpv.conf 里都有一条高频的通用参数 --profile=gpu-hq ,它其实就是一套预设参数组的集合。MPV其实预设了不止一套参数组,你可以通过在 mpv.com 文件所在目录打开 PowerShell (空白处 按住Shift+单机鼠标右键)执行 ./mpv --profile=help 得到所有可用的(常规+条件)配置:

    1. ##上图例为懒人包v20210210的所有可用配置,代码块展示的是0.33原版的
    2. PS C:\MPV list\mpv-stable> ./mpv --profile=help
    3. Available profiles:
    4.         opengl-hq
    5.         sw-fast
    6.         low-latency
    7.         gpu-hq
    8.         encoding
    9.         libmpv
    10.         builtin-pseudo-gui
    11.         pseudo-gui
    12.         default
    复制代码
    同样的位置, PowerShell 执行 ./mpv --show-profile=配置名 查看某个配置的实际内容:
    1. PS C:\MPV list\mpv-stable> ./mpv --show-profile=gpu-hq
    2. Profile gpu-hq:
    3. scale=spline36
    4. cscale=spline36
    5. dscale=mitchell
    6. dither-depth=auto
    7. correct-downscaling=yes
    8. linear-downscaling=yes
    9. sigmoid-upscaling=yes
    10. deband=yes
    复制代码
    所以你在 mpv.conf 中某行写入 --profile=gpu-hq 时实际等效在该位置按顺序写入以上八项实际参数。


    顺序逻辑

    ① 通用参数:执行逻辑是从上到下依次读取。
      假如你想在 mpv.conf 中启用 --profile=gpu-hq 的同时关闭 --deband ,却这样写:
    1. deband=no
    2. profile=gpu-hq
    复制代码
    只会得到相反的结果:MPV先关闭了去色带,再读取 [gpu-hq] 后又打开了去色带功能。正确写法是调换这两行参数的位置。(当然你也可以再往后额外加一行 --deband=no ,但是正常人应该不会这么做)


    ② 配置参数:虽然,实际运行时条件配置的先后触发顺序文档中没有记录(根据观察是相对固定的),但是,常规配置和条件配置参数在 mpv.conf 中没有书写顺序的要求。


    创造 检验 运用


    ① 先从常规配置起步
      尝试在空白的 mpv.conf 中创造一个简单的常规配置:
    1. [JBLp]                      # 配置名。支持中文
    2. profile-desc=叽叽哔哔循环     # [多余参数] 配置描述,支持中文,随意填写
    3. video-sync=audio            # 自定义参数1
    4. loop-file=inf               # 自定义参数2
    5. audio-pitch-correction=no   # 自定义参数3
    6. speed=2                     # ......
    复制代码
    保存之后退出,检验:
       法(1)
       打开MPV空窗口,` 键 调出控制台(控制台模式下屏蔽绝大多数快捷键,按Esc关闭)
       输入 apply-profile JBLp 执行(回车键)。正常情况是控制台不会有信息显示,此时一次性拖入任意数量的视频,符合预期的表现是当前文件二倍速播放+音调变高+无限单曲循环。

       法(2)
        mpv.conf 内最上方加入通用参数 --profile=JBLp ,即整体修改成如下样式。
    1. profile=JBLp

    2. [JBLp]
    3. ###以下内容省略
    复制代码
    之后打开MPV空窗口,一次性拖入任意数量的视频,检查实际表现。

      ▲ 当然,此时你也可以通过前面的基本操作,可以发现 <font color=blue>**PowerShell**</font> 执行对应命令产生的列表中出现了自己刚写的这个配置 JBLp 。如果你填写了 `--profile-desc=<value>` ,那么这项值也会显示(见最上方图)


    ② 进阶尝试一个典型的条件配置
      在之前的 mpv.conf 中继续修改,以很常见的需求——1080p的视频制定单独方案来举例:
    1. #profile=JBLp # 现在不需要它捣乱

    2. [JBLp]
    3. ###以下内容省略

    4. [1080p]                                   # (同前)
    5. profile-desc=全高清方案                     # (同前)
    6. profile-cond=height==1080 and width==1920 # [必要参数] 用于判定满足该条件时自动执行该套参数组
    7. profile-restore=copy                      # [选用参数] 备份执行该配置前的所有参数,用于恢复
    8. cscale=jinc
    9. scale=jinc
    10. dscale=jinc
    复制代码
    保存之后退出,按设定的条件进行检验:先打开MPV空窗口,调出控制台, --profile-cond 的值如果有书写错误会有类似 [auto_profiles] Profile '1080p' condition: 的红色文本报错信息,无错再进行下一步。一次性拖入1080p和720p的两个视频,当播放1080p视频时控制台自动弹出文本 [auto_profiles] Applying auto profile: 1080p ,当切换到720p视频时控制台显示 [auto_profiles] Restoring profile: 1080p

    你也可以同时查看内置的 stats.lua 统计信息(Shift+i)的第二页共同检验jinc算法的切换是否正常。

      ▲ 不写或注释掉选用参数 #profile-restore=copy 后,MPV在满足该配置的触发条件后彻底覆盖原参数。该行为类似于自动在控制台输入 apply-profile 1080p
      ▲ --profile-cond 可以用通用参数作为判定条件,也可以用 https://mpv.io/manual/master/#property-list 里的属性。这些属性需要用引号和中括号规范,单等于号不可用, and or not 分别表示 和 或 非 ,详细示例见后文。


    ☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲☲


    可能的风险
    ​        条件配置的最大局限在于,它并不是直接的开关on/off的关系,自动触发某条件配置后,你在这期间手动激活的其它参数,有可能会随着撤回该条件配置的同时一起被移除,可以通过以下的示例轻松复现问题:

      新建空白 input.conf 中写入:
    1. CTRL+v vf add deblock=filter=weak:block=4 # 去色块滤镜
    复制代码

    清空 mpv.conf 中写入:
    1. [N-fs-r]
    2. profile-desc=非全屏状态时画面顺时针转90°
    3. profile-cond=not fullscreen
    4. profile-restore=copy
    5. vf-add=rotate=90*PI/180
    复制代码

    然后打开MPV空窗口,拖入一个视频,已触发条件配置 N-fs-r ,再手动 Ctrl+v 激活去色块滤镜,观察统计信息的滤镜列表:
    进入全屏,假想情况是只撤销 rotate 旋转滤镜,实际是所有视频滤镜都消失了

    存在的一个不完美的解决方案是改为非典型条件配置并创建对应的反配置:
    1. [N-fs-r]
    2. profile-desc=非全屏状态时画面顺时针转90°
    3. profile-cond=not fullscreen
    4. #profile-restore=copy                # 注释/删掉回归默认值 default
    5. vf-add=rotate=90*PI/180

    6. [N-fs-r_Alt]                         # 反配置没有名称格式要求,随意写
    7. profile-desc=N-fs-r的反配置
    8. profile-cond=fullscreen              # not “非”的对应
    9. vf-remove=rotate=90*PI/180           # 改为 --vf-add 的对应行为参数
    复制代码
    再次检验,实际情况符合预期。

    配置规范化
    ​        通用参数和常规配置可以设计的很复杂,但条件配置应尽量简化以避免实际运行时可能造成的混乱。
    ​        在MPV更改目前这个条件配置的机制之前,只有通过相对规范的配置来避免切换中可能存在的问题。虽然配置可以相互套娃,但是最好不要这么做。

    一个简单的 mpv.conf 示范:

    1. profile=gpu-hq

    2. [SD]
    3. profile-restore=copy
    4. profile-cond=width==720 and (height==576 or height==480)
    5. scale=ewa_lanczossharp
    6. cscale=bilinear
    7. dscale=ewa_lanczos
    8. linear-downscaling=yes
    9. deband=yes
    10. glsl-shaders="~~/shaders/KrigBilateral.glsl;~~/shaders/ravu-zoom-r4.hook"

    11. [HD]
    12. profile-restore=copy
    13. profile-cond=width==1280 and width==720
    14. scale=ewa_lanczossharp
    15. cscale=bilinear
    16. dscale=ewa_lanczos
    17. linear-downscaling=yes
    18. deband=yes
    19. glsl-shaders="~~/shaders/KrigBilateral.glsl;~~/shaders/FSRCNNX_x2_16-0-4-1.glsl"

    20. [FHD&2K]
    21. profile-restore=copy
    22. profile-cond=(width==1920 or width==2560) and (height==1080 or height==1440)
    23. scale=spline16
    24. cscale=spline64
    25. dscale=catmull_rom
    26. linear-downscaling=yes
    27. deband=yes
    28. glsl-shaders="~~/shaders/Anime4K_Upscale_CNN_L_x2.glsl"

    29. [UHD]
    30. profile-restore=copy
    31. profile-cond=width>=3840 or height>=2160
    32. scale=bilinear
    33. cscale=bilinear
    34. dscale=mitchell
    35. linear-downscaling=no
    36. deband=no
    37. glsl-shaders="~~/shaders/SSimDownscaler.glsl"
    复制代码

    现实情况中设置多重且复杂的条件配置会导致一个播放视频同时调用多个配置,切换下一个视频时只撤销部分配置又拉起新的配置,暂无验证是否在这种情况下产生异常情况,因此示范偏保守只选择分辨率作为变量设置不同组。

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

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

    [LV.5]常住居民I

    46

    主题

    2720

    回帖

    2020

    VC币

    星辰大海

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

    积分
    421667

    崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

    孤雨独火  楼主| 发表于 2021-2-15 00:37:21 | 显示全部楼层
    本帖最后由 孤雨独火 于 2022-4-18 20:13 编辑

    1. ​##以下是一份完整的非一般的 mpv.conf 写法,同时运用了上文所叙述的内容。
    2. ##将所有参数组合配置化(profile),通用区只用单一类参数 --profile=<value> 进行自由灵活搭配,通过组合调用后实际构成一套完整的通用参数。

    3. ##== 通用参数区 ==##

    4. #profile=profile-1,profile-2,profile-3
    5. ##这是 --profile=<value> 的官方推荐写法,执行顺序从左到右,但不易读和修改,因此换用下面的写法,执行顺序从上到下

    6. profile=Base-1
    7. profile=A-2
    8. profile=V-0
    9. #profile=Icc-1
    10. #profile=Deband-1
    11. profile=Smooth-2
    12. profile=Sub-2
    13. profile=Screenshot-3

    14. #profile=BenchMark # 此配置应单独使用
    15. #log-file="~~desktop/mpv-test.log"



    16. ##== 常规配置区 ==##

    17. #[示例常规配置]         # 配置名。支持中文
    18. #profile-desc=这是举例 # [多余]配置描述,支持中文,随意填写
    19. #                     # 自定义参数1
    20. #                     # 自定义参数2
    21. #                     # ......

    22. [Base-1]
    23. vo=gpu
    24. gpu-api=d3d11
    25. hwdec=d3d11va-copy
    26. hidpi-window-scale=no
    27. keep-open=yes
    28. hr-seek-framedrop=no
    29. save-position-on-quit=no
    30. gpu-shader-cache-dir="~~/shaders_cache"

    31. [Base-2]
    32. vo=gpu
    33. gpu-api=vulkan
    34. hwdec=no
    35. keep-open=yes

    36. [A-1]
    37. audio-file-auto=fuzzy
    38. volume-max=100
    39. audio-pitch-correction=yes
    40. af=scaletempo2

    41. [A-2]
    42. audio-file-auto=fuzzy
    43. volume-max=130
    44. audio-pitch-correction=yes
    45. af=rubberband

    46. [V-0]
    47. scale=bilinear
    48. cscale=bilinear
    49. dscale=bilinear

    50. [V-1]
    51. scale=ewa_lanczossharp
    52. cscale=spline36
    53. dscale=mitchell
    54. dither-depth=auto
    55. correct-downscaling
    56. linear-downscaling
    57. sigmoid-upscaling

    58. [V-2]
    59. glsl-shaders="~~/shaders/ravu-zoom-r4-chroma.hook;~~/shaders/ravu-zoom-r4.hook"

    60. [Icc-0]
    61. target-prim=dci-p3
    62. target-trc=gamma2.2

    63. [Icc-1]
    64. icc-profile-auto
    65. #icc-3dlut-size=256x256x256
    66. icc-cache-dir="~~/icc_cache"
    67. #vf=format:gamma=gamma2.2

    68. [Deband-1]
    69. deband
    70. deband-iterations=2
    71. deband-threshold=32
    72. deband-range=14
    73. deband-grain=12

    74. [Smooth-1]
    75. video-sync=display-resample
    76. video-sync-max-video-change=5
    77. interpolation
    78. tscale=oversample

    79. [Smooth-2]
    80. video-sync=display-resample
    81. video-sync-max-video-change=5
    82. interpolation
    83. tscale=box
    84. tscale-window=sphinx
    85. tscale-radius=1.01
    86. tscale-clamp=0.0

    87. [Sub-1]
    88. sub-auto=fuzzy
    89. slang=chs,sc,zh,chi,zho
    90. blend-subtitles=video
    91. sub-use-margins=no
    92. sub-font='YouYuan'

    93. [Sub-2]
    94. sub-auto=fuzzy
    95. slang=chs,sc,zh,chi,zho
    96. sub-ass-force-margins=yes
    97. sub-font='YouYuan'

    98. [Screenshot-1]
    99. screenshot-format=jpg
    100. screenshot-jpeg-quality=100
    101. #screenshot-jpeg-source-chroma=yes
    102. screenshot-tag-colorspace=yes
    103. #screenshot-high-bit-depth=yes
    104. screenshot-template=MPV-%P-N%n
    105. screenshot-directory=~~desktop/

    106. [Screenshot-2]
    107. screenshot-format=png
    108. screenshot-png-compression=5
    109. #screenshot-png-filter=5
    110. screenshot-tag-colorspace=yes
    111. #screenshot-high-bit-depth=yes
    112. screenshot-template=MPV-%P-N%n
    113. screenshot-directory=~~desktop/

    114. [Screenshot-3]
    115. screenshot-format=webp
    116. screenshot-webp-lossless=yes
    117. #screenshot-webp-quality=100
    118. screenshot-webp-compression=3
    119. screenshot-tag-colorspace=yes
    120. #screenshot-high-bit-depth=yes
    121. screenshot-template=MPV-%P-N%n
    122. screenshot-directory=~~desktop/


    123. [BenchMark]
    124. ##此配置应单独使用
    125. window-scale=0.5
    126. #vo=gpu
    127. #gpu-api=vulkan
    128. #hwdec=d3d11va
    129. sub=no
    130. audio=no
    131. #untimed=yes
    132. keep-open=always
    133. video-sync=display-desync
    134. interpolation=no
    135. vulkan-swap-mode=immediate
    136. opengl-swapinterval=0
    137. d3d11-sync-interval=0
    138. osd-msg1="FPS: ${estimated-display-fps}"
    139. scale=jinc
    140. cscale=jinc
    141. dscale=jinc
    142. vf=""
    143. glsl-shaders=""
    144. log-file="~~desktop/mpv-BenchMark.log"



    145. ##== 条件配置区 ==##

    146. ##下方的可交叉条件显然涉及前文提到的风险,但是重点是列举一些例子以供萌新依葫芦画瓢。

    147. #[示例条件配置]         # 配置名。支持中文
    148. #profile-desc=这是举例 # [多余] 配置描述,支持中文,随意填写
    149. #profile-restore=copy # [可选] 此参数一般用于回归触发前的通用参数(关闭此项将保留该配置参数并覆盖通用参数)
    150. #profile-cond=???     # [必要] 触发该配置的条件。可用的属性列表:https://mpv.io/manual/master/#property-list
    151. #                     # 自定义参数1
    152. #                     # 自定义参数2
    153. #                     # ......

    154. [N-fs-p]
    155. profile-desc=切换到非全屏状态时暂停
    156. profile-restore=copy
    157. profile-cond=not fullscreen
    158. pause

    159. [Short-loop]
    160. profile-desc=短时长文件自动循环播放
    161. profile-restore=copy
    162. profile-cond=duration<=150
    163. loop-file=inf

    164. [Deband-0]
    165. profile-desc=YUV420P10及以上的源关闭去色带
    166. profile-restore=copy
    167. profile-cond=p["video-params/average-bpp"]>=24
    168. deband=no

    169. [HDR2SDR]
    170. profile-desc=高转标准动态范围
    171. profile-restore=copy
    172. profile-cond=p["video-params/primaries"]=="bt.2020"
    173. blend-subtitles=no
    174. #tone-mapping=bt.2390
    175. hdr-compute-peak=yes
    176. cscale=bilinear
    177. scale=bilinear
    178. dscale=bilinear
    179. deband=no
    180. vf=""
    181. glsl-shaders=""

    182. [SD-ex]
    183. profile-desc=低清源增强
    184. profile-restore=copy
    185. profile-cond=height<720 and width<1280
    186. deband
    187. deband-iterations=3
    188. deband-threshold=48
    189. deband-range=12
    190. deband-grain=0
    191. glsl-shaders="~~/shaders/KrigBilateral.glsl;~~/shaders/noise_static_chroma.hook;~~/shaders/noise_static_luma.hook;~~/shaders/nnedi3-nns64-win8x4.hook"

    192. [HD++]
    193. profile-desc=高清源选项
    194. profile-restore=copy
    195. profile-cond=(height>=720 or height<1080) and (width>=1280 or width<1920)
    196. cscale=sinc
    197. cscale-window=blackman
    198. cscale-radius=3
    199. glsl-shaders="~~/shaders/FSRCNNX_x2_8-0-4-1.glsl"

    200. [2K++]
    201. profile-desc=超清源选项
    202. profile-restore=copy
    203. profile-cond=height>1440 and width>2560
    204. cscale=catmull_rom
    205. scale=spline36
    206. dscale=mitchell
    207. linear-downscaling=no
    208. glsl-shaders="~~/shaders/SSimDownscaler.glsl"
    209. deband=no
    复制代码

    这篇也会后边加入懒人包一起更新(已确定,直接查看懒人包内/gh上的最新版
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-22 09:30
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    12

    主题

    56

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    4039
    kitanosan 发表于 2021-2-15 18:37:50 | 显示全部楼层
    本帖最后由 kitanosan 于 2021-2-15 20:17 编辑

    非常详尽的一篇教程,不过就配置触发顺序这一点我想补充一些东西。
    就我的观察而言mpv应用配置的顺序似乎是常规配置→条件配置→结束的单向顺序,我这里测试发现条件配置必须写在常规配置之后,否则mpv会仅应用条件配置。
    使用的是二楼的配置文件组合,测试结果如下:
    可以看出来,当条件配置写在常规配置之前时,常规配置实际上是没有启用的。
    另外我这里出现了当使用V-2时条件配置中的着色器会被RAVU-Zoom覆盖的情况,如下图:

    相关的配置如下(以二楼版本为基础修改的,兴许是条件问题,因为示例没有这个问题):
    1. #全局设置
    2. profile=V-2

    3. #子设置
    4. [V-2]
    5. glsl-shaders="~~/shaders/ravu-zoom-r4-chroma.hook;~~/shaders/ravu-zoom-r4.hook"

    6. #条件配置
    7. [HD+]
    8. profile-desc=高清源增强
    9. profile-restore=copy
    10. profile-cond=(p["video-params/w"]<=1366 or p["video-params/h"]<=768) and (p["video-params/dw"]>1024 and p["video-params/dh"]>576)
    11. cscale=sinc
    12. cscale-window=blackman
    13. cscale-radius=3
    14. glsl-shaders-append="~~/shaders/FSRCNNX_x2_8-0-4-1.glsl"
    复制代码


    本帖子中包含更多资源

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

    x
    回复 支持 0 反对 1

    使用道具 举报

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

    [LV.5]常住居民I

    46

    主题

    2720

    回帖

    2020

    VC币

    星辰大海

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

    积分
    421667

    崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

    孤雨独火  楼主| 发表于 2021-2-15 20:18:55 | 显示全部楼层
    本帖最后由 孤雨独火 于 2021-2-15 20:35 编辑
    kitanosan 发表于 2021-2-15 18:37
    非常详尽的一篇教程,不过就配置触发顺序这一点我想补充一些东西。
    就我的观察而言mpv应用配置的顺序似乎是 ...



    你的mpv.copnf测试下来,配置之间没有顺序要求,常规配置在最后也是正常工作


    == 然后你这配置我有点.....懵
    1. 为啥不用 width height 作为判断条件搞得这么复杂,我看的晕...width height也更符合desc里“视频源”的定义

    2. ravu属于prescale,如果用本体r4的话...720p的视频喂进去,相当于这是一个2k视频,再触发fsrcnnx的话你需要的是4k显示器

    3. glsl-shaders-append 和我举得例子 vf-add一样在条件配置中属于比较危险的参数,除非你有一个逻辑完善的反配置来抵消撤回配置时产生的bug

    本帖子中包含更多资源

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

    x
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-22 09:30
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    12

    主题

    56

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    4039
    kitanosan 发表于 2021-2-15 21:00:49 | 显示全部楼层
    本帖最后由 kitanosan 于 2021-2-15 21:05 编辑
    孤雨独火 发表于 2021-2-15 20:18
    你的mpv.copnf测试下来,配置之间没有顺序要求,常规配置在最后也是正常工作

    忘说了,配置是这样颠倒的:
    1. #条件配置
    2. [HD++]
    3. profile-desc=高清源选项
    4. profile-restore=copy
    5. profile-cond=(height>=720 or height<1080) and (width>=1280 or width<1920)
    6. cscale=sinc
    7. cscale-window=blackman
    8. cscale-radius=3
    9. glsl-shaders="~~/shaders/FSRCNNX_x2_8-0-4-1.glsl"

    10. #全局设置
    11. profile=V-2

    12. #子设置
    13. [V-2]
    14. glsl-shaders="~~/shaders/ravu-zoom-r4-chroma.hook;~~/shaders/ravu-zoom-r4.hook"
    复制代码
    这样就可以复现。
    glsl-shaders-append的话可以在profile-restore=copy前一行加glsl-shaders-clr预防,我用这种主要是出于调整时类似“开关”的效果。
    另外第二个问题按照Width、Height写条件也有问题,可能就是优先性的问题,可以说实例中的V-2和其他增强型条件配置是冲突的,也就是没办法让FSRCNNX等先于RAVU-Zoom启用。至于共存方法我是没找到……
    对了,我还搞出了个“Bug":如果在profile-restore=copy下更改了硬解方式,auto-profile就会死循环。之所以搞出这个是因为受我的笔记本性能限制,要流畅看4K视频必须用d3d11va硬解,然后直接加了hwdec=d3d11va,就搞出了这个坑。
    解决方法的话我是直接删了profile-restore=copy,然后加了个Base-3,把硬解改成d3d11va, 其他同Base-1。
    之所以没常驻,是因为用d3d11va的话原本判断是否该用去色带的配置会失效(在默认开启去色带的前提下),哪怕是用懒人包里的判定形式也无效,不知道是为什么……似乎只能规定什么时候开去色带。
    回复 支持 0 反对 1

    使用道具 举报

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

    [LV.5]常住居民I

    46

    主题

    2720

    回帖

    2020

    VC币

    星辰大海

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

    积分
    421667

    崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

    孤雨独火  楼主| 发表于 2021-2-15 21:07:05 | 显示全部楼层
    本帖最后由 孤雨独火 于 2021-2-15 21:19 编辑
    kitanosan 发表于 2021-2-15 21:00
    忘说了,配置是这样颠倒的:这样就可以复现。

    glsl-shaders-append的话可以在profile-restore=copy前一 ...

    你没认真看....
    我前面就讲了【】之间的参数【】属于第一个配置,你这样写连通用参数都没有了

    glsl-shaders-clr并不能预防我说的,在条件配置激活的情况下做出的改变,撤回配置一样会消失你手动激活的滤镜/着色器
    这也是我很早的版本里就把krig作成高优先级的固定快捷键方案的原因(激活频率高)

    以及我最下方给的mpv.conf更多是思路扩展和示例,,我没有考虑实际使用时的逻辑


    (配置多真的非常考验使用者的思维逻辑,,所以我文中的建议也是简化条件配置



    本帖子中包含更多资源

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

    x
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-22 09:30
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    12

    主题

    56

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    4039
    kitanosan 发表于 2021-2-15 21:27:49 | 显示全部楼层
    孤雨独火 发表于 2021-2-15 21:07
    你没认真看....
    我前面就讲了【】之间的参数【】属于第一个配置

    确实,我的习惯也就是用input.conf设一些不太会用到的着色器(比如Krig,锐化着色器等)和滤镜(老实说还没设过)减少操作次数,真要搞全自动那是真的费事……我是不想搞。
    我这回算是当石头给人摸着过河吧(狗头)。
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 644 天

    [LV.9]以坛为家II

    3

    主题

    198

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    74381
    Starlight 发表于 2021-2-16 00:54:20 | 显示全部楼层
    孤雨独火 发表于 2021-2-15 21:07
    你没认真看....
    我前面就讲了【】之间的参数【】属于第一个配置,你这样写连通用参数都没有了

    这种情况用 copy-equal 优先保证可以安全回滚的值被回滚,再为不安全的回滚写单独的反向操作

    有个坑从 save-position-on-quit 恢复的值要优先于自动配置,对于会被保存的值一定要写反向操作而不能依赖回滚
    1. [exclusive-fullscreen]
    2. profile-cond=fullscreen
    3. profile-restore=copy
    4. ontop
    复制代码

    这样 resume-playback=yes 的话是不行的
    1. [exclusive-fullscreen]
    2. profile-cond=fullscreen
    3. ontop

    4. [exclusive-fullscreen-inverse]
    5. profile-cond=not fullscreen
    6. no-ontop
    复制代码
    这样才可以

    此外还有
    1. <div>[default]</div><div>[extension.gif]</div>
    复制代码

    这类的配置


    评分

    参与人数 1活跃度 +1280 收起 理由
    孤雨独火 + 1280

    查看全部评分

    回复 支持 0 反对 1

    使用道具 举报

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

    [LV.5]常住居民I

    46

    主题

    2720

    回帖

    2020

    VC币

    星辰大海

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

    积分
    421667

    崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

    孤雨独火  楼主| 发表于 2021-2-16 01:03:17 | 显示全部楼层
    Starlight 发表于 2021-2-16 00:54
    这种情况用 copy-equal 优先保证可以安全回滚的值被回滚,再为不安全的回滚写单独的反向操作

    有个坑从 sa ...

    坑感觉挺多的,于是后边写着写着就放飞了,,因为总感觉现在这个自动配置很有可能以后大改,至少我设想应该轻松实现安全“撤回”,而不用费劲测试有没有逻辑上的坑
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 644 天

    [LV.9]以坛为家II

    3

    主题

    198

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    74381
    Starlight 发表于 2021-2-16 01:27:22 | 显示全部楼层
    孤雨独火 发表于 2021-2-16 01:03
    坑感觉挺多的,于是后边写着写着就放飞了,,因为总感觉现在这个自动配置很有可能以后大改,至少我设想应 ...

    说实话用lua或者js也许可行,有变量、条件判断语句、事件、键位也能够运行时重写
    在意安全问题的话读json也不错,再来个json schema岂不美哉


    超级工程

    点评

    .........................................(溜  发表于 2021-2-16 01:37
    回复 支持 0 反对 1

    使用道具 举报

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

    本版积分规则

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