mpv

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

mpvMPlayer と MPlayer2 がベースの動画プレイヤーです。幅広いフォーマットの動画ファイル、オーディオ・ビデオコーデック、字幕タイプをサポートしています。mpv と前出のプレイヤーとの違いは このページ で包括的に (一部不完全ですが) リストアップされています。

目次

インストール

mpv パッケージを インストール して下さい。または開発バージョンの mpv-gitAUR

フロントエンド

アプリケーション一覧/マルチメディア#mpv-based を参照してください。

設定

mpv には、弱いまたは古いビデオカードを搭載したコンピュータでもうまく動作する、優れた万能のデフォルト設定が付属しています。ただし、より新しいビデオカードを搭載したコンピュータを使用している場合は、mpv のビデオ品質を向上させるために多くの設定を行う必要があります。(ビデオカードの能力によって制限されます) これを行うには、いくつかの設定ファイルを作成するだけで済みます (デフォルトでは設定ファイルは存在しないため)

ノート: 設定ファイルは、システム全体では /etc/mpv から読み取られ、ユーザーごとには ~/.config/mpv から読み取られます (環境変数 XDG_CONFIG_HOME が設定されている場合を除く) ユーザーごとの設定はシステム全体の設定をオーバーライドし、すべてコマンドラインによってオーバーライドされます。試行錯誤が必要になる場合があるため、ユーザー固有の設定をお勧めします。

開始しやすいように、mpv にはデフォルト設定のサンプル構成ファイルが用意されています。これらをコピーして出発点として使用します。

$ cp -r /usr/share/doc/mpv/ ~/.config/

mpv.conf には mpv の設定の大部分が含まれ、input.conf にはキーバインディングが含まれます。両方を読んで、それらがどのように機能し、どのようなオプションが利用できるかを理解してください。

一般設定

次の設定を ~/.config/mpv/mpv.conf に追加します。

字幕の設定

ファジー検索を有効にする。

sub-auto=fuzzy

フォントを変更する:

sub-font="fontName"

字幕を太字にして読みやすくします。

sub-bold=yes

高度な設定

これにより、vo=gpu をビデオ出力として使用するときに高品質の OpenGL オプションが読み込まれます(デフォルト)。ほとんどのユーザーは問題なくこれらを実行できますが、実行できない少数のユーザーに問題が発生しないように、デフォルトでは有効になっていません。

profile=gpu-hq

gpu-hq プロファイルは、中程度の品質と速度を実現するために、デフォルトで spline36 スケーリングフィルターに設定されています。最高品質のビデオ出力を得るには、ハードウェアで実行できる場合は ewa_lanczossharp を使用する必要があるとマニュアルに記載されています。

profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp

これらの最後の3つのオプションは、もう少し複雑です。最初のオプションでは、オーディオとビデオが同期しなくなった場合、ビデオフレームをドロップする代わりに、オーディオをリサンプリングします(オーディオピッチのわずかな変化は、ドロップされたフレームよりも目立たないことがよくあります)。 mpv wiki には、 DisplaySynchronization というタイトルの詳細な記事があります。残りの2つは、フレームの表示方法を変更することで、基本的にディスプレイ上で動きがスムーズに見えるようにし、ソースフレームレートがディスプレイのリフレッシュレートとより良く調和するようにします(実際にビデオを60 fpsに変換するSVPの手法と混同しないでください)。 mpv wiki には、 Interpolation というタイトルの詳細な記事がありますが、一般に スムーズモーション としても知られています。

profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
video-sync=display-resample
interpolation
tscale=oversample
ノート: NVIDIA Optimus が使用されている場合、行 video-sync=display-resample により、ビデオが高速化される可能性があります。

これ以外にもできることはたくさんありますが、物事はより複雑になり、より強力なビデオカードが必要になります。簡単な概要として、画像でトレーニングされたディープニューラルネットワークを実際に使用するものを含む、エキゾチックなスケーリングとシャープニングの手法を実行する特別なシェーダーをロードすることができます(実世界とアニメーションコンテンツの両方)。これについて詳しくは、 mpv wiki、特に user-shaders のセクション をご覧ください。

