mpv
関連記事
mpv は MPlayer と MPlayer2 がベースの動画プレイヤーです。幅広いフォーマットの動画ファイル、オーディオ・ビデオコーデック、字幕タイプをサポートしています。mpv と前出のプレイヤーとの違いは このページ で包括的に (一部不完全ですが) リストアップされています。
インストール
公式リポジトリから mpv パッケージをインストールするか Arch User Repository から mpv-gitAUR をインストールしてください。
フロントエンド
mpv には OSC という名前のすっきりとしたユーザーインターフェイスがあり、マウスを動かした時に表示されます。カジュアルユーザー向けに、他のグラフィカルインターフェイスも存在します:
- Baka MPlayer — フリーでオープンソース、クロスプラットフォームの、libmpv ベースのマルチメディアプレイヤー。Qt 5 を使用。
- bomi — 強力で使いやすいマルチメディアプレイヤー (Qt 5)。
- https://bomi-player.github.io/ || bomiAUR, bomi-gitAUR
- GNOME MPV — mpv のシンプルな GTK フロントエンド。GTK+ 3 を使用。
- SMPlayer — CSS テーマや YouTube 統合などの機能が追加された Qt マルチメディアプレイヤー (Qt 5)。
- xt7-player-mpv — フィルターやドライバー、ladspa プラグインのサポート、ライブラリ・プレイリストの管理、YouTube、オンラインラジオ、ポッドキャスト、DVB-T などの豊富な設定オプションが存在する mpv の Qt/Gambas による GUI。
設定
Mpv の設定は mpv.conf
(設定) と input.conf
(キーバインド) と lua-settings/osc.conf
(オンスクリーンディスプレイ) ファイルから読み込まれます。オプションのリストは、man ページや github にあるドキュメントを参照してください: options.rst, input.rst, osc.rst。
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
Tips and Tricks
ハードウェアデコード
mplayer や mplayer2 と違って、mpv は始めから VA-API と VDPAU の両方をサポートしています。利用できる設定については man ページの --hwdec=<api>
オプションのリファレンスを見て下さい。設定を永続化するには、設定ファイルに hwdec=method
という行を追加します。ハードウェアデコードを使用するとき、ビデオ出力は opengl
, opengl-hq
, vdpau
(hwdec=vdpau
を使う場合) のどれかに設定する必要があります。vo=vaapi
の使用は推奨されません [1]。ハードウェアデコードが使用できない場合、mpv は自動的にソフトウェアデコードにフォールバックします。詳細は options.rst や vo.rst を見て下さい。
高品質なビデオ出力
opengl-hq
ビデオ出力は mpv の開発者によって事前に設定された様々なオプションを使用する OpenGL 出力です。opengl-hq
を使用するには、設定ファイルで以下のように指定してください:
~/.config/mpv/mpv.conf
vo=opengl-hq
opengl-hq
にはデフォルトで GLSL デバンドフィルダーが有効になっており、ユーザーによっては性能が劣化したりコンテンツの見た目が悪くなることがあります。以下の設定によって、フィルターは簡単に無効化できます:
~/.config/mpv/mpv.conf
vo=opengl-hq:deband=no
停止した位置からの自動レジューム再生
動画の現在の位置を保存して mpv を終了するデフォルトのキーは Shift+q
です。このキーはキーバインドの設定ファイルに quit_watch_later
を追加することで変更できます。
プレイヤーの終了時に自動的に現在の再生位置を保存したい場合、--save-position-on-quit
フラグを付けて mpv を起動してください。オプションを永続化させるには、設定ファイルに save-position-on-quit
という行を追加します。
ボリュームが小さすぎる
設定ファイルに softvol-max=value
を設定して softvol-max=600
など然るべき値にしてください。さらに (または)、af=drc
でダイナミックレンジ圧縮を利用することもできます。
複数のアスペクト比のクイック切り替え
バージョン 0.8.0 から Shift+a
を使ってアスペクト比を切り替えることができます。
ルートウィンドウに描画
--wid=0
を付けて mpv を実行してください。これによって mpv はウィンドウ ID が 0 のウィンドウに描画するようになります。
GUI を常時表示
mpv をターミナル以外から起動する場合、音声ファイルなどでも、GUI ウィンドウが表示されていたほうが便利です。--force-window
オプションを使うことで常時表示させることができます。
ブラウザプラグインとして使う
mozpluggerAUR を利用することで、サポートされているブラウザにおいて mpv を使って動画を再生することができます。設定の詳細は ブラウザプラグイン#MozPlugger を見て下さい。ViewTube などのユーザースクリプトと組み合わせて、mpv を使用してサイトに埋め込まれた動画プレイヤーを置き換えることもできます。
Lua スクリプトを使って mpv を音楽プレイヤーとして磨き上げる
mpv の Lua スクリプトの開発方法は mpv リポジトリ の DOCS/man/lua.rst にまとまっており、サンプルが TOOLS/lua にあります。このブログ記事 では Lua スクリプトを使って mpv を使いやすくする例として music.lua スクリプトを紹介しています。
mpv で Twitch.tv のストリーミングを視聴
youtube-dl がインストールされている場合、mpv は直接 Twitch のライブストリームを開くことができます。
また、livestreamer を使って Twitch をストリーミングする方法もあります。Livestreamer#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 --old style
Vapoursynth
AviSynth の代わりとして Linux では Vapoursynth を使うことができます。Python スクリプトで動画を操作することが可能です。Vapoursynth の Python スクリプトは mpv の動画フィルターとしても使えます。
Vapoursynth フィルターを使うには vapoursynth パッケージをインストールして --enable-vapoursynth
ビルドフラグを付けて mpv をコンパイルしてください。
バンディングを消去 (flash3kyuu)
f3k_db
のバンディング消去フィルターを使うには vapoursynth-plugin-flash3kyuu_deband-gitAUR をインストールして 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>