mpv键盘映射:自定义快捷键与宏命令

mpv键盘映射:自定义快捷键与宏命令

【免费下载链接】mpv 🎥 Command line video player 【免费下载链接】mpv 项目地址: 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)

配置管理最佳实践

  1. 版本控制: 将你的input.conf纳入版本控制
  2. 模块化: 按功能分组注释配置块
  3. 备份: 定期备份你的自定义配置
  4. 文档: 为复杂宏命令添加详细注释
# ======================
# 视频编辑宏命令组
# 创建时间: 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 【免费下载链接】mpv 项目地址: https://gitcode.com/GitHub_Trending/mp/mpv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值