開源播放器MPV簡介
MPV 是一款基于 MPlayer 和 MPlayer2 的多平臺開源播放器,其在Linux上擁有廣泛的輸出設(shè)備支持,內(nèi)置ffmpeg解碼器,支持絕大部分的視頻和音頻格式,支持本地播放和網(wǎng)絡(luò)播放,支持ass特效字幕,GPU 解碼能力十分出色。本期小編就為大家簡單介紹一下MPV的配置和使用。
安裝:
$ sudo apt-get update
$ sudo apt install mpv
1、配置介紹
查看MPV的幫助信息可在終端執(zhí)行"mpv --help", 查看MPV可配置信息可在終端執(zhí)行"mpv --list-options",查看快捷鍵列表可在終端執(zhí)行"mpv --input-keylist"。MPV參數(shù)調(diào)用需要加"--",如果參數(shù)是使用配置文件中的參數(shù),則配置文件中無需在參數(shù)前加"--"。MPV的配置文件目錄為:~/.config/mpv/,本文介紹的播放器定制將不使用配置文件,這里只簡要介紹下mpv.conf和input.conf這兩個(gè)配置文件的格式,mpv.conf 是主配置文件,里面包含一些基本的配置,input.conf 按鍵配置文件,包含播放過程中一些操作快捷鍵的設(shè)置。
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
下面詳細(xì)介紹幾個(gè)比較重要的配置項(xiàng):
(1)quiet
這個(gè)參數(shù)會阻止?fàn)顟B(tài)行信息的顯示,即使得控制臺消息盡量少輸出。使用Qt嵌入MPV時(shí),需要使用noquiet而不是quiet,否則Qt程序無法獲得MPV的狀態(tài)信息,致使Qt程序無法將MPV的狀態(tài)準(zhǔn)確的展示給用戶,如播放進(jìn)度、出錯(cuò)信息等。當(dāng)然,如果你的機(jī)器性能差,那還是建議你直接使用mpv,且參數(shù)使用quiet,而不是像本文介紹的這樣對MPV進(jìn)行UI封裝。MPV使用noquiet的格式為:mpv --no-quiet。
(2)config
可讓Qt程序?qū)⒁恍┗镜呐渲猛ㄟ^從MPV命令獲取各參數(shù)支持可選值,并設(shè)置一個(gè)默認(rèn)值,且可通過圖形展示給用戶去選擇。所以此處使用no-config,即不從MPV的配置文件讀取參數(shù)。mpv使用no-config的格式為:mpv --no-config。
(3)input-file
這里將不使用MPV的input.conf配置文件,而是通過標(biāo)準(zhǔn)輸入stdin給MPV發(fā)送命令,命令后面帶上換行"\n"寫入stdin即可。另外,在直接使用MPV的過程中,--no-input-default-bindings將使得MPV無法響應(yīng)按鍵的事件,而--input-default-bindings參數(shù)默認(rèn)為yes,則可以讓MPV響應(yīng)按鍵事件。MPV使用input-file的格式為:mpv --input-file=/dev/stdin。
(4)term-status-msg
該參數(shù)可以讓MPV輸出一些視頻信息,可以通過 --term-status-msg 參數(shù)給它一個(gè)輸出格式,如:"--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支持的視頻驅(qū)動列表,Qt圖形程序可以將列表展示出來供用戶選擇,并將選擇的vo加入MPV的參數(shù)列表中,加入方式為:mpv --vo xxx,如:mpv --vo=xv。
(6)ao
通過命令“mpv --ao help”可查看mpv支持的音頻驅(qū)動列表,Qt圖形程序可以將列表展示出來供用戶選擇,并將選擇的ao加入mpv的參數(shù)列表中,加入方式為:mpv --ao xxx,如:mpv --ao=pulse。
(7)hwdec
hwdec為硬件解碼配置,其可用配置列表和GPU有關(guān),這里暫分析其中5種配置:no(軟解),auto(自動嘗試使用第一種可用的硬解方式),vdpau(用于vdpau和opengl的顯示輸出,即此時(shí)需要保證vo參數(shù)為gpu或者vdpau),vaapi(用于vaapi和opengl的視頻輸出,即此時(shí)需要保證vo參數(shù)為gpu或者vdapi,僅支持Intel GPU)和vaapi-copy(將視頻拷貝回系統(tǒng)內(nèi)存中,僅支持Intel GPU)。參數(shù)使用格式為:--hwdec=vaapi-copy。
hwdec具體參數(shù)見文檔:https://mpv.io/manual/stable/。
(8)vd-lavc-threads
硬件解碼線程數(shù)目,僅適用于MPEG-1/2和H.264,取值范圍為0 - any,默認(rèn)為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。
方法一:
通過點(diǎn)擊菜單欄中mpv播放器圖標(biāo)啟動MPV,然后在顯示區(qū)域點(diǎn)擊"mpv Media Player"啟動MPV,這種方式啟動的MPV,其默認(rèn)命令行參數(shù)為:"/usr/bin/mpv --profile=pseudo-gui --",即為pseudo-gui模式,該模式使用一些內(nèi)置的配置選項(xiàng),該參數(shù)是在mpv.desktop文件中指定的,如:"Exec=/usr/bin/mpv --profile=pseudo-gui -- %U"。如果想要播放視頻文件,將文件拖入到界面中即可開始播放。
MPV沒有官方的圖形用戶界面,只有一個(gè)OSC(屏幕控制器),OSC上的布局包含了視頻播放器的基本操作按鈕,包括上一個(gè)、下一個(gè)、快進(jìn)倒退、播放進(jìn)度條、全屏、暫停等,當(dāng)然,其支持快捷鍵操作。如果想播放多個(gè)視頻文件,可以選中多個(gè)文件,然后右鍵菜單選擇使用"mpv Media Player"進(jìn)行播放,此時(shí)就可以通過點(diǎn)擊OSC上的"下一個(gè)"和"上一個(gè)"圖標(biāo)按鈕進(jìn)行視頻切換。效果如下圖所示:



