_ver.20220102(此为过时旧版,前往首页查看新版)
懒人包内的 input.conf 已包含大量示例与注解,这篇教程可作补充~~~
全文基于纯净版 20210711-git-f049acf 版本(按照惯例程序根目录新建 portable_config 文件夹)进行演示。 本章亦是 mpv进阶的小节2 的拓展内容,可结合阅读。 官方手册关联: https://mpv.io/manual/master/#input https://mpv.io/manual/master/#input-conf
在mpv播放器中,一般情况下,由 input.conf 文件存储用户自行设定的快捷键。 通常,MPV会自动读取 设置文件夹 中的 input.conf ,并覆盖内建的初始快捷键方案中的重名选项。 没有该文件则默认使用 内置的原始快捷键预设 。
语法格式说明:
xxxxxxxxxx
11键值名 对应功能 #(可选)在参数后的注释
键值名前加注释符 #
即屏蔽该行全部内容(等于没写)
Ctrl
与 CTRL
可混用)
Shift
Ctrl
Alt
这几个键自身不可以作为键位触发( caps
fn
win
等皆不可以作为单键位触发)A
实际对应的是 shift+a
)
A
还可以在 激活 CAPS(大写锁定键) 的情况下直接按 a
触发
不要存在同键位的设置,后行将覆盖前行的设定KP1
但小键盘区的符号键值与字母区的相同🔺 编辑键值名时,输入符号注意中文输入法的全半角...(说人话:使用英文字符)
由于注释符与 #
重名,所以如果你要绑定这个键位,用 SHARP
指代
🔺 shift+字母区数字 的组合不可用于直接绑定,因为不同键盘布局可能存在值差异。以美式键盘为例: shift+1
,如果你要绑定这个键位,应填写 !
quit
这类短命令属于特例,直接对应动作,无前/后缀参数,例如 q qiut
即按q键退出程序。
使用 ignore
使某键位无效化,例如 s ignore
将使s键无法被触发。set
指定某参数,例如 set hwdec yes
指定为硬解。
使用 cycle
使某参数在可变的多个值中切换,例如 cycle fullscreen
即让这个参数在可选的 yes
与 no
中切换。
使用 cycle-values
使某参数在你给定的多个值中切换,例如 cycle-values window-scale "0.5" "1.0" "1.5"
即窗口缩放在三个倍率中切换。add
增减某参数的数值,例如 add volume 10
增加十音量、 add volume 10
减少十音量。
🔺 seek
作为特例不需要 add
,例如 seek 5
前进五秒、 seek -5
后退5秒;使用 seek 5 absolute
跳转到时间轴的五秒处
使用 multiply
乘某参数的数值,例如 multiply speed 0.5
即逐次半速播放。no-osd
作为前置命令可使后方命令执行时不显示OSD信息,例如 s no-osd screenshot
即截屏时不会显示屏幕文字信息。其它可用的前置命令见 此处
使用 ;
分隔多个并行的命令,例如 ctrl+alt+BS set speed 1.5 ; set volume 80
按下该组合按键时,同时设置速度一点五和音量八十。script-binding 脚本名/脚本功能
,可追加绑定脚本的按键(不覆盖脚本预设),例如 d script-binding stats/display-stats
使d键位也能显示统计信息。🔺 不是所有基于 属性 的参数可以在运行时成功更改状态,例如当前 cycle-values gpu-api "d3d11" "vulkan"
这种魔幻操作是不存在的
这还需要解释吗...这东西爱写不写~~~
mpv.conf 中相关的参数:
--input-conf=<filename>
使用此参数指定使用另外的 input.conf 而不是主设置文件夹中的文件。--input-default-bindings=no
使用此参数完全屏蔽内建的所有快捷键,可以省去逐个修改或 ignore
。
🔺 外部脚本的快捷键也将一起被屏蔽,记得随后需要手动绑定--input-right-alt-gr=no
使用此参数将右侧的alt键作为独立按键。--input-doubleclick-time=300
以毫秒为单位将此单位间隔的两次触发识别为双击操作而不是两次独立的操作。
例如原始方案中的 MBTN_LEFT_DBL cycle fullscreen
双击鼠标左键切换全屏的操作将受此影响判定。内置脚本 stats.lua 激活后的第四页能显示已绑定的按键信息 ( Shift+ ) i → 4 (此时使用 ↑ / ↓ 键翻页浏览)
powershell 的命令(PS的操作参考 此处)
./mpv --input-keylist
这将列出所有可用的键值名,详情自行测试或见附录部分。./mpv --input-test --force-window --idle
这将打开一个空mpv窗口便于测试实际键位对应的值。
(懒人包用户直接点击运行程序根目录的 mpv-输入模式.bat)./mpv --input-cmdlist
这将列出所有可绑定的命令(功能),详情自行测试或见附录部分。
https://mpv.io/manual/master/#key-names
xxxxxxxxxx
1541SPACE
2SHARP
3IDEOGRAPHIC_SPACE
4ENTER
5TAB
6BS
7DEL
8INS
9HOME
10END
11PGUP
12PGDWN
13ESC
1415RIGHT
16LEFT
17DOWN
18UP
19F1
20F2
21F3
22F4
23F5
24F6
25F7
26F8
27F9
28F10
29F11
30F12
31KP0
32KP1
33KP2
34KP3
35KP4
36KP5
37KP6
38KP7
39KP8
40KP9
41KP_DEL
42KP_DEC
43KP_INS
44KP_ENTER
45MBTN_LEFT
46MBTN_MID
47MBTN_RIGHT
48WHEEL_UP
49WHEEL_DOWN
50WHEEL_LEFT
51WHEEL_RIGHT
52MBTN_BACK
53MBTN_FORWARD
54MBTN9
55MBTN10
56MBTN11
57MBTN12
58MBTN13
59MBTN14
60MBTN15
61MBTN16
62MBTN17
63MBTN18
64MBTN19
65MBTN_LEFT_DBL
66MBTN_MID_DBL
67MBTN_RIGHT_DBL
68GAMEPAD_ACTION_DOWN
69GAMEPAD_ACTION_RIGHT
70GAMEPAD_ACTION_LEFT
71GAMEPAD_ACTION_UP
72GAMEPAD_BACK
73GAMEPAD_MENU
74GAMEPAD_START
75GAMEPAD_LEFT_SHOULDER
76GAMEPAD_RIGHT_SHOULDER
77GAMEPAD_LEFT_TRIGGER
78GAMEPAD_RIGHT_TRIGGER
79GAMEPAD_LEFT_STICK
80GAMEPAD_RIGHT_STICK
81GAMEPAD_DPAD_UP
82GAMEPAD_DPAD_DOWN
83GAMEPAD_DPAD_LEFT
84GAMEPAD_DPAD_RIGHT
85GAMEPAD_LEFT_STICK_UP
86GAMEPAD_LEFT_STICK_DOWN
87GAMEPAD_LEFT_STICK_LEFT
88GAMEPAD_LEFT_STICK_RIGHT
89GAMEPAD_RIGHT_STICK_UP
90GAMEPAD_RIGHT_STICK_DOWN
91GAMEPAD_RIGHT_STICK_LEFT
92GAMEPAD_RIGHT_STICK_RIGHT
93POWER
94MENU
95PLAY
96PAUSE
97PLAYPAUSE
98STOP
99FORWARD
100REWIND
101NEXT
102PREV
103VOLUME_UP
104VOLUME_DOWN
105MUTE
106HOMEPAGE
107WWW
108109FAVORITES
110SEARCH
111SLEEP
112CANCEL
113RECORD
114CHANNEL_UP
115CHANNEL_DOWN
116PLAYONLY
117PAUSEONLY
118XF86_PAUSE
119XF86_STOP
120XF86_PREV
121XF86_NEXT
122MOUSE_BTN0
123MOUSE_BTN1
124MOUSE_BTN2
125MOUSE_BTN3
126MOUSE_BTN4
127MOUSE_BTN5
128MOUSE_BTN6
129MOUSE_BTN7
130MOUSE_BTN8
131MOUSE_BTN9
132MOUSE_BTN10
133MOUSE_BTN11
134MOUSE_BTN12
135MOUSE_BTN13
136MOUSE_BTN14
137MOUSE_BTN15
138MOUSE_BTN16
139MOUSE_BTN17
140MOUSE_BTN18
141MOUSE_BTN19
142MOUSE_BTN0_DBL
143MOUSE_BTN1_DBL
144MOUSE_BTN2_DBL
145AXIS_UP
146AXIS_DOWN
147AXIS_LEFT
148AXIS_RIGHT
149CLOSE_WIN
150MOUSE_MOVE
151MOUSE_LEAVE
152MOUSE_ENTER
153UNMAPPED
154ANY_UNICODE
https://mpv.io/manual/master/#list-of-input-commands
命令 | 备注 |
---|---|
ignore | |
seek | target=Time [flags=Flags] [legacy=Choice] |
revert-seek | [flags=Flags] |
quit | [code=Integer] |
quit-watch-later | [code=Integer] |
stop | [flags=Flags] |
frame-step | |
frame-back-step | |
playlist-next | [flags=Choice] |
playlist-prev | [flags=Choice] |
playlist-play-index | index=Choice |
playlist-shuffle | |
playlist-unshuffle | |
sub-step | skip=Integer |
sub-seek | skip=Integer |
print-text | text=String |
show-text | text=String [duration=Integer] [level=Integer] |
expand-text | text=String |
expand-path | text=String |
show-progress | |
sub-add | url=String [flags=Choice] [title=String] [lang=String] |
audio-add | url=String [flags=Choice] [title=String] [lang=String] |
video-add | url=String [flags=Choice] [title=String] [lang=String] [albumart=Flag] |
sub-remove | [id=Integer] |
audio-remove | [id=Integer] |
video-remove | [id=Integer] |
sub-reload | [id=Integer] |
audio-reload | [id=Integer] |
video-reload | [id=Integer] |
rescan-external-file | [flags=Choice] |
screenshot | [flags=Flags] [legacy=Choice] |
screenshot-to-file | filename=String [flags=Choice] |
screenshot-raw | [flags=Choice] |
loadfile | url=String [flags=Choice] [options=Key/value list] |
loadlist | url=String [flags=Choice] |
playlist-clear | |
playlist-remove | [index=Choice] |
playlist-move | index1=Integer index2=Integer |
run | command=String args=String... |
subprocess | args=String list [playback_only=Flag] [capture_size=ByteSize] [capture_stdout=Flag] [capture_stderr=Flag] [detach=Flag] [env=String list] [stdin_data=String] [passthrough_stdin=Flag] |
set | name=String value=String |
change-list | name=String operation=String value=String |
add | name=String [value=Double] |
cycle | name=String [value=up |
multiply | name=String value=Double |
cycle-values | arg0=String arg1=String argN=String... |
enable-section | name=String [flags=Flags] |
disable-section | name=String |
define-section | name=String contents=String [flags=Choice] |
ab-loop | |
drop-buffers | |
af | operation=String value=String |
vf | operation=String value=String |
af-command | label=String command=String argument=String |
vf-command | label=String command=String argument=String |
ao-reload | |
script-binding | name=String |
script-message | args=String... |
script-message-to | target=String args=String... |
overlay-add | id=Integer x=Integer y=Integer file=String offset=Integer fmt=String w=Integer h=Integer stride=Integer |
overlay-remove | id=Integer |
osd-overlay | id=Integer64 format=Choice data=String [res_x=Integer] [res_y=Integer] [z=Integer] [hidden=Flag] [compute_bounds=Flag] |
write-watch-later-config | |
delete-watch-later-config [ | [filename=String] |
mouse | x=Integer y=Integer [button=Integer] [mode=Choice] |
keybind | name=String cmd=String |
keypress | name=String |
keydown | name=String |
keyup | [name=String] |
apply-profile | name=String [mode=Choice] |
load-script | filename=String |
dump-cache | start=Time end=Time filename=String |
ab-loop-dump-cache | filename=String |
ab-loop-align-cache |