开源播放器MPV简介
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内测夏令营活动今天正式开启了,欢迎大家踊跃参加,我们下期见~
-
实至名归!优麒麟荣获中国信通院《可信开源项目》评估证书[2021-09-17]
-
浪潮之巅,自由精神独领风骚。IT世界,自由软件主导沉浮![2016-09-19]
-
拥抱自由 拥抱开源[2017-09-18]
-
【长沙】 OSC源创会第32期开始报名[2015-01-06]
-
每周一贴:如何在优麒麟桌面上显示歌词[2014-07-22]
-
在优麒麟上使用MPV编写自己的播放器[2021-06-24]
-
优麒麟社区助力CSDC开发者大会[2016-06-24]
-
更快更稳更高效!Ubuntu Kylin 20.04 Pro SP1 正式发布[2021-12-23]
-
优麒麟 18.04 LTS 正式版发布,不忘初心,砥砺前行[2018-04-27]
-
以麒麟音乐为例,教你如何构建专属自己的音乐播放器[2021-12-16]