あなたが同様に望ましいと思うかもしれない他のたくさんのオプションもあります。 mpv(1) を見る価値があります。コマンドラインから mpv を実行して、構成に関するエラーメッセージを確認することも役立ちます。

カスタムプロファイル

mpv.conf では、基本的に次のような オプションのグループ である プロファイル を作成できます。

  • ファイルを書き直すことなく、異なる構成をすばやく切り替えることができます。
  • 特別なコンテンツ用の特別なプロファイルを作成します。
  • ネスト プロファイル。これにより、単純なプロファイルからより複雑な プロファイル を作成できます。

プロファイルの作成は簡単です。 mpv.conf の上部の領域はトップレベルと呼ばれ、そこに書き込んだオプションはすべて、mpv が開始されると有効になります。ただし、名前を角かっこで囲んでプロファイルを定義すると、その下に書き込むすべてのオプション(新しいプロファイルを定義するまで)はそのプロファイルの一部と見なされます。 mpv.conf の例を次に示します。

profile=myprofile2            #トップレベルエリア、myprofile2をロード
ontop=yes                     #最前面に

[myprofile1]                  #シンプルなプロファイル、トップレベルの領域はここで終わります
profile-desc="a profile"      #プロファイルのオプションの説明
fs=yes                        #フルスクリーンで開始

[myprofile2]                  #別の簡単なプロファイル
profile=gpu-hq                #mpv に付属する組み込みプロファイル
log-file=~~/log               #ログファイルを書き込む場所を設定します。~~/ translates は ~/.config/mpv に変換されます

トップレベルエリア内には2つの線しかなく、その下に2つの別々のプロファイルが定義されています。 mpv が開始すると、最初の行が表示され、 myprofile2 にオプションが読み込まれます(つまり、gpu-hqlog-file=~~/log)最後に ontop=yes をロードし、起動を終了します。 myprofile1 は最上位領域で呼び出されないため、ロードされないことに注意してください。

または、次のコマンドラインから mpv を呼び出すこともできます。

$ mpv --profile=myprofile1 video.mkv

また、myprofile1 のオプションを除くすべてのオプションを無視します。

自動プロファイル

ファイルの拡張子または使用されているプロトコルに基づいて、特定の種類のプロファイルが自動的に読み込ませる。

これらのプロファイルは、一致するファイル拡張子を持つすべてのファイルに対してそれぞれにロードされます (すべての .mkv および .gif ファイルに対して):

[extension.mkv]
keep-open
volume-max=150

[extension.gif]
osc=no
loop-file

このプロファイルは、http または https ストリームが再生されるたびに自動的に読み込まれます

