MPV 是一款基于 MPlayer 和 MPlayer2 的多平台开源播放器,其在Linux上拥有广泛的输出设备支持,内置ffmpeg解码器,支持绝大部分的视频和音频格式,支持本地播放和网络播放,支持ass特效字幕,GPU 解码能力十分出色。本期小编就为大家简单介绍一下MPV的配置和使用。
安装:
$ sudo apt-get update
$ sudo apt install mpv
1、配置介绍
查看MPV的帮助信息可在终端执行"mpv --help", 查看MPV可配置信息可在终端执行"mpv --list-options",查看快捷键列表可在终端执行"mpv --input-keylist"。MPV参数调用需要加"–“,如果参数是使用配置文件中的参数,则配置文件中无需在参数前加”–"。MPV的配置文件目录为:~/.config/mpv/,本文介绍的播放器定制将不使用配置文件,这里只简要介绍下mpv.conf和input.conf这两个配置文件的格式,mpv.conf 是主配置文件,里面包含一些基本的配置,input.conf 按键配置文件,包含播放过程中一些操作快捷键的设置。
mpv.conf
Disable the On Screen Controller (OSC).
osc=no
Keep the player window on top of all other windows.
ontop=yes
Enable hardware decoding if available. Often, this does not work with all
video outputs, but should work well with default settings on most systems.
If performance or energy usage is an issue, forcing the vdpau or vaapi VOs
may or may not help.
hwdec=auto
input.conf
Mouse wheels, touchpad or other input devices that have axes
if the input devices supports precise scrolling it will also scale the
numeric value accordingly
WHEEL_UP seek 10
WHEEL_DOWN seek -10
WHEEL_LEFT add volume -2
WHEEL_RIGHT add volume 2
Seek units are in seconds, but note that these are limited by keyframes
RIGHT seek 5
LEFT seek -5
UP seek 60
DOWN seek -60
下面详细介绍几个比较重要的配置项:
(1)quiet
这个参数会阻止状态行信息的显示,即使得控制台消息尽量少输出。使用Qt嵌入MPV时,需要使用noquiet而不是quiet,否则Qt程序无法获得MPV的状态信息,致使Qt程序无法将MPV的状态准确的展示给用户,如播放进度、出错信息等。当然,如果你的机器性能差,那还是建议你直接使用mpv,且参数使用quiet,而不是像本文介绍的这样对MPV进行UI封装。MPV使用noquiet的格式为:mpv --no-quiet。
(2)config
可让Qt程序将一些基本的配置通过从MPV命令获取各参数支持可选值,并设置一个默认值,且可通过图形展示给用户去选择。所以此处使用no-config,即不从MPV的配置文件读取参数。mpv使用no-config的格式为:mpv --no-config。
(3)input-file
这里将不使用MPV的input.conf配置文件,而是通过标准输入stdin给MPV发送命令,命令后面带上换行"\n"写入stdin即可。另外,在直接使用MPV的过程中,–no-input-default-bindings将使得MPV无法响应按键的事件,而–input-default-bindings参数默认为yes,则可以让MPV响应按键事件。MPV使用input-file的格式为:mpv --input-file=/dev/stdin。
(4)term-status-msg
该参数可以让MPV输出一些视频信息,可以通过 --term-status-msg 参数给它一个输出格式,如:“–term-status-msg=STATUS: {=time-pos} / {=duration:{=length:0}} P: {=pause} B: {=paused-for-cache} I: {=core-idle} VB: {=video-bitrate:0} AB: {=audio-bitrate:0}”
(5)vo
通过命令“mpv --vo help”可查看MPV支持的视频驱动列表,Qt图形程序可以将列表展示出来供用户选择,并将选择的vo加入MPV的参数列表中,加入方式为:mpv --vo xxx,如:mpv --vo=xv。
(6)ao
通过命令“mpv --ao help”可查看mpv支持的音频驱动列表,Qt图形程序可以将列表展示出来供用户选择,并将选择的ao加入mpv的参数列表中,加入方式为:mpv --ao xxx,如:mpv --ao=pulse。
(7)hwdec
hwdec为硬件解码配置,其可用配置列表和GPU有关,这里暂分析其中5种配置:no(软解),auto(自动尝试使用第一种可用的硬解方式),vdpau(用于vdpau和opengl的显示输出,即此时需要保证vo参数为gpu或者vdpau),vaapi(用于vaapi和opengl的视频输出,即此时需要保证vo参数为gpu或者vdapi,仅支持Intel GPU)和vaapi-copy(将视频拷贝回系统内存中,仅支持Intel GPU)。参数使用格式为:–hwdec=vaapi-copy。
hwdec具体参数见文档:https://mpv.io/manual/stable/。
(8)vd-lavc-threads
硬件解码线程数目,仅适用于MPEG-1/2和H.264,取值范围为0 - any,默认为0。使用格式如下:–vd-lavc-threads=4。
2、MPV格式支持
1)MPV支持的视频格式:
avi 、vfw、divx、mpg、mpeg、m1v、m2v、mpv、dv、3gp、mov、mp4、m4v、mqv、dat、vcd、ogg、ogm、ogv、ogx、asf、wmv、bin、iso、vob、mkv、nsv、ram、flv、rm、swf、ts、rmvb、dvr-ms、m2t、m2ts、mts、rec、wtv、f4v、hdmov、webm、vp8、bik、smk、m4b、wtv、part
2)MPV支持的音频格式:
mp3、ogg、oga、wav、wma、aac、ac3、dts、ra、ape、flac、thd、mka、m4a、opus
3)MPV支持的字幕格式:
srt、sub、ssa、ass、idx、txt、smi、rt、utf、aqt、vtt
4)MPV支持的列表格式:
m3u、m3u8、pls、xspf
3、MPV使用方法
前面提及过"mpv --help"、"mpv --list-options"和mpv --input-keylist"等一些MPV的帮助命令,这里将介绍如何真正使用MPV。
方法一:
通过点击菜单栏中mpv播放器图标启动MPV,然后在显示区域点击"mpv Media Player"启动MPV,这种方式启动的MPV,其默认命令行参数为:“/usr/bin/mpv --profile=pseudo-gui --”,即为pseudo-gui模式,该模式使用一些内置的配置选项,该参数是在mpv.desktop文件中指定的,如:“Exec=/usr/bin/mpv --profile=pseudo-gui – %U”。如果想要播放视频文件,将文件拖入到界面中即可开始播放。
MPV没有官方的图形用户界面,只有一个OSC(屏幕控制器),OSC上的布局包含了视频播放器的基本操作按钮,包括上一个、下一个、快进倒退、播放进度条、全屏、暂停等,当然,其支持快捷键操作。如果想播放多个视频文件,可以选中多个文件,然后右键菜单选择使用"mpv Media Player"进行播放,此时就可以通过点击OSC上的"下一个"和"上一个"图标按钮进行视频切换。效果如下图所示:
方法二:
打开一个终端,在终端上灵活配置MPV 参数进行播放。这里暂时简要列举一种使用硬解的参数配置,其他参数设置可以参考上面提到的一些主要参数。执行如下命令行使用硬解来播放视频:
$ /usr/bin/mpv --no-quiet --vd-lavc-threads=6 --hwdec=vaapi --vo=opengl --ao=pulse CESI_1080P.mkv
终端打印信息如下图所示:
当然在优麒麟1804及其之后的系统上,MPV的参数又更新了,比如"–gpu-context",我们在使用硬解时可参考如下这行命令:
$ /usr/bin/mpv --vo=gpu --hwdec=vaapi --gpu-context=x11egl CESI_1080P.mkv
好了,这一期MPV的介绍就到这里了,下一期将继续为大家介绍如何在优麒麟上使用MPV编写自己的播放器,顺便提醒大家一下,19.10内测夏令营活动今天正式开启了,欢迎大家踊跃参加,我们下期见~



