「Mpv」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎設定: 高度な設定を追加)
(→‎一般設定: カスタムプロファイルを追加)
64行目: 64行目:
   
 
あなたが同様に望ましいと思うかもしれない他のたくさんのオプションもあります。 {{man|1|mpv}} を見る価値があります。コマンドラインから ''mpv'' を実行して、構成に関するエラーメッセージを確認することも役立ちます。
 
あなたが同様に望ましいと思うかもしれない他のたくさんのオプションもあります。 {{man|1|mpv}} を見る価値があります。コマンドラインから ''mpv'' を実行して、構成に関するエラーメッセージを確認することも役立ちます。
  +
  +
==== カスタムプロファイル ====
  +
  +
{{ic|mpv.conf}} では、基本的に次のような ''オプションのグループ'' である ''プロファイル'' を作成できます。
  +
  +
* ファイルを書き直すことなく、異なる構成をすばやく切り替えることができます。
  +
* 特別なコンテンツ用の特別なプロファイルを作成します。
  +
* ''ネスト'' プロファイル。これにより、単純なプロファイルからより複雑な ''プロファイル'' を作成できます。
  +
  +
プロファイルの作成は簡単です。 {{ic|mpv.conf}} の上部の領域はトップレベルと呼ばれ、そこに書き込んだオプションはすべて、''mpv'' が開始されると有効になります。ただし、名前を角かっこで囲んでプロファイルを定義すると、その下に書き込むすべてのオプション(新しいプロファイルを定義するまで)はそのプロファイルの一部と見なされます。 {{ic|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'' が開始すると、最初の行が表示され、 {{ic|myprofile2}} にオプションが読み込まれます(つまり、{{ic|gpu-hq}} と {{ic|1=log-file=~~/log}})最後に {{ic|1=ontop=yes}} をロードし、起動を終了します。 {{ic|myprofile1}} は最上位領域で呼び出されないため、ロードされないことに注意してください。
  +
  +
または、次のコマンドラインから ''mpv'' を呼び出すこともできます。
  +
  +
$ mpv --profile=myprofile1 video.mkv
  +
  +
また、{{ic|myprofile1}} のオプションを除くすべてのオプションを無視します。
   
 
=== {{ic|input.conf}} ファイルの例 ===
 
=== {{ic|input.conf}} ファイルの例 ===

2020年12月6日 (日) 18:03時点における版

関連記事

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

インストール

公式リポジトリから mpv パッケージをインストールするか Arch User Repository から mpv-gitAUR をインストールしてください。

フロントエンド

mpv には OSC という名前のすっきりとしたユーザーインターフェイスがあり、マウスを動かした時に表示されます。カジュアルユーザー向けに、他のグラフィカルインターフェイスも存在します:

  • Baka MPlayer — フリーでオープンソース、クロスプラットフォームの、libmpv ベースのマルチメディアプレイヤー。Qt 5 を使用。
http://bakamplayer.u8sand.net/ || baka-mplayer, baka-mplayer-gitAUR
  • bomi — 強力で使いやすいマルチメディアプレイヤー (Qt 5)。
https://bomi-player.github.io/ || bomiAUR, bomi-gitAUR
  • GNOME MPVmpv のシンプルな GTK フロントエンド。GTK+ 3 を使用。
http://gnome-mpv.github.io/ || gnome-mpv[リンク切れ: 置換パッケージ: celluloid], gnome-mpv-gitAUR[リンク切れ: パッケージが存在しません]
https://github.com/cmdrkotori/mpc-qt || mpc-qt-gitAUR
  • SMPlayer — CSS テーマや YouTube 統合などの機能が追加された Qt マルチメディアプレイヤー (Qt 5)。
http://smplayer.sourceforge.net/ || smplayer
  • xt7-player-mpv — フィルターやドライバー、ladspa プラグインのサポート、ライブラリ・プレイリストの管理、YouTube、オンラインラジオ、ポッドキャスト、DVB-T などの豊富な設定オプションが存在する mpv の Qt/Gambas による GUI。
https://github.com/kokoko3k/xt7-player-mpv || xt7-player-mpv-gitAUR
ノート: CMPlayer/bomi パッケージには内部に mpv が入っています。

設定

Mpv の設定は mpv.conf (設定) と input.conf (キーバインド) と lua-settings/osc.conf (オンスクリーンディスプレイ) ファイルから読み込まれます。オプションのリストは、man ページや github にあるドキュメントを参照してください: mpv(1) または GitHub ドキュメント

XDG_CONFIG_HOME 環境変数が設定されてない場合、ユーザーの設定ファイルは ~/.config/mpv フォルダから読み込まれます。全ユーザー共通の設定は /etc/mpv フォルダから読み込まれます。

一般設定

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

高度な設定

これにより、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
補間
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 のオプションを除くすべてのオプションを無視します。

input.conf ファイルの例

以下を ~/.config/mpv/input.conf にコピーすることで、動画のズームやパン、90度回転などの便利なキーバインドが mpv に追加されます。

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

0.18.1 以上で mpv と PulseAudio/ALSA のミキサー制御

pulseaudio で mpv を使用する場合 (mpv.conf-ao=pulse または ao=pulse と設定)、あるいは mpv で ALSA ミキサーのボリュームを制御したい場合、以下の設定が必要です。

以下の行を ~/.config/mpv/input.conf に追加することで、PulseAudio/ALSA から mpv のボリュームを変更できるようになります:

/ add ao-volume -2
SHIFT+* add ao-volume 2

ボリュームの変更に使用するキーは自由に変えることができます。

ヒントとテクニック‎

ハードウェアデコード

mplayermplayer2 と違って、mpv は始めから VA-APIVDPAU の両方をサポートしています。利用できる設定については man ページ--hwdec=<api> オプションのリファレンスを見て下さい。設定を永続化するには、設定ファイルに hwdec=method という行を追加します。

ハードウェアデコードを使用するとき、ビデオ出力は opengl, opengl-hq, vdpau (hwdec=vdpau を使う場合) のどれかに設定する必要があります。hwdec=vaapi を使用する場合は profile=opengl を使ってください (opengl-hq を使用した場合、動画を読み込むときに CPU に過度の負担がかかるときがあります [1])。ハードウェアデコードが使用できない場合、mpv は自動的にソフトウェアデコードにフォールバックします。詳細は options.rstvo.rst を見て下さい。

h264, vc1, wmv3, hevc, mpeg2video, vp9 コーデックではデフォルトでハードウェアデコードが有効になります。ただし、ハードウェアデコードを使用するコーデックを指定したり (例: --hwdec-codecs=h264,mpeg2video)、あるいは全てのコーデックでハードウェアデコードを有効にする (--hwdec-codecs=all) こともできます。

高品質なビデオ出力

opengl-hq プロファイルは mpv の開発者によって事前に設定された様々なオプションを使用する OpenGL 出力です。opengl-hq を使用するには、設定ファイルで以下のように指定してください:

~/.config/mpv/mpv.conf
profile=opengl-hq

opengl-hq にはデフォルトで GLSL デバンドフィルダーが有効になっており、ユーザーによっては性能が劣化したりコンテンツの見た目が悪くなることがあります。以下の設定によって、フィルターは簡単に無効化できます:

~/.config/mpv/mpv.conf
profile=opengl-hq
deband=no

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

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

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

ボリュームが小さすぎる

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

複数のアスペクト比のクイック切り替え

バージョン 0.8.0 から Shift+a を使ってアスペクト比を切り替えることができます。

アスペクト比を無視する

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

ルートウィンドウに描画

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

GUI を常時表示

mpv をターミナル以外から起動する場合、音声ファイルなどでも、GUI ウィンドウが表示されていたほうが便利です。--force-window オプションを使うことで常時表示させることができます。

動画ファイルで GUI を非表示にする

動画ファイルでは GUI ウィンドウを隠したい場合もあるでしょう。--no-video オプションを使うことで非表示にできます。

昔の OSC に戻す

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

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

mozpluggerAUR を利用することで、サポートされているブラウザにおいて mpv を使って動画を再生することができます。設定の詳細は ブラウザプラグイン#MozPlugger を見て下さい。ViewTube などのユーザースクリプトと組み合わせて、mpv を使用してサイトに埋め込まれた動画プレイヤーを置き換えることもできます。

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

Lua スクリプトを使って mpv を音楽プレイヤーとして磨き上げる

mpv の Lua スクリプトの開発方法は mpv リポジトリDOCS/man/lua.rst にまとまっており、サンプルが TOOLS/lua にあります。このブログ記事 では Lua スクリプトを使って mpv を使いやすくする例として music.lua スクリプトを紹介しています。

mpv で Twitch.tv のストリーミングを視聴

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

また、streamlink を使って Twitch をストリーミングする方法もあります。GUI でストリームを視聴したい場合 streamlink-twitch-guiAUR を使ってください。Streamlink#Twitch を見て下さい。

さらに Livestreamer を利用する Lua スクリプトが存在します: https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc

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

--ytdl-format のデフォルトは bestvideo+bestaudio/best となっています。4K 解像度で見ることができる YouTube 動画の場合、たとえ接続しているモニターが 4K に対応していなくても、4K の VP9 でエンコードされた動画をソフトウェアデコードすることになります。

youtube-dl のフォーマットを適切に設定することで問題は簡単に解決します。以下の設定例では、縦の解像度が1080ピクセル以下の動画だけが再生されます:

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

ハードウェアデコードできない特定のコーデックだけを避けたい場合、同じように追加できます。例えば、VP9 を無視するには以下のように設定します:

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

youtube-dl の音声検索

.bashrc に以下の関数を記述することでターミナルから mm "search terms" を実行して音声を検索・再生できます:

function mm() {
    mpv --no-video --ytdl-format=bestaudio ytdl://ytsearch10:"$@"
}

コンポジタで mpv を使う

コンポジタ (例: KDE Plasma 5) を使っていて、mpv で動画を再生するときにコンポジットが無効になってしまう場合 (Plasma でウィンドウが表示されなくなったりデフォルトのアプリスイッチャでウィンドウのサムネイルが表示されなくなる場合)、x11-bypass-compositor=no を使ってみてください。

OSC を古いものに戻したい

以下のように設定してください:

~/.config/mpv/lua-settings/osc.conf
layout=box

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

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

$ mpv --no-audio --profile=image --start=00:01:30 --frames=1 /path/to/video/file

スクリーンショットはカレントディレクトリに 00000001.jpg として保存されます。

Vapoursynth

AviSynth の代わりとして Linux では Vapoursynth を使うことができます。Python スクリプトで動画を操作することが可能です。Vapoursynth の Python スクリプトは mpv の動画フィルターとしても使えます。

Vapoursynth フィルターを使うには vapoursynth パッケージをインストールして --enable-vapoursynth ビルドフラグを付けて mpv をコンパイルしてください。

バンディングを消去 (flash3kyuu)

ノート: Mpv にはバンディング消去シェーダが同梱されており opengl-hq プロファイルではデフォルトで有効になっています。設定を調整する方法はマニュアルを参照してください。

f3k_db のバンディング消去フィルターを使うには vapoursynth-plugin-f3kdbAUR をインストールして vapoursynth 拡張を使用する Python スクリプトを書いて下さい。

以下は mpv でバンディング消去を有効にするサンプルスクリプトです。

import vapoursynth as vs
core = vs.get_core()

clip = video_in
clip = core.std.Trim(clip, first=0, length=500000)
clip = core.f3kdb.Deband(clip, grainy=0, grainc=0, output_depth=16)
clip.set_output()

設定ファイルで Python スクリプトを指定するか mpv を実行するときにコマンドライン引数で指定してください:

$ mpv --vf=vapoursynth=f3k_db.py <video_file>

トラブルシューティング

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

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

~/.config/mpv/mpv.conf
profile=xv

現在 XV ビデオ出力は非推奨となっており、新しいバージョンの mpv では osd の表示がおかしくなるなど問題を起こすことがあります。

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

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

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