简介
首先,mpv播放器并不是只适合极客玩家,对于普通玩家也非常容易上手,开箱就能用,甚至都不需要安装。
如果,你是一个极简主义,那mpv绝对有资格成为你的最佳选择。
其实,我本身对播放器是不挑剔的人,之前一直使用的是迅雷看看,听这名字就知道是一个老用户了,现在改名叫迅雷影音了。
为什么,突然想要切换播放器了呢?
真不是因为广告,而是发现一个软件的功能竟然能越做越差,还不止一个功能,也算是长见识了。
真正让我想要换个播放器的是放20分钟的视频,全屏情况下弹出了三次更新界面。
我对新播放器的要求非常简单:
开源能播放视频
最好支持常见格式,懒得自己转码
颜值高最好
本来我打算用VLC,因为之前在ubuntu系统用过,功能强大,但颜值一般。就像一个非常有才华但是长得一般的人,我承认我肤浅了。
然后,我发现了mpv,一个集颜值与才华于一身的播放器。OSC部分颜值一般,但是可以隐藏,甚至可以自定义。
mpv优点:
免安装、开箱即用
支持大量快捷键、操作非常方便
可定制化程度非常高
很多其他用户开发的脚本、定制程序
下载安装
mpv是夸平台的,选择自己操作系统对应的版本。
下载编译好的版本:
下载之后直接解压就可以了,解压之后的目录大致如下:
解压解压可以用,不用安装:
也可以安装,其实就是关联打开文件类型:
基本使用
OSC(on-screen-controlle):屏幕上的控制功能
界面的OSC部分功能说明:
看界面我标记了一些不常见的功能。例如,章节,视频中很少有章节,因为一般都是一个完整的故事,除非像是荒蛮故事这种,一个电影分成了几个小故事。
OSC界面的功能,基本都可以通过快捷键来调用,所以,可以通过配置把OSC的部分去掉。
当禁用OSC之后,就只有一个播放器:
真正的极简风格。
最常用快捷键
mpv的快捷键都是可以自定义的,这个我们后面详细介绍。
现在,我们就是要开箱即用,使用mpv默认的快捷键。
快捷键 | 动作 | 说明 |
---|---|---|
空格 | cycle pause | 暂停/播放 |
9 | add volume -2 | 音量减2 |
0 | add volume 2 | 音量加2 |
f | cycle fullscreen | 全屏切换 |
→ | seek 5 | 快进5秒 |
← | seek -5 | 快退5秒 |
[ | multiply speed 1/1.1 | 播放速度减10% |
] | multiply speed 1.1 | 播放速度加10% |
q | quit | 退出、关闭播放器 |
Q | quit-watch-later | 退出记忆当前位置,下次从这里播放 |
ESC | 很多功能可以用ESC键退出,例如全屏 |
对于普通用户,上面11个快捷键足够了,不必贪多,其他的快捷键99%的情况都用不到,所以到这里就可以结束了,可以需要的时候再查。
习惯了快捷键,用起来是真的爽,例如,退出,q非常方便,现在非常不习惯再用鼠标点X。
可能用到的快捷键
快捷键 | 动作 | 说明 |
---|---|---|
` | script-binding console/enable | 打开控制台,可以看日志,执行命令 |
> | playlist-next | 播放播放列表中的下一个文件 |
< | playlist-prev | 播放播放列表中的上一个文件 |
F8 | show-text ${playlist} | 显示播放列表 |
F9 | show-text ${track-list} | 显示视频、音频、字幕信息 |
o | show-progress | 显示播放进度,OSC被禁的时候非常有用 |
DEL | script-binding osc/visibility | OSC显示\隐藏 |
# | cycle audio | 切换音轨,如英文、国语切换 |
_ | cycle video | 切换视频轨道 |
j | cycle sub | 切换字幕 |
A | 切换视频的宽高比 | |
v | cycle sub-visibility | 显示\隐藏字幕 |
m | cycle mute | 静音 |
T | cycle ontop | 播放器固定到其他应用之上 |
i | 显示视频信息,自动消失 | |
I | 显示\隐藏视频信息 | |
s | screenshot | 截图带字幕,默认保存到桌面 |
S | screenshot video | 截图不带字幕 |
alt+s | screenshot window | 截图带OSD和字幕 |
ctrl+s | screenshot each-frame | 自动逐帧截图,重复快捷键停止 |
所有字幕相关的都是针对外挂字幕才生效,视频内嵌的字幕无效。
OSD(on-screen-display):屏幕上的显示信息文字,如:
mpv还有非常多的功能,都可以通过快捷键的方式使用,例如:
调整视频画面大小、位置
调整视频色调、灰度值、亮度饱和度
调整字幕位置、大小
处理字幕与画面不同步的问题
处理声音与画面不同步问题
更多的跳转设置
更多的速度设置
……
只能说,作为一个播放器,mpv实在给的太多了。
默认部分我们已经介绍够多了,能满足绝大多数想要开箱即用的朋友了。
接下来的部分,介绍自定义部分。
自定义配置
mpv的可定制化非常高
对于Windows来说,mpv的配置目录在%APPDATA%/mpv目录下,这个目录默认是空的,没有任何东西。
我们可以通过命令行打开(win+r):
配置目录:
我们先看mpv.conf
设定程序启动后默认音量
# volume=80
# 音量最大值设定(范围100%-1000%,默认为130%)
volume-max=1000
# 只在全屏模式下自动隐藏鼠标
# cursor-autohide-fs-only
# 1秒后自动隐藏鼠标
cursor-autohide=1000
# 截屏文件格式
screenshot-format=png
#截屏文件保存路径
# screenshot-directory=D:\image
# 记忆播放位置
save-position-on-quit=yes
# 关闭窗口装饰(无边框)
no-border
# 不使用osc
no-osc
#默认全屏
fullscreen
#禁用默认快捷键配置
no-input-default-bindings
所有,通过mpv 命令行控制的参数,都可以配置在这个文件中。
自定义快捷键
默认的快捷键可以看这里:默认快捷键配置
mpv定义的快捷键太多,如果觉得不方便,想要自定义,就可以在mpv.conf中禁用默认快捷键配置。
然后,添加input.conf,示例如下:
# →快进5秒
RIGHT seek 5
# ←快退5s
LEFT seek -5
# ↑ 音量加2
UP add volume 2
# ↓ 音量减2
DOWN add volume -2
# 倍数播放
[ multiply speed 1/1.1
] multiply speed 1.1
{ multiply speed 0.5
} multiply speed 2.0
# 删除键正常速度播
BS set speed 1.0
# 退出
q quit
# 退出自动保存播放位置
Q quit-watch-later
# 退出全屏
ESC set fullscreen no
SPACE cycle pause
# 播放播放列表中的下一个文件
> playlist-next
# 播放播放列表中的上一个文件
< playlist-prev
# 显示/隐藏进度条
O no-osd cycle-values osd-level 3 1
# 显示播放进度
o show-progress
# 显示/不显示视频信息,手动切换
i script-binding stats/display-stats-toggle
# 打开控制台、esc取消
` script-binding console/enable
# 静音/取消静音
m cycle mute
# 切换音频轨道
SHARP cycle audio
# 固定在其他程序之上
T cycle ontop
# 全屏/取消全屏
f cycle fullscreen
# 截图
s screenshot
# 显示/隐藏OSC
DEL script-binding osc/visibility
# 查看播放列表
F8 show-text ${playlist}
# 查看视频、音频、字幕信息
F9 show-text ${track-list}
# 切换长宽比
A cycle-values video-aspect-override "16:9" "4:3" "2.35:1" "-1"
控制台
mpv的又一个强大之处,你可以通过控制台的命令来完成快捷键能做的事情,并且更加灵活。
例如:可以通过seek 300来精确快进5分钟
脚本
我们前面介绍了scripts目录是用来存放脚本。
mpv又一个高度自定义的特性,就算你不熟悉编程,你也可以通过安装别人写好的脚本来实现功能。
用户的脚本你可以在这里:用户脚本 查找
还是有很多非常有用的脚本:
bookmarker,记忆播放文件及位置
recent,最近播放,(recent](https://github.com/hacel/recent)
autoload,自动加载文件夹的视频到播放列表,uatoload
如果没有找到满意的脚本,还可以自己动手。
例如,我自己追剧的时候,经常不知道看到哪一集了,我希望能快速定位到上次播放的文件和文件所在的目录。
因为,没有找到非常匹配的,于是决定自己动手。
mpv支持JS和lua,lua非常小巧,和Python的语法比较近,所以上手也比较容易。
local utils = require("mp.utils")local msg = require('mp.msg')local log_path = utils.join_path(mp.find_config_file("."), "last.index")local cur_pathfunction get_path()
local path = mp.get_property("path")
local workdir = mp.get_property("working-directory")
return utils.join_path(workdir, path)endfunction read_last()
local f = io.open(log_path, "r")
if not f then return end
local last_path = f:read()
f:close()
return last_pathendfunction write_log()
if not cur_path then return end
f = io.open(log_path, "w+")
f:write(cur_path)
f:close()end-- 打开上次打开文件function open_last_file()
local file = read_last()
if file == nil then
msg.warn("have not last item")
return
end
mp.command("write-watch-later-config")
mp.commandv("loadfile", file, "replace")end-- 打开上次打开文件所在的目录function open_last_dir()
local file = read_last()
if file == nil then
msg.warn("have not last dir item")
return
end
local dir = utils.split_path(file)
msg.warn(dir)
os.execute("explorer "..dir)end-- 打开上次打开文件和所在目录function open_last_filedir()
local file = read_last()
if file == nil then return end
mp.command("write-watch-later-config")
mp.commandv("loadfile", file, "replace")
local dir = utils.split_path(file)
os.execute("explorer "..dir)endmp.register_event("end-file", function()-- 不支持网络文件
if cur_path:find("http.?://") or cur_path:find("magnet:%?") or cur_path:find("rtmp://") then return end
write_log()end)mp.register_event("file-loaded", function()
cur_path = get_path()end)mp.add_key_binding("ctrl+f", "open_last_file", open_last_file)mp.add_key_binding("ctrl+d", "open_last_dir", open_last_dir)mp.add_key_binding("ctrl+shift+f", "open_last_filedir", open_last_filedir)
上面代码是实现的打开上次播放文件和目录,保存到scripts目录为lua文件就可以。
然后,我们就可以通过:
ctrl+f:打开上次播放文件
ctrl+d:打开上次播放文件所在目录
ctrl+shift+f:打开上次播放文件及其所在目录
当然也可以通过input.conf自定义快捷键
# 第一部分自定义快捷键 第二部分固定 第三部分add_key_binding的第2个参数
ctrl+L script-binding open_last_file
脚本配置
前面我们知道还有一个目录script-opts,这个目录是用来方脚本配置文件的,mpv自己的一些配置也放这个目录,例如console和osc的配置。
osc.conf内容如下:
timetotal=yes
是mpv用来控制OSC显示的,这个配置项表示显示视频总时间,而不是剩余时间。基本中通过mp.options读取,和脚本文件名字一样。
小结
能坚持看到这里,对于mpv播放器肯定是入门了,能不能起飞,就要看你自己的心情了,想要更多更灵活的定制,可以多看看官方的文档,参考一些别人的脚本和对mpv的定制程序。
视频演示
本文链接:https://www.kinber.cn/post/3735.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: