mpv 是著名開源項目 MPlayer 的分支,因其對最新軟硬體平台、視頻標準以及各種高畫質選項的支持而廣受好評,也是目前非 Windows 平台上高畫質播放器的不二選擇。

由於 mpv 本身沒有圖形界面,各種設置需要通過手動編寫配置文件來完成,使很多不熟悉命令行的普通用戶望而卻步。本文的主要目的就是為普通用戶提供一個 mpv 播放器的上手指南,手把手教你如何把 mpv 用起來。

相比在圖形界面中用滑鼠勾勾點點,手寫配置文件的方式固然不太符合普通用戶的習慣,但是「一旦接受了這種設定」,你會逐漸體會到命令行的便利與靈活。

如果你確實需要一個圖形界面的 mpv 播放器前端,我們推薦:
– Windows 用戶使用 mpv.net,可以通過微软商店GitHub 獲取;
– macOS 用戶使用 IINA,可以直接從官方网站下载

即使你選擇使用以上兩款圖形界面的 mpv 前端,在配置時仍然可以參考本教程的內容。

安裝

Windows 用戶可以到这里選擇並下載最新版壓縮包。mpv 是原生綠色軟體,將壓縮包內所有文件解壓到你想要的位置即可,例如 C:\mpv。如果你希望雙擊就能用 mpv 打開媒體文件,請以管理員許可權運行 installer 文件夾內的 mpv-install.bat。該軟體倉庫的維護者每周都會發布一個根據最新源代碼編譯的版本。

macOS 用戶可以到这里下載最新版的壓縮包,解壓後把得到的 mpv.app 直接拖進應用(Applications)文件夾內即可。如果你安裝了 Homebrew,也可以直接運行 brew cask install mpv 來安裝。安裝之後首次運行時可能會被 macOS 安全設置阻止,需要到系統設置 – 安全與隱私中允許它。

Linux 各主要發行版的官方軟體源里都收錄了 mpv,例如使用 apt 的系統可以直接用 sudo apt install mpv 來安裝。不過因為這些軟體源中的 mpv 版本經常過舊,建議另外找第三方的軟體源來安裝,或者參考 mpv-build 自行編譯。

設置文件類型關聯

Windows 下的文件類型關聯應該已經由安裝腳本完成。如果要手動設置,以 MKV 文件為例,在任意 MKV 文件上點擊右鍵 – 屬性 – 打開方式 – 更改,然後選擇剛才安裝目錄下的 mpv.exe 即可。

macOS 下和 Windows 類似,右鍵 – 顯示簡介 – 打開方式 – 全部更改,然後選擇 mpv 即可。

Linux 下取決於你使用的桌面環境,修改方式和上面大同小異。

簡單的播放器控制界面

mpv 在播放界面上提供了一些簡單的控制功能。在視頻畫面上移動滑鼠會在界面底部顯示浮動控制欄。

底部最左邊的三個按鈕分別是播放/暫停、跳轉前後章節。進度條右邊的幾個按鈕分別是切換音軌、切換字幕、調節音量和全屏/窗口顯示。滑鼠左鍵點擊音軌和字幕按鈕可以直接切換音軌或字幕,Shift + 左鍵則可以顯示當前已載入的音軌或字幕列表。

常用快捷鍵

前進 5 秒
後退 5 秒
前進 1 分鐘
後退 1 分鐘
PageUp 跳轉到下一章節
PageDown 跳轉到前一章節
Space 播放/暫停
9 降低音量
0 提高音量
j 切換字幕
# 切換音軌
m 開啟/關閉靜音
v 顯示/隱藏字幕
f 切換全屏/窗口顯示
s 截圖

此外,快捷鍵 i 可以顯示當前正在播放的文件的媒體信息以及解碼、渲染的相關數據(如下圖)。使用 Shift + i 則可以讓這些信息保持顯示或清除,顯示時點擊數字鍵 123 等等可以分別顯示信息的第一、二、三……頁。