(例: mpv nowikihttps://example.com/video.mp4/nowiki):

[protocol.https]
speed=2
keep-open

[protocol.http]
profile=protocol.https

mpv --list-protocols を実行して、mpv でサポートされているさまざまなプロトコルを確認します。

キーバインディング

キーの割り当ては、/usr/share/doc/mpv/input.conf の例と manual の関連するセクションを参考にして下さい。

~/.config/mpv/input.conf に次の例を追加します。

shift+s         screenshot each-frame
Shift+UP        seek  600
Shift+DOWN      seek -600
=               cycle video-unscaled
-               cycle-values window-scale 2 3 1 .5
WHEEL_UP        add volume 5
WHEEL_DOWN      add volume -5
WHEEL_LEFT      ignore
WHEEL_RIGHT     ignore
Alt+RIGHT       add video-rotate 90
Alt+LEFT        add video-rotate -90
Alt+-           add video-zoom -0.25
Alt+=           add video-zoom 0.25
Alt+j           add video-pan-x -0.05
Alt+l           add video-pan-x 0.05
Alt+i           add video-pan-y 0.05
Alt+k           add video-pan-y -0.05
Alt+BS          set video-zoom 0; set video-pan-x 0; set video-pan-y 0

mpv で MPC-HC キーバインディングを再現する試みについては、 [1] を参照してください。

その他の設定ファイル

さらに、いくつかの設定ファイルとディレクトリを作成できます。その中には次のものがあります。

  • ~/.config/mpv/script-opts/osc.conf は、 On Screen Controller を管理します。
  • Lua スクリプト用の ~/.config/mpv/scripts/script-name.lua。 例については、 [2] を参照してください。

詳細については、https://mpv.io/manual/master/#files を参照してください。

スクリプト

mpv にはプレイヤーの機能を拡張する 多種多様なスクリプト があります。そのために、 Lua と JavaScript の両方の内部バインディングがあります (最近追加されました) 。

スクリプトは通常、 ~/.config/mpv/scripts/ ディレクトリに配置してインストールします (最初に作成する必要があります) その後、 mpv の起動時に自動的にロードされます mpv の場合一部のスクリプトには独自のインストール手順と設定手順が付属していますので、必ず確認してください。また、古いスクリプト、壊れたスクリプト、メンテナンスされていないスクリプトもあります。

JavaScript

JavaScript (ES5 via MuJS ) は、2014から mpv スクリプト言語としてサポートされています。現在利用できるのは a some scripts のみですが、 documentation exists は独自のものを作りたい人のためのものです。

まず、 mpv scripts ディレクトリに、拡張子 .js を持つスクリプトをドロップします。例えば:

~/.config/mpv/scripts/fullscreen-off-on-pause.js

function onPauseChange (prop, enabled) {
    if (enabled) {
        mp.set_property('fullscreen', 'no')
    }
}

mp.observe_property('pause', 'bool', onPauseChange)

require を使用して CommonJS モジュールをロードする方法などの詳細については、 documentation を参照してください。

JavaScript のサポートは mpv パッケージだけでなく、 mpv-fullAURmpv-full-gitAUR などの AUR パッケージでも利用できます。

Lua

mpv 用の興味深い Lua スクリプトがたくさんあります。独自のスクリプトを作成したい場合は、 こちら を参照してください。

mpv-ytdlAutoFormat

mpv-ytdlautoformat は、 Youtube や Twitch やあなたが望むドメインの ytdl-format を 480p やあなたが望む品質に自動変更する Lua スクリプトです。

mpv-stats

mpv-stats (または単に stats) は Lua スクリプトで、現在の状態を示す多くのライブ統計を出力します。これは、ハードウェアが構成に対応できることを確認したり、異なる構成を比較したりする場合に非常に便利です。バージョン v0.28.0 以降、スクリプトは mpv に組み込まれており、 i キーまたは I キー (デフォルト) を使用してオン/オフを切り替えることができます。

mpv-webm

mpv-webm (または単に webm) は、ビデオを見ながら WebM ファイルを作成できる非常に使いやすい Lua スクリプトです。いくつかの機能が含まれており、追加の依存関係はありません (完全に mpv に依存します)

ytdl-preload

ytdl-preload は、プレイリスト内の次の ytdl リンクを preload する Lua スクリプトです。

警告: スクリプトはまだ開発中です。ご自身の責任でご使用ください。

C

mpv-mpris

C プラグイン mpv-mpris を使用すると、プロトコルを介して他のアプリケーションを MPRIS と統合できます。たとえば、mpv-mpris がインストールされている場合、 kdeconnect は電話がかかってきたときにビデオ再生を自動的に一時停止できます。別の例として、 bluetooth オーディオデバイスのボタン (play\pauseなど) があります。

mpv-mprisAUR をインストールし、 Pacman によって表示されるインストール後の手順に従います。

Vapoursynth

Vapoursynth は AviSynth に代わるもので、 Linux で使用でき、 Python スクリプトによるビデオ操作が可能です。 Python スクリプトの Vapoursynths は mpv のビデオフィルタとして使うことができます。

vapoursynth フィルターを使用するには、 vapoursynth パッケージ (または vapoursynth-gitAUR) をインストールし、--enable-vapoursynth ビルドフラグでコンパイルする必要があります。

これは、Vapoursynth をインストールしてから mpv-gitAUR をインストールする (すでにインストールされている場合は再インストールする) 方が簡単です。 mpv-gitAUR の configure スクリプトは (インストールされている限り) Vapoursynth を自動検出し、手動で設定オプションなどを変更することなく自動的に Vapoursynth をサポートしてコンパイルします。

SVP 4 Linux (SmoothVideoProject)

SmoothVideoProject SVP は、ビデオを 60fps に変換することで主に知られているプログラムです。無料で、 64bit Linux でフル機能を利用できます (32bit Linux とは互換性がありません) 。

これには3つの主要な機能があり、それぞれを必要に応じて無効または有効にすることができます (モーション補間の使用は強制されません)

  1. Motion interpolation (youtube video) -ビデオを 60fps に変換するアルゴリズム。これは、一部の人々が愛し、他の人々が嫌う、いくぶん物議を醸す 人工的な効果 を作り出します。残念なことに、このアルゴリズムは完璧ではなく、奇妙な人工的な効果を大量に含んでいます。アルゴリズムは、パフォーマンスまたは品質のいずれかについて (スライダを介して) 調整できます。また、生成されたフレームで実際のフレームを補間するいくつかの人工的な効果削減設定があり、人工的な効果の通知性が低下します。フレームレート検出は自動または手動に設定できます (一部のユーザでは手動でパフォーマンスの問題を解決できるようです)
  2. Black bar lighting (youtube video) -イメージのアスペクト比が黒のバーをディスプレイに表示する場合、 SVP は画面上のコンテンツによって生成される lights で黒のバーを明るくします。ある程度のカスタマイズはできますが、デフォルトはほぼ最適です。
  3. LED ambient lighting control (youtube video) -テレビに接続されている LED アンビエント照明をコントロールする機能があります。
mpv.conf
[svp]
input-ipc-server=/tmp/mpvsocket     # Receives input from SVP
hr-seek-framedrop=no                # Fixes audio desync
resume-playback=no                  # Not compatible with SVP

# ノイズが治まる場合もあれば、原因となる場合もあります。ノイズがあったら試してみてください。
#opengl-early-flush=yes

SVP を使用するには、そのプロファイルを使用してファイルを開く前に、 SVP プログラムをバックグラウンドで実行しておく必要があります。次のいずれかを実行します。

$ mpv --profile=svp video.mkv

または、最上位の部分に profile=svp を設定します。

ハードウェアデコードを使用する場合は、通常のデコーダは Vapoursynth と互換性がないため、コピーバックデコーダを使用する必要があります (-copy で終わる hwdec オプションを選択します) 例えば、

hwdec=auto-copy
hwdec-codecs=all

いずれにしても、ハードウェアのデコードは、あまり推奨されず、パフォーマンスに大きな違いをもたらすことはありません。

10 ビット補間を修正

Vapoursynth は 10 ビットビデオ (少なくとも HEVC ビデオ) では動作せず、次のエラーが表示されます。

[vapoursynth] Python exception: SVSuper: Clip must be YV12

これを修正するには、mpv にビデオを別の形式に変換させます。

mpv.conf
vf=format=fmt=yuv420p

ヒントとテクニック‎

ピクチャー

ハードウェアビデオアクセラレーション

参照 ハードウェアビデオアクセラレーション

--hwdec=API オプションを使用すると、ハードウェア アクセラレーションによるビデオ デコードを利用できます。サポートされているすべての API とその他の必要なオプションのリストについては、mpv(1) § hwdec を参照してください。

永続的にするには (たとえば、デスクトップ環境からビデオを再生する場合)、設定ファイルに追加します。

~/.config/mpv/mpv.conf
hwdec=auto

ビデオフィルタで CPU 処理を許可するには、*-copy API を選択します。

ハードウェアアクセラレーションのトラブルシューティングを行うには、ログレベルの調整 (mpv(1) § msg-level を参照) が必要になる場合があります。たとえば、--msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace は次を有効にします。

  • ビデオデコーダ (vd) とビデオ出力 (vo) モジュールからの Verbose メッセージです。
  • ビデオデコードを担当するモジュールについて、さらに詳細なtraceメッセージを表示します。ここでは、ログレベルを調整せずに mpv を一度実行した後、興味のあるモジュールは経験的に vo/gpu/vaapi-egl であると判断されました。

縦横比をすばやく切り替える

Shift+a を使用して縦横比を切り替えることができます。

アスペクト比を無視する

--keepaspect=no を使うことでアスペクト比を無視できます。オプションを永続的にしたい場合、設定ファイルに keepaspect=no という行を追加してください。

ルートウィンドウに描画

--wid=0 を付けて mpv を実行してください。これによって mpv はウィンドウ ID が 0 のウィンドウに描画するようになります。

アプリケーション ウィンドウを常に表示する

コマンドラインから mpv を起動したときに、オーディオファイルでもアプリケーションウィンドウを表示するには、--force-window オプションを使用します。このオプションを永続的に使用するには、設定ファイルに force-window=yes という行を追加してください。

ビデオ出力を無効にする

コマンドラインからの起動時にビデオ出力を無効にするには、--vid=no オプション、またはその別名である --no-video を使用します。

ターミナルビデオ

  • --vo=tct "テキストコンソールで動作するカラー Unicode アートビデオ出力ドライバー"
  • --vo=caca "テキストコンソールで動作するカラーアスキーアートのビデオ出力ドライバ" libcaca のサポートは脆弱性のために Arch では無効になっています (FS#70962 を参照) が、問題は修正されたにも関わらずまだ元に戻されていません: mpv-cacaAUR をインストールしてください。

オーディオ

ボリュームが小さすぎる

設定ファイルに volume-max=value を設定して volume-max=600 など然るべき値にしてください。さらに (または)、af=acompressorダイナミックレンジ圧縮を利用することもできます。

オーディオ出力を指定する

次のコマンドを実行して、使用可能なオーディオ出力デバイスのリストを取得します

$ mpv --audio-device=help

次に、~/.config/mpv/mpv.conf に1つ追加します。例えば:

audio-device=alsa/hdmi:CARD=NVidia,DEV=1

HD オーディオパススルー

TrueHD や DTS-MA などの HD オーディオコーデックを AV レシーバーにパススルーできるようにするには、次を ~/.config/mpv/mpv.conf に追加します。

audio-spdif=ac3,eac3,dts-hd,truehd

ボリューム標準化

ソースが異なれば音量が異なるか、一貫性がない可能性があるため、mpv ユーザーは自動音量標準化を設定する必要がある場合があります。例えば:

~/.config/mpv/input.conf
n cycle_values af loudnorm=I=-30 loudnorm=I=-15 anull

これはキー n をバインドして、オーディオフィルタ設定 (af) を指定された値で循環させます。

  • loudnorm=I=-30: I=-30の loudnorm 設定、ソフトボリューム、バックグラウンドミュージックに適している可能性があります
  • loudnorm=I=-15: より大きな音量、現在表示されているビデオには適している可能性があります
  • anull: オーディオフィルタを null にリセットします。つまり、オーディオフィルタを無効にします。
ノート: キーをバインドしても、デフォルトのオーディオフィルタは変更されません。デフォルトを変更するには、例えば af=loudnorm=I=-30 をメイン設定ファイルに追加します。

mpv の音声フィルタリングは、FFmpeg バックエンドによって提供されます。詳細については、Wikipedia:EBU R 128 および ffmpeg Loudnorm フィルター を参照してください。

さまざまなオプションについて言及しているアップストリームの問題 [3] および [4] も参照してください。

Lua スクリプトを使用して mpv を音楽プレーヤーとして改善する

このブログ投稿 では music.lua このスクリプトを使用して mpv を音楽プレーヤーとして改善する方法を紹介しています。

停止した位置からの自動レジューム再生

動画の現在の位置を保存して mpv を終了するデフォルトのキーは Shift+q です。このキーはキーバインドの設定ファイルに quit_watch_later を追加することで変更できます。

プレイヤーの終了時に自動的に現在の再生位置を保存したい場合、--save-position-on-quit フラグを付けて mpv を起動してください。オプションを永続化させるには、設定ファイルに save-position-on-quit という行を追加します。

プレイリストの位置を保存して次のファイルで一時停止

プレイリストは単にファイルのリストである可能性があります。mpv(1) を参照してください。 プレイリストを再生してその位置を記憶するには:

$ mpv --save-position-on-quit --pause --reset-on-next-file=pause --playlist=/path/to/playlist

オプション --pause を使用すると、mpv は一時停止状態で開始され、 --reset-on-next-file=pause は、次のファイルに切り替えるときに一時停止モードをリセットします。

DVD を再生する

mpv は DVD メニューをサポートしていません。ビデオ DVD の最も長いタイトルでメインストリームを開始するには、次のコマンドを使用します。

$ mpv dvd://

オプションのタイトル指定子は、DVD 上の個別のビデオストリームを選択する番号 (0 から始まる) です。

$ mpv dvd://[title] 

ローカルファイルシステムに (dvdbackup ツールなどによって) コピーされた DVD は、ローカルコピーへのパスを指定することによって収容されます: --dvd-device=PATH

ローカルファイルシステムから DVD を再生するための次の デスクトップファイル の例を参照してください。

[Desktop Entry]
Type=Application
Name=mpv Media Player DVD 
GenericName=Multimedia player
Comment=Play movies and songs
Icon=mpv
Exec=mpv dvd:// --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f
Terminal=false
Categories=AudioVideo;Audio;Video;Player;TV;
# (MimeType and X-KDE-Protocols omitted, see original mpv.desktop file)

Exec 行を次のように置き換えます。

Exec=mpv dvd://0 dvd://1 dvd://2 dvd://3 dvd://4 dvd://5 dvd://6 dvd://7 dvd://8 dvd://9  --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f

mpv プレーヤーは、DVD タイトル 0〜9 をプレイリストにキューに入れます。これにより、ユーザーはタイトルを連続して再生したり、mpv GUI を使用して DVD タイトルを前後にジャンプしたりできます。

libdvdcss をインストールして、エラーを修正します。

[dvdnav] Error getting next block from DVD 1 (Error reading from DVD.)

昔の OSC に戻す

バージョン 0.21.0 から、mpv のオンスクリーンコントールはボトムバーに置き換えられました。オンスクリーンコントール (OSC) に戻したい場合、こちら に書かれているように mpv の設定を編集してください。

再現可能なスクリーンショット

スクリーンショットテンプレートオプションには、スクリーンショットされたフレームの正確なタイムコード (HH:MM:SS.mmm) を含めることができます。意味のあるファイル名により、スクリーンショットの出所を簡単に知ることができます。次のように設定されています。

~/.config/mpv/mpv.conf
screenshot-template="%F - [%P]v%#01n"

これは次のように展開されます filename - [HH:MM:SS.mmm]vnumber.jpg 結果の例:

Gunsmith Cats/
├── Gunsmith Cats - 01 - [00:00:50.217]v1.jpg
├── Gunsmith Cats - 01 - [00:22:55.874]v1.jpg
├── Gunsmith Cats - 02 - [00:12:09.729]v1.jpg
├── Gunsmith Cats - 02 - [00:12:09.729]v2.jpg
├── Gunsmith Cats - 02 - [00:15:05.778]v1.jpg
└── Gunsmith Cats - 03 - [00:03:20.001]v1.jpg

おまけに、タイムコードはエピソード番号内でアルファベット順にソートされるため、うまくソートされます。

詳細については、こちらを参照 mpv(1) § screenshot-template

スクリーンショットの作成

再生時間を指定してスクリーンショットを作成するには (HH:MM:SS):

$ mpv --no-audio --start=00:01:30 --frames=1 /path/to/video/file --o=/path/to/screenshot.png

スクリーンショットは /path/to/screenshot.png として保存されます。

ストリーミング

mpv 経由の Twitch.tv ストリーミング

youtube-dl がインストールされている場合、mpv は Twitch ライブストリームを直接開くことができます。

または、Streamlink#Twitch を参照してください。

Livestreamer に基づく別の代替手段は、次の Lua スクリプトです: https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc

youtube-dl とフォーマットの選択

デフォルトの --ytdl-formatbestvideo+bestaudio/best です。4K 解像度が利用可能な YouTube ビデオの場合、接続されているモニターの解像度がはるかに低い場合、デバイスがソフトウェアで 4K VP9 エンコードされたビデオをデコードするのに苦労する可能性があります。

ただし、適切な youtube-dl 形式セレクターを設定すると、これを簡単に修正できます。次の構成例では、垂直解像度が 1080 ピクセル以下のビデオのみが考慮されます。

ytdl-format="bestvideo[height<=?1080]+bestaudio/best"

ハードウェアでデコードできないために特定のコーデックを完全に回避したい場合は、これをフォーマットセレクターに追加できます。たとえば、次のように VP9 を無視することも選択できます。

ytdl-format="bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best"

最高品質のオープンコーデック (VP9 および Opus) を使用する場合は、次を使用します。

ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"

youtube-dl オーディオと検索

yta search terms を使用してターミナル エミュレーターから音声を検索してストリーミングするには、次の関数を .bashrc に追加します。

function yta() {
    mpv --ytdl-format=bestaudio ytdl://ytsearch:"$*"
}

システムへの統合

ブラウザのプラグインとして使用

mozpluggerAUR の助けを借りて、サポートされているブラウザで mpv を使用してビデオを再生できます。設定の詳細については、ブラウザプラグイン#マルチメディアの再生 を参照してください。これを ViewTube などのユーザー スクリプトと組み合わせると、サイトの統合ビデオ プレーヤーの代わりに mpv を使用できます。

HTTP ストリーミング用の有効なユーザー エージェントを指定する必要がある場合があります。例えば、user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0"

ブラウザプラグイン#マルチメディアの再生 ページには、ビデオを視聴する他の簡単な方法が示されています。

KDE クリップボードからビデオのリンクを開く

youtube-dl または yt-dlp がインストールされ、KDE Plasma が使用されている場合、KDE ​​クリップボードにカスタムアクションを作成して、リンクを便利に再生できます。

  1. クリップボード設定メニューを開き (通常はシステムトレイのアイコンを右クリックして)、"アクション" タブに移動します。
  2. "アクションを追加" をクリックし、動画を再生するサイトを検出するための正規表現を入力します (例: ^http.+(youtu|twitch) で YouTube と Twitch の URL を検出します)
  3. "コマンドの追加" をクリックし、"コマンド" の下に mpv %s と入力し、"説明" の下に mpv と入力します。

これで、Ctrl+Alt+r を押してコンテキスト メニューから mpv を選択すると、mpv でクリップボードからビデオリンクを再生できます。詳細設定 に移動し、"タイプ WM_CLASS の Windows のアクションを無効にする" セクションから Firefox を削除する必要がある場合があります。

トラブルシューティング

一般的なデバッグ

mpv の再生に問題がある場合 (またはフラットアウトが実行できない場合) は、最初に次の3つのことを行う必要があります。

  1. コマンドラインから mpv を実行します (-vフラグは冗長性を高めます) 。運が良ければ、そこに何が間違っているかを知らせるエラーメッセージが表示されます。$mpv -v video.mkv
  2. mpv のログファイルを出力します。ログファイルをふるいにかけるのは難しいかもしれませんが、何かが壊れている場合は、ログファイルを見ることができます。
    $ mpv -v --log-file=./log video.mkv
  3. 設定なしで mpv を実行します。これがうまく動作するなら、問題は設定のどこかにあります $mpv--no-config video.mkv

mpv が実行されても正常に実行されない場合は、 mpv-stats スクリプトをインストールして、そのスクリプトの実行状況を確認することをお勧めします。

再生が途切れたりティアリングが発生する

OpenGL をサポートしているハードウェアを使っている場合 mpv はデフォルトで OpenGL ビデオ出力デバイスを使用します。Intel HD4XXX シリーズなどのカードで 4K ディスプレイに動画を映そうとすると、動画の再生が不安定になって一時的に止まってしまったり盛大にティアリングが発生することがあります。そのような問題が起こる場合、XV (XVideo) ビデオ出力デバイスを使うことで解決できるかもしれません:

~/.config/mpv/mpv.conf
profile=xv
ノート: これは X 上で最も互換性のある VO ですが、品質が低い可能性があり、OSD と字幕表示に問題があります。

また、(低性能なハードウェアで) 再生のパフォーマンスを改善するかわりに、動画の品質が著しく落ちるという問題もあります。

動画の再生性能を高めるオプションとして以下のようなものもあります:

~/.config/mpv/mpv.conf
vd-lavc-fast
vd-lavc-skiploopfilter=<skipvalue>
vd-lavc-skipframe=<skipvalue>
vd-lavc-framedrop=<skipvalue>
vd-lavc-threads=<threads>

mpv 0.35.0 以降、一部の古い Intel プロセッサでは、ダイレクトレンダリングをオフにしないとフレームがドロップします [5]:

~/.config/mpv/mpv.conf
vd-lavc-dr=no

ウィンドウコンポジタの問題

KWin や Mutter などのウィンドウコンポジタは、再生の滑らかさに問題を引き起こす可能性があります。このような場合は、x11-bypass-compositor=yes を設定して、ウィンドウモードでの再生時にウィンドウの合成も無効にすると便利です (合成機能がサポートしている場合) 。

KWin の合成とハードウェアデコードでは、 x11-bypass-compositor=no を設定して合成をフルスクリーンで有効にしておくこともできます。フルスクリーンから離れた後で合成を再有効にすると、しばらくの間、stutter が発生する可能性があります。

ボリュームバーがないため、ボリュームを変更できません

マウスホイールをボリュームアイコンの上で回転させます。

GNOME Blank スクリーン (Wayland)

Wayland を使用している場合、mpvは GNOME の省電力設定を一時停止できません。その結果、ビデオの再生中にスクリーンセーバーがモニターをオフにします。この問題を回避するには、 mpv.desktopExec= 行の先頭に gnome-session-inhibit を追加します。

再生中のみスクリーンセーバーを禁止するには、mpv_inhibit_gnomeAUR を使用します。あるいは、gnome-session-inhibit に基づく mpv lua スクリプト を使用することもできます。

ヒント: io.mpv.Mpv flatpak アプリには、mpv_inhibit_gnome プラグインがすでに含まれています。

GNOME Wayland でカーソルテーマが適用されない

Wayland には一意の設定ファイルがないため、クライアントは異なるカーソルテーマを表示できます。カーソルテーマの場合、 Qt アプリケーションは通常、 環境変数 XCURSOR_THEME に設定された値を受け入れます。ただし、 mpv の特定のケースでは、表示されるカーソル・テーマは ~/.icons/default/index.theme で設定したものである必要があります。 GNOME Tweaks でカーソルテーマを変更する場合、 GNOME はこのファイルを更新しないので、手動で行う必要があります。詳細については、 XDG の仕様 を参照してください。

AMD GPU で CUDA ライブラリが見つからないというエラーメッセージ

v0.34.1 以前のバージョンの AMD GPU で VAAPI ハードウェア アクセラレーションを使用しているときに、Cannot load libcuda.so.1 と表示される場合、gpu-hwdec-interop=vaapi を設定することで抑制できます。

関連するバグレポート: Github issue #9691Github issue #8765

この問題は、アップストリームで修正されました。pull request #9842

PipeWire がマスクされているとオーディオが再生されない

PipeWireマスク されているシステムで mpv がクラッシュするかオーディオの再生に失敗し、出力がないかパイプが壊れていると報告する場合は、--ao オプションを設定してください。永続的な構成のために mpv.conf に設定して下さい。

mpv でファイルから DVD の再生が出来ない

mpv がプレーンな VIDEO_TS/VOB 構造のファイルから DVD を再生できない場合は、再生位置の復元機能に問題がある可能性があります。.config/mpv/watch_later フォルダをクリーニングするか、no-resume-playback オプションを指定して mpv を起動するか、save-position-on-quit=no オプションを設定してください。

一時停止から再開した後再生が途切れるのを修正

PulseAudio でビデオが途切れる場合は、mpv(1) § --pulse-latency-hacks で説明されている pulse-latency-hacks オプションを試してください。:

~/.config/mpv/mpv.conf
pulse-latency-hacks=yes