Ubuntu Kylin技术论坛

 找回密码
查看: 710|回复: 1

开源播放器MPV简介

[复制链接]

该用户从未签到

发表于 2019-8-28 10:50:36 | 显示全部楼层 |阅读模式
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内测夏令营活动今天正式开启了,欢迎大家踊跃参加,我们下期见~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2019-10-25 15:59
  • 签到天数: 85 天

    [LV.6]常住居民II

    发表于 2019-8-29 08:08:12 | 显示全部楼层
    里面对一些英文配置进行了翻译,但是翻译错误
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|Ubuntu Kylin    

    GMT+8, 2019-11-18 15:03 , Processed in 0.028239 second(s), 10 queries , File On.

    Copyright ©2013-2019 Ubuntu Kylin. All Rights Reserved .

    ICP No. 15002470-2 Tianjin

    快速回复 返回顶部 返回列表