在完成本文的配置後,你可以打開一個碼率較高的視頻,按下 Shift + i 觀察第一頁顯示的 Dropped Frames 以及 Mistimed 和 Delayed 這幾項計數,如果播放一段時間後這幾個數字都保持穩定沒有增加,則基本可以確定視頻播放沒有什麼問題了。

創建配置文件

雖然 mpv 的默認設置已經足以正常播放絕大多數視頻,為了達到更好的效果以及符合個人的使用習慣,我們仍然需要一些配置。

Windows 下打開記事本(Notepad)或者任何你喜歡的純文本編輯器,新建一個空白文檔,寫好配置命令(見下)後,在剛才 mpv 的解壓目錄下新建一個名為 portable_config 的新文件夾,例如 C:\mpv\portable_config,將配置文件命名為 mpv.conf 保存在該文件夾內(注意使用記事本的話,保存文件時「保存類型」要選擇「所有文件 (*.*)」,否則文件名會被加上 .txt 擴展名,變成 mpv.conf.txt)。

macOS 下首先打開配置文件要保存的位置,方法是在訪達(Finder)的頂欄打開前往(Go)菜單下的前往文件夾(Go to Folder),然後輸入:

~/.config/mpv

(因為這個文件夾默認是隱藏的,無法直接打開),然後打開 macOS 自帶的文本編輯(TextEdit)應用,新建一個文檔,在「格式」菜單中選擇將文檔轉換為純文本(Make Plain Text),寫好配置命令(見下)後,將這個文件保存在剛才打開的 mpv 文件夾內,文件名為 mpv.conf

Linux 下的用戶配置文件位置與 macOS 相同,也是 ~/.config/mpv/mpv.conf

建議添加的配置命令

– mpv 的默認渲染設置已經很好,一般來說已經足夠。如果你的顯卡性能較強(獨立顯卡,或近一兩年的集成顯卡),可以啟用一套預設的更高質量的渲染設置,方法是在 mpv.conf 中寫上這麼一行:

profile=high-quality

註:如果你使用的是 2023 年 9 月 20 日之前的版本(包括 release 版 0.36.0),默認渲染設置很保守,建議直接開啟 profile=gpu-hq,以達到新版本默認設置類似的水平。詳見这里

注意,使用高質量渲染設置可能會大大降低筆記本的電池續航時間,在近些年的高解析度屏幕上(例如「視網膜顯示屏」的 MacBook)尤其明顯。

色帶是非常常見的視頻壓縮瑕疵。我們建議默認啟用去色帶:

deband=yes

– mpv 默認不對視頻進行色彩管理。如果你使用校色儀對屏幕進行過校色,或者在用支持硬體校色的顯示器,或者擁有廠商提供的顏色配置文件(即 ICC profile,比如近年來的所有 Mac 都自帶,有些其他顯示器或筆記本電腦廠家也會提供)的話,建議將色彩管理開啟:

icc-profile-auto=yes

– 設置將字幕渲染到視頻源解析度並隨視頻一起縮放並進行色彩管理,這樣可以保證字幕的解析度與畫面始終一致(避免「畫面模糊字幕高清」的情況),並保證字幕中「屏幕字」的顏色與畫面一致:

blend-subtitles=video

– 很多時候,我們的顯示器刷新率不是片源幀率的整數倍(例如顯示器刷新率通常為 60 Hz 而動畫通常為 23.976 fps),此時在默認設置下會因每一幀實際在屏幕上的呈現時間不均等而造成卡頓感(俗稱 3:2 pull down judder)。因此,建議啟用 interpolation 來消除這個問題(此功能非常類似於 madVR 中的 smooth motion):

video-sync=display-resample
interpolation=yes
tscale=oversample

注意,屏幕刷新率越高,開啟 interpolation 對性能的要求也越高,理論上卡頓感也會更弱。在刷新率較高(大於 100 Hz)的屏幕上可根據實際情況酌情開啟。

