Ubuntu Kylin技术论坛

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

开源播放器MPV简介

[复制链接]
  • TA的每日心情
    慵懒
    2020-4-3 15:13
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 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的每日心情
    奋斗
    2020-4-2 08:55
  • 签到天数: 86 天

    [LV.6]常住居民II

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2020-5-29 07:29 , Processed in 0.025590 second(s), 18 queries .

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

    ICP No. 15002470-2 Tianjin

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