mpv

提供: ArchWiki
2018年1月18日 (木) 22:02時点におけるKusakata.bot (トーク | 投稿記録)による版 (Pkg/AUR テンプレートの更新)
ナビゲーションに移動 検索に移動

関連記事

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-mpvAUR, 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 フォルダから読み込まれます。

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>