– 中文字幕組經常會在外掛字幕的文件名中用 chs/cht/sc/tc/gb/big5 等標記來區分簡體或繁體字幕。這些「非標準」的寫法不會被 mpv 識別為語言標記,因此 mpv 默認不會自動載入這些字幕文件。如果想讓 mpv 能自動識別並載入這些外掛字幕的話:

sub-auto=fuzzy

– 如果你希望 mpv 啟動後直接進入全屏模式:

fullscreen=yes

以上是我認為具有普適性的一些選項。其他可以定製的地方還有很多,具體可以參考官方的文档對於上百個設置的解釋說明。此外,mpv 提供了第三方用戶腳本支持,可以實現更多的功能(例如設置 profile 針對不同片源類型進行不同的處理),以及第三方 user shader 來實現更多的畫面處理(例如 NNEDI3)。

關於 mpv 的配置方法可以另外參考:

字幕论坛上 cczzhh 的帖子

字幕论坛上孤雨独火的帖子

mpv 开发者 hassn 的个人 mpv 配置

mpv 开发者 Argon- 的个人 mpv 配置

補充說明

是否應該開啟硬解(硬體解碼)?

近幾年的主流 PC 對最常見的視頻編碼(H.264 和 H.265)硬解的支持已經有了一些提高,但出現各種問題的幾率仍不算低。為了保證播放穩定可靠,我們一般建議只使用軟體解碼(這也是 mpv 的默認設置)。如果你有其他需求,例如希望降低筆記本電腦功耗、提高電池續航,可以嘗試開啟硬解:

hwdec=auto-safe

更多信息請參考 mpv 官方文档

一些 Linux 發行版(例如 Debian/Ubuntu)可能會自動生成一個系統全局 mpv 配置文件(/etc/mpv/mpv.conf)並開啟了硬解:

hwdec=vaapi

如果播放時遇到問題,建議優先嘗試在用戶配置文件(~/.config/mpv/mpv.conf)中覆蓋上述設置:

hwdec=no

關於雙顯卡筆記本的設置

如果你使用的是集成顯卡 + NVIDIA 獨立顯卡的 Windows 筆記本,默認設置下 mpv 只會調用集成顯卡來進行渲染計算,性能有限。如果你發現播放時顯卡性能成為瓶頸,可以嘗試改用更高性能的獨立顯卡:在 NVIDIA 控制面板 – 3D 設置 – 管理 3D 設置 – 程序設置下,添加 mpv.exe,將首選圖形處理器改為「高性能 NVIDIA 處理器」,並將電源管理模式改為「自適應」。

如果你使用的是雙顯卡的 MacBook Pro,可以通過在配置文件中增加這樣一行來強制 mpv 使用獨立顯卡:

cocoa-force-dedicated-gpu=yes

IINA 使用 mpv 配置文件

IINA 可以直接讀取 mpv 的配置文件來共享設置,在偏好設置 – 高級選項卡底部勾選「使用配置目錄」即可,默認的 ~/.config/mpv 即為 mpv 的默認配置文件所在目錄。值得注意的是,小部分 mpv 設置是對 IINA 不起作用的,詳見这里

你也可以直接在 IINA 的高級選項卡下直接添加 mpv 的設置,只要將上文提到的設置里每一行 = 左右兩邊的內容分別填進「選項」和「值」中即可。

解決 Linux 下 Intel 集成顯卡驅動可能導致卡頓的問題

近些年很多 Linux 發行版不再建議安裝 Intel 顯示驅動(xf86-video-intel),只使用 modesetting 驅動。然而,modesetting 驅動可能存在 VSync 不穩定的問題,導致 mpv 在開啟 video-sync=display-resample 時間歇性卡頓。解決辦法是仍然安裝並啟用 Intel 顯示驅動,可以參考这里

以 Ubuntu 係為例,首先確保 Intel 顯示驅動已經安裝:

sudo apt install xserver-xorg-video-intel

重啟後確認 loaded display driver 已經是 intel,例如:

inxi -G

如果仍然顯示 Display … loaded: modesetting,則需要手動添加配置,例如 /etc/X11/xorg.conf.d/20-intel.conf

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
EndSection

重啟即可。

