「Mpv」の版間の差分
(→設定: 情報を更新) |
Kusanaginoturugi (トーク | 投稿記録) (校正(でき・出来)) |
||
(他の1人の利用者による、間の16版が非表示) | |||
10行目: | 10行目: | ||
{{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 このページ] で包括的に (一部不完全ですが) リストアップされています。 |
||
15行目: | 16行目: | ||
== インストール == |
== インストール == |
||
− | + | {{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}}}} |
||
− | |||
− | {{Note|CMPlayer/''bomi'' パッケージには内部に ''mpv'' が入っています。}} |
||
== 設定 == |
== 設定 == |
||
224行目: | 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 === |
||
272行目: | 269行目: | ||
いずれにしても、ハードウェアのデコードは、あまり推奨されず、パフォーマンスに大きな違いをもたらすことはありません。 |
いずれにしても、ハードウェアのデコードは、あまり推奨されず、パフォーマンスに大きな違いをもたらすことはありません。 |
||
+ | |||
+ | ==== 10 ビット補間を修正 ==== |
||
+ | |||
+ | Vapoursynth は 10 ビットビデオ (少なくとも HEVC ビデオ) では動作せず、次のエラーが表示されます。 |
||
+ | |||
+ | [vapoursynth] Python exception: SVSuper: Clip must be YV12 |
||
+ | |||
+ | これを修正するには、mpv にビデオを別の形式に変換させます。 |
||
+ | |||
+ | {{hc|1=mpv.conf|2= |
||
+ | vf=format=fmt=yuv420p |
||
+ | }} |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
318行目: | 327行目: | ||
*{{ic|1=--vo=tct}} "テキストコンソールで動作するカラー Unicode アートビデオ出力ドライバー" |
*{{ic|1=--vo=tct}} "テキストコンソールで動作するカラー Unicode アートビデオ出力ドライバー" |
||
− | *{{ic|1=--vo=caca}} "テキストコンソールで動作するカラーアスキーアートのビデオ出力ドライバ" {Pkg|libcaca}} のサポートは脆弱性のために Arch では無効になっています ({{Bug|70962}} を参照) が、問題は修正されたにも関わらずまだ元に戻されていません: {{AUR|mpv-caca}} をインストールしてください。 |
+ | *{{ic|1=--vo=caca}} "テキストコンソールで動作するカラーアスキーアートのビデオ出力ドライバ" {{Pkg|libcaca}} のサポートは脆弱性のために Arch では無効になっています ({{Bug|70962}} を参照) が、問題は修正されたにも関わらずまだ元に戻されていません: {{AUR|mpv-caca}} をインストールしてください。 |
=== オーディオ === |
=== オーディオ === |
||
341行目: | 350行目: | ||
audio-spdif=ac3,eac3,dts-hd,truehd |
audio-spdif=ac3,eac3,dts-hd,truehd |
||
− | |||
− | ==== 倍速化されたコンテンツをより良いオーディオで ==== |
||
− | |||
− | 倍速化されたコンテンツを、次のフィルターを使用して音質を向上させます。 |
||
− | |||
− | af=scaletempo2 |
||
==== ボリューム標準化 ==== |
==== ボリューム標準化 ==== |
||
362行目: | 365行目: | ||
* {{ic|anull}}: オーディオフィルタを null にリセットします。つまり、オーディオフィルタを無効にします。 |
* {{ic|anull}}: オーディオフィルタを null にリセットします。つまり、オーディオフィルタを無効にします。 |
||
− | {{Note|キーをバインドしても、デフォルトのオーディオフィルタは変更されません。デフォルトを変更するには、例えば {{ic|1=af=loudnorm=I=-30}} をメイン |
+ | {{Note|キーをバインドしても、デフォルトのオーディオフィルタは変更されません。デフォルトを変更するには、例えば {{ic|1=af=loudnorm=I=-30}} をメイン設定ファイルに追加します。}} |
''mpv'' の音声フィルタリングは、[[FFmpeg]] バックエンドによって提供されます。詳細については、[[Wikipedia:EBU R 128]] および [https://ffmpeg.org/ffmpeg-filters.html#loudnorm ffmpeg Loudnorm フィルター] を参照してください。 |
''mpv'' の音声フィルタリングは、[[FFmpeg]] バックエンドによって提供されます。詳細については、[[Wikipedia:EBU R 128]] および [https://ffmpeg.org/ffmpeg-filters.html#loudnorm ffmpeg Loudnorm フィルター] を参照してください。 |
||
370行目: | 373行目: | ||
==== Lua スクリプトを使用して mpv を音楽プレーヤーとして改善する ==== |
==== Lua スクリプトを使用して mpv を音楽プレーヤーとして改善する ==== |
||
− | [https://web.archive.org/web/20160320001546/http://bamos.github.io/2014/07/05/mpv-lua-scripting/ このブログ投稿] では [https://github. |
+ | [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'' を音楽プレーヤーとして改善する方法を紹介しています。 |
=== 停止した位置からの自動レジューム再生 === |
=== 停止した位置からの自動レジューム再生 === |
||
526行目: | 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 |
||
537行目: | 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 |
||
}} |
}} |
||
549行目: | 559行目: | ||
マウスホイールをボリュームアイコンの上で回転させます。 |
マウスホイールをボリュームアイコンの上で回転させます。 |
||
− | === GNOME Blank |
+ | === 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 でカーソルテーマが適用されない === |
||
572行目: | 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年7月10日 (水) 20:05時点における最新版
mpv は MPlayer と MPlayer2 がベースの動画プレイヤーです。幅広いフォーマットの動画ファイル、オーディオ・ビデオコーデック、字幕タイプをサポートしています。mpv と前出のプレイヤーとの違いは このページ で包括的に (一部不完全ですが) リストアップされています。
目次
インストール
mpv パッケージを インストール して下さい。または開発バージョンの mpv-gitAUR
フロントエンド
アプリケーション一覧/マルチメディア#mpv-based を参照してください。
設定
mpv には、弱いまたは古いビデオカードを搭載したコンピュータでもうまく動作する、優れた万能のデフォルト設定が付属しています。ただし、より新しいビデオカードを搭載したコンピュータを使用している場合は、mpv のビデオ品質を向上させるために多くの設定を行う必要があります。(ビデオカードの能力によって制限されます) これを行うには、いくつかの設定ファイルを作成するだけで済みます (デフォルトでは設定ファイルは存在しないため)
開始しやすいように、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
これ以外にもできることはたくさんありますが、物事はより複雑になり、より強力なビデオカードが必要になります。簡単な概要として、画像でトレーニングされたディープニューラルネットワークを実際に使用するものを含む、エキゾチックなスケーリングとシャープニングの手法を実行する特別なシェーダーをロードすることができます(実世界とアニメーションコンテンツの両方)。これについて詳しくは、 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-hq
と log-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-fullAUR や mpv-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つの主要な機能があり、それぞれを必要に応じて無効または有効にすることができます (モーション補間の使用は強制されません)
- Motion interpolation (youtube video) -ビデオを 60fps に変換するアルゴリズム。これは、一部の人々が愛し、他の人々が嫌う、いくぶん物議を醸す 人工的な効果 を作り出します。残念なことに、このアルゴリズムは完璧ではなく、奇妙な人工的な効果を大量に含んでいます。アルゴリズムは、パフォーマンスまたは品質のいずれかについて (スライダを介して) 調整できます。また、生成されたフレームで実際のフレームを補間するいくつかの人工的な効果削減設定があり、人工的な効果の通知性が低下します。フレームレート検出は自動または手動に設定できます (一部のユーザでは手動でパフォーマンスの問題を解決できるようです)
- Black bar lighting (youtube video) -イメージのアスペクト比が黒のバーをディスプレイに表示する場合、 SVP は画面上のコンテンツによって生成される lights で黒のバーを明るくします。ある程度のカスタマイズはできますが、デフォルトはほぼ最適です。
- 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 にリセットします。つまり、オーディオフィルタを無効にします。
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-format
は bestvideo+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 クリップボードにカスタムアクションを作成して、リンクを便利に再生できます。
- クリップボード設定メニューを開き (通常はシステムトレイのアイコンを右クリックして)、"アクション" タブに移動します。
- "アクションを追加" をクリックし、動画を再生するサイトを検出するための正規表現を入力します (例:
^http.+(youtu|twitch)
で YouTube と Twitch の URL を検出します) - "コマンドの追加" をクリックし、"コマンド" の下に
mpv %s
と入力し、"説明" の下にmpv
と入力します。
これで、Ctrl+Alt+r
を押してコンテキスト メニューから mpv を選択すると、mpv でクリップボードからビデオリンクを再生できます。詳細設定 に移動し、"タイプ WM_CLASS の Windows のアクションを無効にする" セクションから Firefox を削除する必要がある場合があります。
トラブルシューティング
一般的なデバッグ
mpv の再生に問題がある場合 (またはフラットアウトが実行できない場合) は、最初に次の3つのことを行う必要があります。
- コマンドラインから mpv を実行します (-vフラグは冗長性を高めます) 。運が良ければ、そこに何が間違っているかを知らせるエラーメッセージが表示されます。
$mpv -v video.mkv
- mpv のログファイルを出力します。ログファイルをふるいにかけるのは難しいかもしれませんが、何かが壊れている場合は、ログファイルを見ることができます。
$ mpv -v --log-file=./log video.mkv
- 設定なしで mpv を実行します。これがうまく動作するなら、問題は設定のどこかにあります
$mpv--no-config video.mkv
mpv が実行されても正常に実行されない場合は、 mpv-stats スクリプトをインストールして、そのスクリプトの実行状況を確認することをお勧めします。
再生が途切れたりティアリングが発生する
OpenGL をサポートしているハードウェアを使っている場合 mpv はデフォルトで OpenGL ビデオ出力デバイスを使用します。Intel HD4XXX シリーズなどのカードで 4K ディスプレイに動画を映そうとすると、動画の再生が不安定になって一時的に止まってしまったり盛大にティアリングが発生することがあります。そのような問題が起こる場合、XV (XVideo) ビデオ出力デバイスを使うことで解決できるかもしれません:
~/.config/mpv/mpv.conf
profile=xv
また、(低性能なハードウェアで) 再生のパフォーマンスを改善するかわりに、動画の品質が著しく落ちるという問題もあります。
動画の再生性能を高めるオプションとして以下のようなものもあります:
~/.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.desktop
の Exec=
行の先頭に gnome-session-inhibit
を追加します。
再生中のみスクリーンセーバーを禁止するには、mpv_inhibit_gnomeAUR を使用します。あるいは、gnome-session-inhibit
に基づく mpv lua スクリプト を使用することもできます。
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 #9691、Github 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