方法二:
打開一個(gè)終端,在終端上靈活配置MPV 參數(shù)進(jìn)行播放。這里暫時(shí)簡要列舉一種使用硬解的參數(shù)配置,其他參數(shù)設(shè)置可以參考上面提到的一些主要參數(shù)。執(zhí)行如下命令行使用硬解來播放視頻:
$ /usr/bin/mpv --no-quiet --vd-lavc-threads=6 --hwdec=vaapi --vo=opengl --ao=pulse CESI_1080P.mkv
終端打印信息如下圖所示:

當(dāng)然在優(yōu)麒麟1804及其之后的系統(tǒng)上,MPV的參數(shù)又更新了,比如"--gpu-context",我們在使用硬解時(shí)可參考如下這行命令:
$ /usr/bin/mpv --vo=gpu --hwdec=vaapi --gpu-context=x11egl CESI_1080P.mkv
好了,這一期MPV的介紹就到這里了,下一期將繼續(xù)為大家介紹如何在優(yōu)麒麟上使用MPV編寫自己的播放器,順便提醒大家一下,19.10內(nèi)測夏令營活動今天正式開啟了,歡迎大家踴躍參加,我們下期見~
-
青大TIC遇見優(yōu)麒麟[2017-05-15]
-
哈爾濱工程大學(xué)慶祝優(yōu)麒麟14.10版本發(fā)布![2014-11-17]
-
優(yōu)麒麟17.04發(fā)布派對—河北建筑工程學(xué)院報(bào)名開始![2017-05-08]
-
《優(yōu)客源創(chuàng)會》第六站“北京大學(xué)”報(bào)名開始啦![2016-05-26]
-
"恰開發(fā)者青年,風(fēng)華正茂"—CSDC開發(fā)者大會成功舉行[2016-06-28]
-
以麒麟音樂為例,教你如何構(gòu)建專屬自己的音樂播放器[2021-12-16]
-
在優(yōu)麒麟上使用MPV編寫自己的播放器[2021-06-24]
-
更快更穩(wěn)更高效!Ubuntu Kylin 20.04 Pro SP1 正式發(fā)布[2021-12-23]
-
優(yōu)麒麟 18.04 LTS 正式版發(fā)布,不忘初心,砥礪前行[2018-04-27]
-
優(yōu)麒麟17.10正式版發(fā)布,全新風(fēng)格,全新體驗(yàn)![2017-10-20]