如果更換驅動後發現有畫面撕裂現象,可以嘗試在上述配置文件第三行後添加:
    Option "TearFree" "true"

在 Windows 系統中啟用長路徑功能

從本月起我們的成品可能不再遵從較為嚴格的路徑長度限制。這篇文章將簡單介紹如何在 Windows 系統中啟用長路徑功能。 Windows 系統中較為保守的最大路徑...

阅读全文

VCB-Studio 視頻播放器推薦及教程索引

(Image Credit: しおん@pixiv) 目前我們推薦的播放器可以分成兩大陣營:mpv 和 MPC。前者跨平台,後者僅限 Windows。 mpv mpv 可以在 Windows、macOS 和桌面...

阅读全文

基於 MPC-HC 和 madVR 的播放器配置入門

之前的 MPC 系教程和 madVR 教程都有些過時了。老教程直接通過註冊表來設置雖然簡單直接,但不利於維護,索性重新寫一篇。 和 mpv 的教程 類似,本教程只提及...

阅读全文

230 条评论

  1. mpv最大的問題是拉進度條的時候沒縮圖啊 (線上視頻都有了 😕 )
    mpv-thumbPreview又吃CPU又要時間,縮圖還要存在本地
    所以想問問大佬有縮圖插件能有類似PotPlayer的效果嗎

    1. 應該是看的 HDR 視頻吧,我也在看某些 HDR 視頻時遇到過這個問題,可以調整色調映射(tone-mapping)用的演算法,默認是 hable,我改的是 mobius ,這是之前的版本的默認演算法。
      配置文件里添加下面這行試試看,還是有問題也可以換其它的演算法試一試,官方文檔里寫的很清楚。

      tone-mapping=mobius

      1. 如果是HDR視頻出現的問題,並且是字幕出現時發生亮度變化,那麼請看https://github.com/mpv-player/mpv/issues/6368
        解決方法是禁用blend-subtitles
        我在論壇的帖子里推薦過這樣的auto profiles:

        # 根據視頻是否是HDR以及視頻aspect ratio決定是否啟用blend-subtitles的profile
        # 目前HDR->SDR建議關閉blend-subtitles,見https://github.com/mpv-player/mpv/issues/6368
        # 如果hdr-compute-peak將來繼續改進可能可以兼容blend-subtitles
        [HDR_or_21:9]
        profile-desc=cond:(p[“video-params/primaries”]==”bt.2020″ or p[“video-params/aspect”]>=2.0)
        blend-subtitles=no
        sub-ass-force-margins=yes # 使字幕輸出在黑邊上

        [SDR_and_16:9]
        profile-desc=cond:(p[“video-params/primaries”]~=”bt.2020″ and p[“video-params/aspect”]<2.0)
        blend-subtitles=yes
        sub-ass-force-margins=no

  2. 用了好久了,可是用雙聲道播放5.1聲道的視頻,聲音不管怎麼調,總感覺比不上用別的播放器如pot player甚至是win10自帶的電影和電視。。。不知道有沒有好的解決辦法

  3. 新人想請問下,我在配置文件里設置了無邊框,然後想設置個最小化的快捷鍵,在mpv官網看到有個windows-minimized的property,但是試過好幾種設置方法都無效,請問如何在input.conf里設置最小化和恢復的快捷鍵? 🙂

    1. window-minimized是只讀的,只能告訴你當前有沒有最小化,不能通過這個改最小化。因為這個和具體的窗口管理器有關係,不方便做進跨平台軟體(雖然不是不可能單獨給window整一個,但沒必要),所以mpv本身不支持。

      如果是windows的話,調用nircmd就可以了,mac和linux想必類似。

      a run nircmd win togglemin process mpv.exe

      a改成你想要綁定的鍵。需要下載nircmd並加入PATH。

      我自己試了下nircmd的togglemin似乎有點問題。即使有問題也好辦,寫個腳本根據當前是否最小化在調用nircmd時分別用min和normal參數就可以了,快捷鍵綁定這個腳本。

      我自己

      1. 多謝解惑,但是我的水平僅限於照著教程去動手之類的,所以還是不去折騰了,不用的時候q退出。另外多謝您在論壇分享的配置!對了,有一個小問題請教下,使用mpv時跳進度時有明顯的畫面卡頓,這是正常現象么?

          1. 沒用,可能是基本套用了你的設置,有些設置不適合,我的是筆記本gtx1050ti,1080p的屏幕。我再仔細看看設置吧,多謝!!

          2. 找到原因了,我下載了autospeedwin屏幕刷新率這個腳本但沒在設置里配置,我把腳本刪了就正常了,雖然有時候還是會卡頓一下,但是大部分時候是正常的。想問下我gtx1050ti,1080p的屏幕套用您的配置應該可以直接使用吧 🙂

          3. 不好意思,我搞錯了,是您教程里最重要的這個auto-profiles.lua腳本導致的,但是看您配置里這個腳本是必要的,所以想問問針對我的電腦情況推薦怎麼改配置呢?

  4. 帶點特效的字幕文件渲染,MPC,MPV默認和MPV作者Argon配置的播放效果都不一樣,陰影效果和輪廓效果都是MPV<MPC<MPV-Argon,大佬的配置文件只會拿來用,看不懂,哈哈。

  5. 在這邊想請問各位大大,當vobsubs(idx+sub)拉到mpv里時字幕會突然變成4個,而且不是位置跑掉就是字幕邊緣變成黃色
    而自己又不知道如何把他轉srt,所以想問是少了哪段程式碼呢?
    如果有人知道的話懇請告訴我
    感謝各位! !

    1. 字幕特效顯示不正確,試試作者Argon的配置文件https://codeload.github.com/Argon-/mpv-config/zip/master ,MPV默認的特效字幕渲染不太行。

      1. Argon把特效字幕的style給override了,胡亂套用反倒會引起問題。。
        而且他這個是vobsubs,和特效字幕半毛錢關係沒有。

  6. 請問 144hz freesync 屏有什麼注意的呢。
    interpolation 會把視頻提到 144hz 對吧。如果 cpu 性能跟不上是不是就尷尬了。
    我猜固定幀率的視頻是不是不用考慮 freesync ?

    1. 顯示器就算是幾萬Hz的,日本動畫視頻就那麼24fps,一秒最多24張畫(實際上大多時候只有8或者16張,請自行搜索 日本動畫啊 一拍二 和 一拍三),你看到的畫面也不會有任何區別。

    2. interpolation和SVP插幀不是一個東西,理論上和madVR smooth motion比較類似。做的是frame blending,所以實際渲染的計算量仍然是原來的24幀,渲染完的幀做blending要一些計算量,但不會很耗資源。144Hz放24Hz這種6倍幀率的,用oversample基本等效於每幀重複放6遍。見https://github.com/mpv-player/mpv/wiki/Interpolation

      需要注意的是如果開什麼AMD enhanced sync可能造成畫面撕裂。見https://github.com/mpv-player/mpv/issues/6514

      1. 謝謝,明白了,我確實當作類似 SVP插幀的東西了。另外 freesync 和 enhanced sync 並不是同一個東西,不過我現在想了下, freesync 是為了解決遊戲畫面撕裂的問題,而在視頻播放中並不存在這個問題,應該是沒什麼用的。

        1. 我知道什麼是freesync,只是提醒下別用額外的設置。確實現在視頻播放主要都已經用vsync了,並不存在撕裂。也有人想要mpv能和freesync搭配上:https://github.com/mpv-player/mpv/issues/6137 看了下是不想用interpolation,而用freesync去調節刷新率。

  7. 軟體放在E盤根目錄下, 配置文件放在E:\MPV\portable_config內,依舊不能實現記憶播放位置和讀取非同名外掛字幕文件

    1. input.conf (見https://mpv.io/manual/master/#input-conf)中加入:

      WHEEL_UP add volume 2
      WHEEL_DOWN add volume -2
      UP add volume 2
      DOWN add volume -2

欢迎留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据