「Mpv」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(微修正)
 
(3人の利用者による、間の32版が非表示)
3行目: 3行目:
 
[[Category:オーディオ]]
 
[[Category:オーディオ]]
 
[[Category:ストリーミング]]
 
[[Category:ストリーミング]]
  +
[[de:mpv]]
 
[[en:Mpv]]
 
[[en:Mpv]]
  +
[[es:mpv]]
 
[[ru:Mpv]]
 
[[ru:Mpv]]
 
[[zh-hans:Mpv]]
 
[[zh-hans:Mpv]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|MPlayer}}
 
{{Related|MPlayer}}
  +
{{Related|yt-dlp}}
 
{{Related articles end}}
 
{{Related articles end}}
 
[http://mpv.io/ mpv] は [[MPlayer]] と MPlayer2 がベースの動画プレイヤーです。幅広いフォーマットの動画ファイル、オーディオ・ビデオコーデック、字幕タイプをサポートしています。''mpv'' と前出のプレイヤーとの違いは [https://github.com/mpv-player/mpv/blob/master/DOCS/mplayer-changes.rst このページ] で包括的に (一部不完全ですが) リストアップされています。
 
[http://mpv.io/ mpv] は [[MPlayer]] と MPlayer2 がベースの動画プレイヤーです。幅広いフォーマットの動画ファイル、オーディオ・ビデオコーデック、字幕タイプをサポートしています。''mpv'' と前出のプレイヤーとの違いは [https://github.com/mpv-player/mpv/blob/master/DOCS/mplayer-changes.rst このページ] で包括的に (一部不完全ですが) リストアップされています。
13行目: 16行目:
 
== インストール ==
 
== インストール ==
   
[[公式リポジトリ]]から {{Pkg|mpv}} パッケージを[[インストール]]するか [[Arch User Repository]] から {{AUR|mpv-git}} をインストールしてください。
+
{{Pkg|mpv}} パッケージを [[インストール]] して下さい。または開発バージョンの {{AUR|mpv-git}}
   
 
=== フロントエンド ===
 
=== フロントエンド ===
   
  +
[[アプリケーション一覧/マルチメディア#mpv-based]] を参照してください。
''mpv'' には OSC という名前のすっきりとしたユーザーインターフェイスがあり、マウスを動かした時に表示されます。カジュアルユーザー向けに、他のグラフィカルインターフェイスも存在します:
 
   
  +
== 設定 ==
* {{App|Baka MPlayer|フリーでオープンソース、クロスプラットフォームの、libmpv ベースのマルチメディアプレイヤー。Qt 5 を使用。|http://bakamplayer.u8sand.net/|{{Pkg|baka-mplayer}}, {{AUR|baka-mplayer-git}}}}
 
* {{App|bomi|強力で使いやすいマルチメディアプレイヤー (Qt 5)。|https://bomi-player.github.io/|{{AUR|bomi}}, {{AUR|bomi-git}}}}
 
* {{App|Celluloid|''mpv'' のシンプルな GTK フロントエンド。|https://celluloid-player.github.io/|{{AUR|celluloid}}, {{AUR|celluloid-git}}}}
 
* {{App|Media Player Classic Qute Theater|Qt で [[Wikipedia:ja:Media Player Classic|Media Player Classic]] を再実装したクローン。|https://github.com/cmdrkotori/mpc-qt|{{AUR|mpc-qt-git}}}}
 
* {{App|[[Wikipedia:SMPlayer|SMPlayer]]|CSS テーマや YouTube 統合などの機能が追加された Qt マルチメディアプレイヤー (Qt 5)。|http://smplayer.sourceforge.net/|{{Pkg|smplayer}}}}
 
* {{App|xt7-player-mpv|フィルターやドライバー、ladspa プラグインのサポート、ライブラリ・プレイリストの管理、YouTube、オンラインラジオ、ポッドキャスト、[[DVB-T]] などの豊富な設定オプションが存在する mpv の Qt/Gambas による GUI。|https://github.com/kokoko3k/xt7-player-mpv|{{AUR|xt7-player-mpv-git}}}}
 
   
  +
''mpv'' には、弱いまたは古いビデオカードを搭載したコンピュータでもうまく動作する、優れた万能のデフォルト設定が付属しています。ただし、より新しいビデオカードを搭載したコンピュータを使用している場合は、''mpv'' のビデオ品質を向上させるために多くの設定を行う必要があります。(ビデオカードの能力によって制限されます) これを行うには、いくつかの設定ファイルを作成するだけで済みます (デフォルトでは設定ファイルは存在しないため)
{{Note|CMPlayer/''bomi'' パッケージには内部に ''mpv'' が入っています。}}
 
   
  +
{{Note|設定ファイルは、システム全体では {{ic|/etc/mpv}} から読み取られ、ユーザーごとには {{ic|~/.config/mpv}} から読み取られます ([[環境変数]] {{ic|XDG_CONFIG_HOME}} が設定されている場合を除く) ユーザーごとの設定はシステム全体の設定をオーバーライドし、すべてコマンドラインによってオーバーライドされます。試行錯誤が必要になる場合があるため、ユーザー固有の設定をお勧めします。}}
== 設定 ==
 
   
  +
開始しやすいように、''mpv'' にはデフォルト設定のサンプル構成ファイルが用意されています。これらをコピーして出発点として使用します。
Mpv の設定は {{ic|mpv.conf}} (設定) と {{ic|input.conf}} (キーバインド) と {{ic|lua-settings/osc.conf}} (オンスクリーンディスプレイ) ファイルから読み込まれます。オプションのリストは、man ページや github にあるドキュメントを参照してください: {{man|1|mpv|url=https://mpv.io/manual/master/}} または [https://github.com/mpv-player/mpv/tree/master/DOCS/man GitHub ドキュメント]。
 
   
  +
$ cp -r /usr/share/doc/mpv/ ~/.config/
{{ic|XDG_CONFIG_HOME}} [[環境変数]]が設定されてない場合、ユーザーの設定ファイルは {{ic|~/.config/mpv}} フォルダから読み込まれます。全ユーザー共通の設定は {{ic|/etc/mpv}} フォルダから読み込まれます。
 
  +
  +
{{ic|mpv.conf}} には ''mpv'' の設定の大部分が含まれ、{{ic|input.conf}} にはキーバインディングが含まれます。両方を読んで、それらがどのように機能し、どのようなオプションが利用できるかを理解してください。
   
 
=== 一般設定 ===
 
=== 一般設定 ===
42行目: 42行目:
 
ファジー検索を有効にする。
 
ファジー検索を有効にする。
 
sub-auto=fuzzy
 
sub-auto=fuzzy
  +
  +
フォントを変更する:
  +
  +
sub-font="fontName"
   
 
字幕を太字にして読みやすくします。
 
字幕を太字にして読みやすくします。
162行目: 166行目:
 
=== その他の設定ファイル ===
 
=== その他の設定ファイル ===
   
さらに、いくつかの構成ファイルとディレクトリを作成できます。その中には次のものがあります。
+
さらに、いくつかの設定ファイルとディレクトリを作成できます。その中には次のものがあります。
   
 
* {{ic|~/.config/mpv/script-opts/osc.conf}} は、 [https://mpv.io/manual/master/#on-screen-controller On Screen Controller] を管理します。
 
* {{ic|~/.config/mpv/script-opts/osc.conf}} は、 [https://mpv.io/manual/master/#on-screen-controller On Screen Controller] を管理します。
212行目: 216行目:
   
 
[https://github.com/ekisu/mpv-webm mpv-webm] (または単に ''webm'') は、ビデオを見ながら WebM ファイルを作成できる非常に使いやすい Lua スクリプトです。いくつかの機能が含まれており、追加の依存関係はありません (完全に mpv に依存します)
 
[https://github.com/ekisu/mpv-webm mpv-webm] (または単に ''webm'') は、ビデオを見ながら WebM ファイルを作成できる非常に使いやすい Lua スクリプトです。いくつかの機能が含まれており、追加の依存関係はありません (完全に mpv に依存します)
  +
  +
==== ytdl-preload ====
  +
  +
[https://gist.github.com/bitingsock/17d90e3deeb35b5f75e55adb19098f58 ytdl-preload] は、プレイリスト内の次の ytdl リンクを preload する Lua スクリプトです。
  +
{{Warning|スクリプトはまだ開発中です。ご自身の責任でご使用ください。}}
   
 
=== C ===
 
=== C ===
260行目: 269行目:
   
 
いずれにしても、ハードウェアのデコードは、あまり推奨されず、パフォーマンスに大きな違いをもたらすことはありません。
 
いずれにしても、ハードウェアのデコードは、あまり推奨されず、パフォーマンスに大きな違いをもたらすことはありません。
  +
  +
==== 10 ビット補間を修正 ====
  +
  +
Vapoursynth は 10 ビットビデオ (少なくとも HEVC ビデオ) では動作せず、次のエラーが表示されます。
  +
  +
[vapoursynth] Python exception: SVSuper: Clip must be YV12
  +
  +
これを修正するには、mpv にビデオを別の形式に変換させます。
  +
  +
{{hc|1=mpv.conf|2=
  +
vf=format=fmt=yuv420p
  +
}}
   
 
== ヒントとテクニック‎ ==
 
== ヒントとテクニック‎ ==
   
=== ドウェアデコード ===
+
=== ピクチャー ===
   
  +
==== ハードウェアビデオアクセラレーション ====
''mplayer'' や ''mplayer2'' と違って、''mpv'' は始めから [[VA-API]] と [[VDPAU]] の両方をサポートしています。利用できる設定については [[man ページ]]の {{ic|1=--hwdec=<api>}} オプションのリファレンスを見て下さい。設定を永続化するには、設定ファイルに {{ic|1=hwdec=''method''}} という行を追加します。
 
   
  +
参照 [[ハードウェアビデオアクセラレーション]]
ハードウェアデコードを使用するとき、ビデオ出力は {{ic|opengl}}, {{ic|opengl-hq}}, {{ic|vdpau}} ({{ic|1=hwdec=vdpau}} を使う場合) のどれかに設定する必要があります。{{ic|1=hwdec=vaapi}} を使用する場合は {{ic|1=profile=opengl}} を使ってください ({{ic|opengl-hq}} を使用した場合、動画を読み込むときに CPU に過度の負担がかかるときがあります [https://github.com/mpv-player/mpv/blob/master/DOCS/man/vo.rst])。ハードウェアデコードが使用できない場合、''mpv'' は自動的にソフトウェアデコードにフォールバックします。詳細は [https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst options.rst] や [https://github.com/mpv-player/mpv/blob/master/DOCS/man/vo.rst vo.rst] を見て下さい。
 
   
  +
{{ic|1=--hwdec=''API''}} オプションを使用すると、ハードウェア アクセラレーションによるビデオ デコードを利用できます。サポートされているすべての API とその他の必要なオプションのリストについては、{{man|1|mpv|hwdec|fragment=hwdec=_api_}} を参照してください。
h264, vc1, wmv3, hevc, mpeg2video, vp9 コーデックではデフォルトでハードウェアデコードが有効になります。ただし、ハードウェアデコードを使用するコーデックを指定したり (例: {{ic|1=--hwdec-codecs=h264,mpeg2video}})、あるいは全てのコーデックでハードウェアデコードを有効にする ({{ic|1=--hwdec-codecs=all}}) こともできます。
 
   
  +
永続的にするには (たとえば、デスクトップ環境からビデオを再生する場合)、設定ファイルに追加します。
=== 高品質なビデオ出力 ===
 
   
  +
{{hc|~/.config/mpv/mpv.conf|2=
{{ic|opengl-hq}} プロファイルは mpv の開発者によって事前に設定された様々なオプションを使用する OpenGL 出力です。{{ic|opengl-hq}} を使用するには、設定ファイルで以下のように指定してください:
 
  +
hwdec=auto
  +
}}
   
  +
ビデオフィルタで CPU 処理を許可するには、{{ic|*-copy}} API を選択します。
{{hc|1=~/.config/mpv/mpv.conf|2=profile=opengl-hq}}
 
   
  +
ハードウェアアクセラレーションのトラブルシューティングを行うには、ログレベルの調整 ({{man|1|mpv|msg-level}} を参照) が必要になる場合があります。たとえば、{{ic|1=--msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace}} は次を有効にします。
{{ic|opengl-hq}} にはデフォルトで GLSL デバンドフィルダーが有効になっており、ユーザーによっては性能が劣化したりコンテンツの見た目が悪くなることがあります。以下の設定によって、フィルターは簡単に無効化できます:
 
  +
* ビデオデコーダ ({{ic|vd}}) とビデオ出力 ({{ic|vo}}) モジュールからの ''Verbose'' メッセージです。
  +
* ビデオデコードを担当するモジュールについて、さらに詳細な''trace''メッセージを表示します。ここでは、ログレベルを調整せずに mpv を一度実行した後、興味のあるモジュールは経験的に {{ic|vo/gpu/vaapi-egl}} であると判断されました。
   
  +
==== 縦横比をすばやく切り替える ====
{{hc|1=~/.config/mpv/mpv.conf|2=
 
  +
profile=opengl-hq
 
  +
{{ic|Shift+a}} を使用して縦横比を切り替えることができます。
deband=no}}
 
  +
  +
==== アスペクト比を無視する ====
  +
  +
{{ic|1=--keepaspect=''no''}} を使うことでアスペクト比を無視できます。オプションを永続的にしたい場合、設定ファイルに {{ic|1=keepaspect=''no''}} という行を追加してください。
  +
  +
==== ルートウィンドウに描画 ====
  +
  +
{{ic|1=--wid=0}} を付けて ''mpv'' を実行してください。これによって ''mpv'' はウィンドウ ID が 0 のウィンドウに描画するようになります。
  +
  +
==== アプリケーション ウィンドウを常に表示する ====
  +
  +
コマンドラインから mpv を起動したときに、オーディオファイルでもアプリケーションウィンドウを表示するには、{{ic|--force-window}} オプションを使用します。このオプションを永続的に使用するには、設定ファイルに {{ic|1=force-window=yes}} という行を追加してください。
  +
  +
==== ビデオ出力を無効にする ====
  +
  +
コマンドラインからの起動時にビデオ出力を無効にするには、{{ic|1=--vid=no}} オプション、またはその別名である {{ic|--no-video}} を使用します。
  +
  +
==== ターミナルビデオ ====
  +
  +
*{{ic|1=--vo=tct}} "テキストコンソールで動作するカラー Unicode アートビデオ出力ドライバー"
  +
*{{ic|1=--vo=caca}} "テキストコンソールで動作するカラーアスキーアートのビデオ出力ドライバ" {{Pkg|libcaca}} のサポートは脆弱性のために Arch では無効になっています ({{Bug|70962}} を参照) が、問題は修正されたにも関わらずまだ元に戻されていません: {{AUR|mpv-caca}} をインストールしてください。
  +
  +
=== オーディオ ===
  +
  +
==== ボリュームが小さすぎる ====
  +
  +
設定ファイルに {{ic|1=volume-max=''value''}} を設定して {{ic|1=volume-max=600}} など然るべき値にしてください。さらに (または)、{{ic|1=af=acompressor}} で[[wikipedia:ja:コンプレッサー (音響機器)|ダイナミックレンジ圧縮]]を利用することもできます。
  +
  +
==== オーディオ出力を指定する ====
  +
  +
次のコマンドを実行して、使用可能なオーディオ出力デバイスのリストを取得します
  +
  +
$ mpv --audio-device=help
  +
  +
次に、{{ic|~/.config/mpv/mpv.conf}} に1つ追加します。例えば:
  +
  +
audio-device=alsa/hdmi:CARD=NVidia,DEV=1
  +
  +
==== HD オーディオパススルー ====
  +
  +
TrueHD や DTS-MA などの HD オーディオコーデックを AV レシーバーにパススルーできるようにするには、次を {{ic|~/.config/mpv/mpv.conf}} に追加します。
  +
  +
audio-spdif=ac3,eac3,dts-hd,truehd
  +
  +
==== ボリューム標準化 ====
  +
  +
ソースが異なれば音量が異なるか、一貫性がない可能性があるため、''mpv'' ユーザーは自動音量標準化を設定する必要がある場合があります。例えば:
  +
  +
{{hc|~/.config/mpv/input.conf|2=
  +
n cycle_values af loudnorm=I=-30 loudnorm=I=-15 anull
  +
}}
  +
  +
これはキー {{ic|n}} をバインドして、オーディオフィルタ設定 ({{ic|af}}) を指定された値で循環させます。
  +
  +
* {{ic|1=loudnorm=I=-30}}: {{ic|1=I=-30}}の loudnorm 設定、ソフトボリューム、バックグラウンドミュージックに適している可能性があります
  +
* {{ic|1=loudnorm=I=-15}}: より大きな音量、現在表示されているビデオには適している可能性があります
  +
* {{ic|anull}}: オーディオフィルタを null にリセットします。つまり、オーディオフィルタを無効にします。
  +
  +
{{Note|キーをバインドしても、デフォルトのオーディオフィルタは変更されません。デフォルトを変更するには、例えば {{ic|1=af=loudnorm=I=-30}} をメイン設定ファイルに追加します。}}
  +
  +
''mpv'' の音声フィルタリングは、[[FFmpeg]] バックエンドによって提供されます。詳細については、[[Wikipedia:EBU R 128]] および [https://ffmpeg.org/ffmpeg-filters.html#loudnorm ffmpeg Loudnorm フィルター] を参照してください。
  +
  +
さまざまなオプションについて言及しているアップストリームの問題 [https://github.com/mpv-player/mpv/issues/3979] および [https://github.com/mpv-player/mpv/issues/2883] も参照してください。
  +
  +
==== Lua スクリプトを使用して mpv を音楽プレーヤーとして改善する ====
  +
  +
[https://web.archive.org/web/20160320001546/http://bamos.github.io/2014/07/05/mpv-lua-scripting/ このブログ投稿] では [https://github.com/bamos/dotfiles/blob/master/.mpv/scripts.old/music.lua music.lua] このスクリプトを使用して ''mpv'' を音楽プレーヤーとして改善する方法を紹介しています。
   
 
=== 停止した位置からの自動レジューム再生 ===
 
=== 停止した位置からの自動レジューム再生 ===
289行目: 381行目:
 
プレイヤーの終了時に自動的に現在の再生位置を保存したい場合、{{ic|--save-position-on-quit}} フラグを付けて ''mpv'' を起動してください。オプションを永続化させるには、設定ファイルに {{ic|save-position-on-quit}} という行を追加します。
 
プレイヤーの終了時に自動的に現在の再生位置を保存したい場合、{{ic|--save-position-on-quit}} フラグを付けて ''mpv'' を起動してください。オプションを永続化させるには、設定ファイルに {{ic|save-position-on-quit}} という行を追加します。
   
  +
==== プレイリストの位置を保存して次のファイルで一時停止 ====
=== ボリュームが小さすぎる ===
 
   
  +
プレイリストは単にファイルのリストである可能性があります。{{man|1=1|2=mpv|url=https://man.archlinux.org/man/mpv.1#playlist=_filename_}} を参照してください。
設定ファイルに {{ic|1=volume-max=''value''}} を設定して {{ic|1=volume-max=600}} など然るべき値にしてください。さらに (または)、{{ic|1=af=acompressor}} で[[wikipedia:ja:コンプレッサー (音響機器)|ダイナミックレンジ圧縮]]を利用することもできます。
 
  +
プレイリストを再生してその位置を記憶するには:
  +
$ mpv --save-position-on-quit --pause --reset-on-next-file=pause --playlist=''/path/to/playlist''
  +
オプション {{ic|--pause}} を使用すると、''mpv'' は一時停止状態で開始され、
  +
{{ic|1=--reset-on-next-file=pause}} は、次のファイルに切り替えるときに一時停止モードをリセットします。
   
  +
=== DVD を再生する ===
=== 複数のアスペクト比のクイック切り替え ===
 
   
  +
mpv は DVD メニューをサポートしていません。ビデオ DVD の最も長いタイトルでメインストリームを開始するには、次のコマンドを使用します。
バージョン 0.8.0 から {{ic|Shift+a}} を使ってアスペクト比を切り替えることができます。
 
   
  +
$ mpv dvd://
=== アスペクト比を無視する ===
 
   
  +
オプションのタイトル指定子は、DVD 上の個別のビデオストリームを選択する番号 (0 から始まる) です。
{{ic|1=--keepaspect=''no''}} を使うことでアスペクト比を無視できます。オプションを永続的にしたい場合、設定ファイルに {{ic|1=keepaspect=''no''}} という行を追加してください。
 
   
  +
$ mpv dvd://[title]
=== ルートウィンドウに描画 ===
 
   
  +
ローカルファイルシステムに ([[dvdbackup]] ツールなどによって) コピーされた DVD は、ローカルコピーへのパスを指定することによって収容されます: {{ic|1=--dvd-device=''PATH'' }}
{{ic|1=--wid=0}} を付けて ''mpv'' を実行してください。これによって ''mpv'' はウィンドウ ID が 0 のウィンドウに描画するようになります。
 
   
  +
ローカルファイルシステムから DVD を再生するための次の [[デスクトップファイル]] の例を参照してください。
=== GUI を常時表示 ===
 
   
  +
[Desktop Entry]
''mpv'' をターミナル以外から起動する場合、音声ファイルなどでも、GUI ウィンドウが表示されていたほうが便利です。{{ic|--force-window}} オプションを使うことで常時表示させることができます。
 
  +
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 行を次のように置き換えます。
=== 動画ファイルで GUI を非表示にする ===
 
   
  +
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
動画ファイルでは GUI ウィンドウを隠したい場合もあるでしょう。{{ic|--no-video}} オプションを使うことで非表示にできます。
 
  +
  +
mpv プレーヤーは、DVD タイトル 0〜9 をプレイリストにキューに入れます。これにより、ユーザーはタイトルを連続して再生したり、mpv GUI を使用して DVD タイトルを前後にジャンプしたりできます。
  +
  +
{{Pkg|libdvdcss}} をインストールして、エラーを修正します。
  +
  +
[dvdnav] Error getting next block from DVD 1 (Error reading from DVD.)
   
 
=== 昔の OSC に戻す ===
 
=== 昔の OSC に戻す ===
317行目: 428行目:
 
バージョン 0.21.0 から、mpv のオンスクリーンコントールはボトムバーに置き換えられました。オンスクリーンコントール (OSC) に戻したい場合、[https://github.com/mpv-player/mpv/wiki/FAQ#i-want-the-old-osc-back こちら] に書かれているように mpv の設定を編集してください。
 
バージョン 0.21.0 から、mpv のオンスクリーンコントールはボトムバーに置き換えられました。オンスクリーンコントール (OSC) に戻したい場合、[https://github.com/mpv-player/mpv/wiki/FAQ#i-want-the-old-osc-back こちら] に書かれているように mpv の設定を編集してください。
   
=== ブラウザプラグイとして使う ===
+
=== 再現可能なスクリーショット ===
   
  +
スクリーンショットテンプレートオプションには、スクリーンショットされたフレームの正確なタイムコード (HH:MM:SS.mmm) を含めることができます。意味のあるファイル名により、スクリーンショットの出所を簡単に知ることができます。次のように設定されています。
{{AUR|mozplugger}} を利用することで、サポートされているブラウザにおいて ''mpv'' を使って動画を再生することができます。設定の詳細は [[ブラウザプラグイン#MozPlugger]] を見て下さい。[http://isebaro.com/viewtube/?ln=en ViewTube] などのユーザースクリプトと組み合わせて、''mpv'' を使用してサイトに埋め込まれた動画プレイヤーを置き換えることもできます。
 
   
  +
{{hc|1=~/.config/mpv/mpv.conf|2=
HTTP ストリーミングを使用するときはユーザーエージェントの設定が必要な場合があります。例: {{ic|1=user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0"}}。
 
  +
screenshot-template="%F - [%P]v%#01n"
  +
}}
   
  +
これは次のように展開されます {{ic|''filename'' - [HH:MM:SS.mmm]v''number''.jpg}} 結果の例:
=== Lua スクリプトを使って mpv を音楽プレイヤーとして磨き上げる ===
 
   
  +
Gunsmith Cats/
mpv の Lua スクリプトの開発方法は [https://github.com/mpv-player/mpv mpv リポジトリ] の [https://github.com/mpv-player/mpv/blob/master/DOCS/man/lua.rst DOCS/man/lua.rst] にまとまっており、サンプルが [https://github.com/mpv-player/mpv/tree/master/TOOLS/lua TOOLS/lua] にあります。[https://web.archive.org/web/20160320001546/http://bamos.github.io/2014/07/05/mpv-lua-scripting/ このブログ記事] では Lua スクリプトを使って mpv を使いやすくする例として [https://github.com/bamos/dotfiles/blob/master/.mpv/scripts/music.lua music.lua] スクリプトを紹介しています。
 
  +
├── 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 で Twitch.tv のストリーミングを視聴 ===
 
   
  +
詳細については、こちらを参照 {{man|1|mpv|screenshot-template}}
{{Pkg|youtube-dl}} がインストールされている場合、mpv は直接 Twitch のライブストリームを開くことができます。
 
   
  +
=== スクリーンショットの作成 ===
また、{{Pkg|streamlink}} を使って Twitch をストリーミングする方法もあります。GUI でストリームを視聴したい場合 {{aur|streamlink-twitch-gui}} を使ってください。[[Streamlink#Twitch]] を見て下さい。
 
   
  +
再生時間を指定してスクリーンショットを作成するには ({{ic|HH:MM:SS}}):
さらに Livestreamer を利用する Lua スクリプトが存在します: https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc
 
   
  +
$ mpv --no-audio --start=00:01:30 --frames=1 /path/to/video/file --o=/path/to/screenshot.png
=== youtube-dl とフォーマットの選択 ===
 
   
  +
スクリーンショットは /path/to/screenshot.png として保存されます。
{{ic|--ytdl-format}} のデフォルトは {{ic|bestvideo+bestaudio/best}} となっています。4K 解像度で見ることができる YouTube 動画の場合、たとえ接続しているモニターが 4K に対応していなくても、4K の VP9 でエンコードされた動画をソフトウェアデコードすることになります。
 
   
  +
=== ストリーミング ===
youtube-dl のフォーマットを適切に設定することで問題は簡単に解決します。以下の設定例では、縦の解像度が1080ピクセル以下の動画だけが再生されます:
 
   
  +
==== mpv 経由の Twitch.tv ストリーミング ====
ytdl-format=bestvideo[height<=?1080]+bestaudio/best
 
   
  +
[[youtube-dl]] がインストールされている場合、''mpv'' は Twitch ライブストリームを直接開くことができます。
ハードウェアデコードできない特定のコーデックだけを避けたい場合、同じように追加できます。例えば、VP9 を無視するには以下のように設定します:
 
   
  +
または、[[Streamlink#Twitch]] を参照してください。
ytdl-format=bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best
 
   
  +
Livestreamer に基づく別の代替手段は、次の Lua スクリプトです: https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc
=== youtube-dl の音声検索 ===
 
   
  +
==== youtube-dl とフォーマットの選択 ====
{{ic|.bashrc}} に以下の関数を記述することでターミナルから {{ic|mm "''search terms''"}} を実行して音声を検索・再生できます:
 
   
  +
デフォルトの {{ic|--ytdl-format}} は {{ic|bestvideo+bestaudio/best}} です。4K 解像度が利用可能な YouTube ビデオの場合、接続されているモニターの解像度がはるかに低い場合、デバイスがソフトウェアで 4K VP9 エンコードされたビデオをデコードするのに苦労する可能性があります。
function mm() {
 
mpv --no-video --ytdl-format=bestaudio ytdl://ytsearch10:"$@"
 
}
 
   
  +
ただし、適切な youtube-dl 形式セレクターを設定すると、これを簡単に修正できます。次の構成例では、垂直解像度が 1080 ピクセル以下のビデオのみが考慮されます。
=== コンポジタで mpv を使う ===
 
   
  +
ytdl-format="bestvideo[height<=?1080]+bestaudio/best"
コンポジタ (例: KDE Plasma 5) を使っていて、mpv で動画を再生するときにコンポジットが無効になってしまう場合 (Plasma でウィンドウが表示されなくなったりデフォルトのアプリスイッチャでウィンドウのサムネイルが表示されなくなる場合)、{{ic|1=x11-bypass-compositor=no}} を使ってみてください。
 
   
  +
ハードウェアでデコードできないために特定のコーデックを完全に回避したい場合は、これをフォーマットセレクターに追加できます。たとえば、次のように VP9 を無視することも選択できます。
===OSC を古いものに戻したい===
 
以下のように設定してください:
 
{{hc|1=~/.config/mpv/lua-settings/osc.conf|2=layout=box}}
 
   
  +
ytdl-format="bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best"
=== スクリーンショットの作成 ===
 
再生時間を指定してスクリーンショットを作成するには ({{ic|HH:MM:SS}}):
 
   
  +
最高品質のオープンコーデック (VP9 および Opus) を使用する場合は、次を使用します。
$ mpv --no-audio --profile=image --start=00:01:30 --frames=1 /path/to/video/file
 
  +
ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"
   
  +
==== youtube-dl オーディオと検索 ====
スクリーンショットはカレントディレクトリに 00000001.jpg として保存されます。
 
   
  +
{{ic|yta ''search terms''}} を使用してターミナル エミュレーターから音声を検索してストリーミングするには、次の関数を {{ic|.bashrc}} に追加します。
== Vapoursynth ==
 
   
  +
function yta() {
AviSynth の代わりとして Linux では Vapoursynth を使うことができます。Python スクリプトで動画を操作することが可能です。Vapoursynth の Python スクリプトは ''mpv'' の動画フィルターとしても使えます。
 
  +
mpv --ytdl-format=bestaudio ytdl://ytsearch:"$*"
  +
}
   
  +
=== システムへの統合 ===
Vapoursynth フィルターを使うには {{Pkg|vapoursynth}} パッケージをインストールして {{ic|--enable-vapoursynth}} ビルドフラグを付けて ''mpv'' をコンパイルしてください。
 
   
  +
==== ブラウザのプラグインとして使用 ====
=== バンディングを消去 (flash3kyuu) ===
 
   
  +
{{AUR|mozplugger}} の助けを借りて、サポートされているブラウザで ''mpv'' を使用してビデオを再生できます。設定の詳細については、[[ブラウザプラグイン#マルチメディアの再生]] を参照してください。これを [http://isebaro.com/viewtube/?ln=en ViewTube] などのユーザー スクリプトと組み合わせると、サイトの統合ビデオ プレーヤーの代わりに ''mpv'' を使用できます。
{{Note|Mpv にはバンディング消去シェーダが同梱されており [[#高品質なビデオ出力|opengl-hq プロファイル]]ではデフォルトで有効になっています。設定を調整する方法はマニュアルを参照してください。}}
 
   
  +
HTTP ストリーミング用の有効なユーザー エージェントを指定する必要がある場合があります。例えば、{{ic|1=user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0"}}
{{ic|f3k_db}} のバンディング消去フィルターを使うには {{AUR|vapoursynth-plugin-f3kdb}} をインストールして ''vapoursynth'' 拡張を使用する Python スクリプトを書いて下さい。
 
   
  +
[[ブラウザプラグイン#マルチメディアの再生]] ページには、ビデオを視聴する他の簡単な方法が示されています。
以下は ''mpv'' でバンディング消去を有効にするサンプルスクリプトです。
 
   
  +
==== KDE クリップボードからビデオのリンクを開く ====
import vapoursynth as vs
 
  +
core = vs.get_core()
 
  +
{{Pkg|youtube-dl}} または {{Pkg|yt-dlp}} がインストールされ、[[KDE Plasma]] が使用されている場合、KDE ​​クリップボードにカスタムアクションを作成して、リンクを便利に再生できます。
 
  +
clip = video_in
 
  +
# クリップボード設定メニューを開き (通常はシステムトレイのアイコンを右クリックして)、"アクション" タブに移動します。
clip = core.std.Trim(clip, first=0, length=500000)
 
  +
# "アクションを追加" をクリックし、動画を再生するサイトを検出するための正規表現を入力します (例: {{ic|^http.+(youtu{{!}}twitch)}} で YouTube と Twitch の URL を検出します)
clip = core.f3kdb.Deband(clip, grainy=0, grainc=0, output_depth=16)
 
  +
# "コマンドの追加" をクリックし、"コマンド" の下に {{ic|mpv %s}} と入力し、"説明" の下に {{ic|mpv}} と入力します。
clip.set_output()
 
   
  +
これで、{{ic|Ctrl+Alt+r}} を押してコンテキスト メニューから ''mpv'' を選択すると、''mpv'' でクリップボードからビデオリンクを再生できます。''詳細設定'' に移動し、"タイプ WM_CLASS の Windows のアクションを無効にする" セクションから Firefox を削除する必要がある場合があります。
設定ファイルで Python スクリプトを指定するか mpv を実行するときにコマンドライン引数で指定してください:
 
$ mpv --vf=vapoursynth=f3k_db.py <video_file>
 
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
413行目: 529行目:
 
{{hc|1=~/.config/mpv/mpv.conf|2=profile=xv}}
 
{{hc|1=~/.config/mpv/mpv.conf|2=profile=xv}}
   
  +
{{Note|これは X 上で最も互換性のある VO ですが、品質が低い可能性があり、OSD と字幕表示に問題があります。}}
現在 XV ビデオ出力は非推奨となっており、新しいバージョンの mpv では osd の表示がおかしくなるなど問題を起こすことがあります。
 
   
 
また、(低性能なハードウェアで) 再生のパフォーマンスを改善するかわりに、動画の品質が著しく落ちるという問題もあります。
 
また、(低性能なハードウェアで) 再生のパフォーマンスを改善するかわりに、動画の品質が著しく落ちるという問題もあります。
   
 
動画の再生性能を高める[[#設定|オプション]]として以下のようなものもあります:
 
動画の再生性能を高める[[#設定|オプション]]として以下のようなものもあります:
  +
 
{{hc|~/.config/mpv/mpv.conf|2=
 
{{hc|~/.config/mpv/mpv.conf|2=
 
vd-lavc-fast
 
vd-lavc-fast
424行目: 541行目:
 
vd-lavc-framedrop=<skipvalue>
 
vd-lavc-framedrop=<skipvalue>
 
vd-lavc-threads=<threads>
 
vd-lavc-threads=<threads>
  +
}}
  +
  +
mpv 0.35.0 以降、一部の古い Intel プロセッサでは、ダイレクトレンダリングをオフにしないとフレームがドロップします [https://github.com/mpv-player/mpv/issues/10972#issuecomment-1340100762]:
  +
  +
{{hc|~/.config/mpv/mpv.conf|2=
  +
vd-lavc-dr=no
 
}}
 
}}
   
436行目: 559行目:
 
マウスホイールをボリュームアイコンの上で回転させます。
 
マウスホイールをボリュームアイコンの上で回転させます。
   
=== GNOME Blank screen (Wayland) ===
+
=== GNOME Blank スクリーン (Wayland) ===
   
 
Wayland を使用している場合、''mpv''は GNOME の省電力設定を一時停止できません。その結果、ビデオの再生中にスクリーンセーバーがモニターをオフにします。この問題を回避するには、 {{ic|mpv.desktop}} の {{ic|1=Exec=}} 行の先頭に {{ic|gnome-session-inhibit}} を追加します。
 
Wayland を使用している場合、''mpv''は GNOME の省電力設定を一時停止できません。その結果、ビデオの再生中にスクリーンセーバーがモニターをオフにします。この問題を回避するには、 {{ic|mpv.desktop}} の {{ic|1=Exec=}} 行の先頭に {{ic|gnome-session-inhibit}} を追加します。
   
  +
再生中のみスクリーンセーバーを禁止するには、{{AUR|mpv_inhibit_gnome}} を使用します。あるいは、{{ic|gnome-session-inhibit}} に基づく [https://gist.github.com/crazygolem/a7d3a2d3c0cee5d072c0cbbbdee69286 mpv lua スクリプト] を使用することもできます。
=== コンポジタで mpv を使用する ===
 
   
  +
{{Tip|{{ic|io.mpv.Mpv}} flatpak アプリには、[https://github.com/Guldoman/mpv_inhibit_gnome mpv_inhibit_gnome] プラグインがすでに含まれています。}}
コンポジタ (例:KDE Plasma 5) を使用していて、ビデオを再生しているときにコンポジションが無効 (例えば Plasma の場合、デフォルトのアプリスイッチャーでウィンドウを表示したり、ウィンドウのサムネイルを表示したりすることができなくなります。)になっている場合は、次の操作を行ってください {{ic|1=x11-bypass-compositor=no}}
 
   
 
=== GNOME Wayland でカーソルテーマが適用されない ===
 
=== GNOME Wayland でカーソルテーマが適用されない ===
459行目: 582行目:
   
 
[[PipeWire]] が [[systemd#ユニットを使う|マスク]] されているシステムで ''mpv'' がクラッシュするかオーディオの再生に失敗し、出力がないかパイプが壊れていると報告する場合は、{{ic|--ao}} オプションを設定してください。永続的な構成のために {{ic|mpv.conf}} に設定して下さい。
 
[[PipeWire]] が [[systemd#ユニットを使う|マスク]] されているシステムで ''mpv'' がクラッシュするかオーディオの再生に失敗し、出力がないかパイプが壊れていると報告する場合は、{{ic|--ao}} オプションを設定してください。永続的な構成のために {{ic|mpv.conf}} に設定して下さい。
  +
  +
=== mpv でファイルから DVD の再生が出来ない ===
  +
  +
''mpv'' がプレーンな VIDEO_TS/VOB 構造のファイルから DVD を再生できない場合は、再生位置の復元機能に問題がある可能性があります。{{ic|.config/mpv/watch_later}} フォルダをクリーニングするか、{{ic|no-resume-playback}} オプションを指定して ''mpv'' を起動するか、{{ic|1=save-position-on-quit=no}} オプションを設定してください。
  +
  +
=== 一時停止から再開した後再生が途切れるのを修正 ===
  +
  +
[[PulseAudio]] でビデオが途切れる場合は、{{man|1|mpv|--pulse-latency-hacks|fragment=pulse~4}} で説明されている {{ic|pulse-latency-hacks}} オプションを試してください。:
  +
  +
{{hc|~/.config/mpv/mpv.conf|2=
  +
pulse-latency-hacks=yes
  +
}}

2024年2月27日 (火) 03:59時点における最新版

関連記事

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