mpv键盘映射:自定义快捷键与宏命令
【免费下载链接】mpv 🎥 Command line video player 项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
你是否曾经在使用mpv播放器时,觉得默认的快捷键不够顺手?或者想要为特定场景创建一键操作的宏命令?mpv强大的输入配置系统让你可以完全自定义键盘映射,打造专属的高效播放体验。
快速入门:创建你的第一个自定义快捷键
mpv的键盘映射通过input.conf文件实现,通常位于~/.config/mpv/input.conf。如果该文件不存在,mpv会使用内置的默认映射。
基础语法格式
[修饰键+]<键名> <命令> [; 更多命令]
示例:自定义截图快捷键
# 使用F2键截图(带字幕)
F2 screenshot
# 使用Shift+F2截图(不带字幕)
Shift+F2 screenshot video
# 使用Ctrl+F2截图窗口(包含OSD)
Ctrl+F2 screenshot window
常用命令速查表
| 命令类别 | 常用命令 | 功能描述 | 示例 |
|---|---|---|---|
| 播放控制 | seek | 跳转时间 | LEFT seek -5 |
| 播放控制 | cycle pause | 播放/暂停 | SPACE cycle pause |
| 音量控制 | add volume | 调整音量 | 9 add volume -2 |
| 字幕控制 | add sub-delay | 字幕延迟 | z add sub-delay -0.1 |
| 画面调整 | cycle fullscreen | 全屏切换 | f cycle fullscreen |
| 轨道切换 | cycle audio | 切换音轨 | # cycle audio |
高级技巧:创建复杂宏命令
多命令序列
mpv支持在一个按键上绑定多个命令,使用分号分隔:
# 一键重置所有画面设置
Ctrl+R set video-zoom 0; set video-pan-x 0; set video-pan-y 0; set video-align-x 0; set video-align-y 0; show-text "画面设置已重置"
条件执行与OSD反馈
# 智能切换字幕显示
Ctrl+V cycle sub-visibility; show-text "字幕: ${?sub-visibility==yes=显示⇨隐藏}"
实用配置示例
视频编辑专用配置
# 帧级精确控制
. frame-step # 前进一帧
, frame-back-step # 后退一帧
Ctrl+. frame-step 10 # 前进10帧
Ctrl+, frame-step -10 # 后退10帧
# A-B循环标记
l ab-loop # 设置/清除循环点
L cycle-values loop-file "inf" "no" # 切换文件循环
# 速度控制
[ multiply speed 1/1.1 # 减速10%
] multiply speed 1.1 # 加速10%
{ multiply speed 0.5 # 半速播放
} multiply speed 2.0 # 双速播放
BS set speed 1.0 # 恢复正常速度
多语言学习配置
# 字幕控制增强
Ctrl+J cycle sub # 切换字幕轨道
Ctrl+Shift+J cycle sub down # 反向切换字幕轨道
Alt+J show-text "当前字幕: ${current-tracks/sub/title} (${current-tracks/sub/lang})"
# 音频控制
Ctrl+# cycle audio # 切换音轨
Ctrl+Shift+# cycle audio down # 反向切换音轨
Alt+# show-text "当前音轨: ${current-tracks/audio/title} (${current-tracks/audio/lang})"
# 重复播放片段
Ctrl+L script-binding loop-section # 自定义循环当前5秒
调试与测试技巧
输入测试模式
mpv --input-test --force-window --idle
此模式会显示按键名称而不执行命令,非常适合调试键位映射。
查看可用键名
mpv --input-keylist
实时重载配置
修改input.conf后,可以通过以下命令重载:
Ctrl+U script-binding reload-input # 如果配置了重载快捷键
# 或者重启mpv
常见问题解决
按键冲突处理
如果多个绑定冲突,mpv会选择最长的匹配序列。可以使用ignore命令解除冲突:
# 解除b键的默认绑定,为a-b-c序列让路
b ignore
a-b-c show-text "宏命令执行成功"
特殊字符处理
对于#键,需要使用SHARP作为键名:
SHARP show-text "按下了#键"
鼠标和游戏手柄支持
# 鼠标滚轮控制音量
WHEEL_UP add volume 2
WHEEL_DOWN add volume -2
# 鼠标侧键控制播放
MBTN_BACK playlist-prev
MBTN_FORWARD playlist-next
# 游戏手柄支持(如果可用)
GAMEPAD_DPAD_LEFT seek -10
GAMEPAD_DPAD_RIGHT seek 10
高级主题:Lua脚本集成
对于更复杂的自动化需求,可以结合Lua脚本:
-- 在 ~/.config/mpv/scripts/ 下创建custom_commands.lua
mp.add_key_binding("Ctrl+Alt+S", "smart-screenshot", function()
local time = mp.get_property("time-pos")
local filename = string.format("screenshot_%s_%.2f.png", os.date("%Y%m%d_%H%M%S"), time)
mp.commandv("screenshot-to-file", filename, "video")
mp.osd_message("智能截图保存: " .. filename)
end)
配置管理最佳实践
- 版本控制: 将你的
input.conf纳入版本控制 - 模块化: 按功能分组注释配置块
- 备份: 定期备份你的自定义配置
- 文档: 为复杂宏命令添加详细注释
# ======================
# 视频编辑宏命令组
# 创建时间: 2024-01-15
# 最后更新: 2024-03-20
# ======================
# 帧精确控制
. frame-step # 前进一帧 (内置)
, frame-back-step # 后退一帧 (内置)
Ctrl+. frame-step 5 # 前进5帧 (自定义)
Ctrl+, frame-step -5 # 后退5帧 (自定义)
# 标记系统
m script-binding set-marker # 设置时间点标记
M script-binding jump-marker # 跳转到标记点
通过合理配置键盘映射,你可以将mpv打造成符合个人习惯的高效媒体播放和工作站。记住,最好的配置是那个最适合你工作流程的配置!
【免费下载链接】mpv 🎥 Command line video player 项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



