4Kモニタを使っているならmpvとAnime4Kでビデオを再生しよう

mpv shader

4Kモニタを買うと不満に思うことはビデオを見ると何かボケたように見えてしまうことです。こんな不満を解決するにはAnime4Kというビデオを拡大するソフトウエアを使うと良いでしょう。名前の通りアニメなどの映像に特化していますが、実写でもそれなりの効果があります。

モニタが4Kでも4K解像度のビデオはほとんど有りません。フルHDにも満たない解像度のビデオの方が圧倒的に多いでしょう。こういった解像度の低いビデオを4Kへ拡大して表示しているので映像がボケて見えてしまいます。低い解像度の画を高い解像度へ変換することをアップスケールと言います。
アップスケールの不満を解決するには拡大する方法を変えれば良いのですが、方法を変えるといってもそうそう良い方法はありません。解像度を増やすには元のビデオに無い部分を新しく作らなくてはならないからです。

そんなアップスケーラの一つにAnime4Kというのがあります。機械学習のデータを使って解像度を上げてくれます。
bloc97/Anime4K | GitHub
A High-Quality Real Time Upscaler for Anime Video
こだわりの有る方なら既にご存知でしょう。しかしながら使い方に癖があり、Windowsでまともに使っている方は少ないのではないかと思います。検索しても日本語ではほとんど見かけませんね。日本語で見かけるのはVer.0.9と古いバージョンでの情報がほとんどです。この記事公開時ではVer.3.0になっています。
なぜこんなに情報が少ないのか? 原因はAnime4Kではなく、ビデオプレーヤの方にありそうです。

Anime4Kにはビデオ再生機能はありません。アップスケールをするだけです。Anime4Kを使う時はビデオプレーヤにAnime4Kを組み込まなくてはなりません。ビデオプレーヤで外部のプログラムを自由に組み込める物は多くありません。そんなことができるプレーヤの一つにmpvがあります。

mpv
a free, open source, and cross-platform media playerこのmpvが曲者です。とてもとっつきにくい。
クロスプラットフォームでWindowsでもmacOSでもLinuxでも動きます。ですが基本Linux用のプログラムなのでWindowsユーザーからすると難解そのもの。最初にビデオを再生させるのにも手こずるでしょう。
なぜこんなに不便なのか?mpvはGUIアプリケーションではありません。CUIアプリケーションです。マウスで操作するものではないのです。基本的にキーボードだけで操作するプログラムなのです。
mpvの設定を変えたいと思っても、Windows画面で設定画面が出てくるなんて親切な機能はありません。mpvの設定はテキストファイルに書いておく必要があります。
ですがmpvはカスタマイズ性に優れています。

Anime4Kの使い方の説明はほぼmpvの使い方の説明になります。

Windowsでmpvを使う

最初にmpvでビデオを再生できるようにします。mpvをダウンロードします。

mpvのダウンロード

mpv公式にはWindowsのバイナリプログラムはありません。しかし非公式ながら公式ページからリンクが紹介されています。

mpv player (Windows) | sourceforge
a free, open source, and cross-platform media player
Brought to you by: shinchiro
この記事公開時、Anime4Kを使う場合はバージョン0.31を使います。最新は0.32ですがバグがあるそうです。
MPV Black in Fullscreen #66
sourceforgeのページの"stable"をクリックします。
mpv-0.31.0-???.7z というファイルがあります。x86が32bit、i686が64bitです。Windowsに合った方をクリックしてダウンロードします。
ダウンロードしたファイルを解凍します。7zipを使うと良いでしょう。

7-Zip
7-Zipは高圧縮率のファイルアーカイバ(圧縮・展開/圧縮・解凍ソフト)です。
解答したフォルダはマイドキュメントフォルダなどへ移動しておきます。
フォルダの中の”mpv.exe”を実行すると再生画面が表示されます。画面にビデオファイルをドロップすると再生が始まります。

mpvの設定ファイルを作る

mpvの設定ファイルを作ります。mpvの設定は特定のフォルダの中に設定を書いたテキストファイルを配置することで行います。Windowsの場合の設定フォルダの場所は
%APPDATA%/mpv
となります。
最初はmpvフォルダがないかもしれません。ファイルエクスプローラのアドレスバーに"%APPDATA%"と入れるとファルダが表示されます。ここにmpvフォルダを新しく作ります。
%APPDATA%/mpvフォルダに設定ファイルを追加します。

mpv.confファイル

新しくテキストファイルを作ります。ファイル名は”mpv.conf”とします。
このファイルに次のように書いておきます。
profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
video-sync=display-resample
interpolation
tscale=oversample
vo=gpu
hwdec=auto
af=@loudnorm:lavfi=[loudnorm=I=-16:TP=-1.5:LRA=11]
save-position-on-quit

input.confファイル

新しくテキストファイルを作ります。ファイル名は”input.conf”とします。
中身に次のテキストを書いておきます。
WHEEL_UP      add volume 2
WHEEL_DOWN    add volume -2
F1 af toggle "@loudnorm"
これは私の個人的な設定です。マウスのホイール操作にボリュームアップとダウンを割り当てています。MPC-BEなど他のビデオプレーヤーに合わせました。デフォルトではスキップ動作が割り当てられています。
ビデオソースによって音量が大きく違うとボリューム調整が面倒なのでラウドネス調整を加えています。F1キーを押すとラウドネス調整のON/OFFを切り替えます。

ビデオ再生用プログラムにする

ビデオファイルの標準の再生プログラムにする場合は次の操作をします。
  1. ファイルエクスプローラでビデオファイルを表示します。
  2. ビデオファイルの上で右クリックして”プログラムから開く”→”別のプログラムを選択”をクリックします。
  3. ”その他のアプリ”をクリックします。
  4. ”常にこのアプリを使って.xxxファイルを開く”にチェックします。
  5. ”このPCで別のアプリを探す”
  6. MPV.exeを指定します。
以上でmpvが使えるようになりました。いろいろなビデオの再生を試してみてください。ビデオを見る基本的な操作にそう違いは無いと思います。

Anime4Kを使う

mpvが動くようになったらAnime4Kを使う設定をします。
Anime4Kをダウンロードします。GitHubのリリースを開きます。
ここにリリースされたバージョンが表示されます。上にあるものほど新しくリリースされたものです。
Assets項にリリースされたファイルがあります。
sourceではない、Anime4K_vX.X.zipファイルをダウンロードします。この記事公開時の最新はv3.0でした。

ダウンロードしたファイルを解凍します。解凍したファイルは次の場所に保存します。
%APPDATA%/mpv/shaders
shadersフォルダはまだ無いでしょうからmpvフォルダの下に作ります。解凍したファイルはshadersフォルダへ入れます。

多くのシェーダファイルがありますが再生時に必要なものを組み込んで使います。
先程のリリースページにどのファイルを使うかのインストラクションへのリンクがあります。そこの指示に従いmpvの設定ファイルを変更します。
【2020/06/09 v3.1が公開されていますがv3.0で例示しています。】
ビデオの解像度と4K化の度合いによってシェーダの組み合わせが変わります。

●480/720pビデオ用
 ・オリジナルに忠実な輪郭強調
glsl-shaders="~~/shaders/Anime4K_3.0_Upscale_CNN_L_x2_Denoise.glsl;~~/shaders/Anime4K_3.0_Auto_Downscale_Pre_x4.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
・知覚品質向上
glsl-shaders="~~/shaders/Anime4K_3.0_Upscale_CNN_L_x2_Denoise.glsl;~~/shaders/Anime4K_3.0_Auto_Downscale_Pre_x4.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
・知覚品質向上とボケ除去
glsl-shaders="~~/shaders/Anime4K_3.0_Upscale_CNN_L_x2_Denoise.glsl;~~/shaders/Anime4K_3.0_Auto_Downscale_Pre_x4.glsl;~~/shaders/Anime4K_3.0_Deblur_DoG.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
●1080pビデオ用
 ・オリジナルに忠実な輪郭強調
glsl-shaders="~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
・知覚品質向上
glsl-shaders="~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
・知覚品質向上とボケ除去
glsl-shaders="~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_Deblur_DoG.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
どれか一つをデフォルト設定としてmpv.confファイルに書き加えます。
例えば
profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
video-sync=display-resample
interpolation
tscale=oversample
vo=gpu
hwdec=auto
save-position-on-quit
af=@loudnorm:lavfi=[loudnorm=I=-16:TP=-1.5:LRA=11]
glsl-shaders="~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
とします。
シェーダを切り替えられるようにするには、input.confファイルでキーに割り当てをしておきます。
WHEEL_UP      add volume 2
WHEEL_DOWN    add volume -2
F1 af toggle "@loudnorm"
CTRL+1 change-list glsl-shaders set "~~/shaders/Anime4K_3.0_Upscale_CNN_L_x2_Denoise.glsl;~~/shaders/Anime4K_3.0_Auto_Downscale_Pre_x4.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
CTRL+2 change-list glsl-shaders set "~~/shaders/Anime4K_3.0_Upscale_CNN_L_x2_Denoise.glsl;~~/shaders/Anime4K_3.0_Auto_Downscale_Pre_x4.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
CTRL+3 change-list glsl-shaders set "~~/shaders/Anime4K_3.0_Upscale_CNN_L_x2_Denoise.glsl;~~/shaders/Anime4K_3.0_Auto_Downscale_Pre_x4.glsl;~~/shaders/Anime4K_3.0_Deblur_DoG.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
CTRL+4 change-list glsl-shaders set "~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
CTRL+5 change-list glsl-shaders set "~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
CTRL+6 change-list glsl-shaders set "~~/shaders/Anime4K_3.0_Denoise_Bilateral_Mode.glsl;~~/shaders/Anime4K_3.0_Deblur_DoG.glsl;~~/shaders/Anime4K_3.0_DarkLines_HQ.glsl;~~/shaders/Anime4K_3.0_ThinLines_HQ.glsl;~~/shaders/Anime4K_3.0_Upscale_CNN_M_x2_Deblur.glsl"
CTRL+0 change-list glsl-shaders clr ""
再生中にctrlキーと数字の1~6どれかを同時に押すとシェーダが切り替わります。オフにするにはctrlキーと0を同時に押します。数字キーはテンキーでは動きません。

これで設定が終わりました。
mpvでビデオファイルを再生してみてください。再生が始まらない場合はmpv.confファイルのどこかを間違えています。

Anime4Kの動作確認

Anime4Kが動いているかよくわかりませんね。何か変わった気もするけど・・・mpvでシェーダーが使われているかどうかを確認しましょう。
ビデオ再生中にShiftキーと"I"キー(英文字のi)を同時に押します。すると再生しているビデオの情報が表示されます。次に"2"を押すとシェーダーの情報が表示されます。
mpv shader
Anime4Kというシェーダが見つかれば動いているでしょう。

YouTubeを見る

mpvプレーヤーはYouTubeを見ることもできます。YouTubeを見るにはyoutube-dl.exeをmpv.exeと同じフォルダに置いておきます。
youtube-dl is a command-line program to download videos from YouTube.com and a few more sites.
youtube-dlを最新にアップデートします。
youtube-dl.exe -U
を実行するとアップデートします。
引数にYouTubeのビデオのURLを指定します。再生リストを指定することもできます。
mpv.exeの引数にYouTubeのビデオのURLを指定します。これはコマンドプロンプトで操作しなければなりません。
ブラウザのビデオ一覧からmpvの画面の上にドラッグアンドドロップしても再生できます。再生リストのURLも落っことせば連続で再生できます。再生開始まで少し時間がかかるので正しく動いているかわかりずらいです。再生できないリンクをドロップすると画面が閉じます。理由はわかりませんが再生ができないものもあります。
再生はストリームとして行うようなのでダウンロード禁止には引っかからないと思います。正確には分からないので自己責任でお試しください。

まとめ

いろいろ試した結果、mpv.netを使うことをおすすめます 

WindowsでAnime4Kを使う方法を紹介しました。Anime4Kは機械学習データを使ってビデオを高解像度化してくれます。最新バージョンを使うにはビデオプレーヤーにmpvを使う必要があります。Windowsユーザーにとってmpvプレーヤーは癖が強すぎて使いづらく感じますが、初期設定さえ上手くできれば他のビデオプレーヤと同じように使えます。

知覚品質向上とボケ除去だと品質の低いビデオでノイズが目立ってしまいます。

YouTubeもAnime4Kを使って見れます。コメントは出ませんがニコニコも。

mpvではlibavfilterが使えるので再生時だけの映像・音声の加工を簡単に行えます。F1キーでオン/オフを簡単に切り替えられます。
YouTubeなどネット上のビデオはビデオ毎に音量がバラバラで大きな音にびっくりしたりします。今回の例ではloudnormを使って音声を一定の音量にしています。クラッシク音楽などを聴くには向かない場合もありますがすぐにオフにもできます。mpvの良いところです。
また、mpvは4K HDR対応のメディアプレーヤーとして一番良いようです。WindowsをHDRモードにしていてもスクリーンショットが正しく撮れます。

mpvのtips

mpvへの要望として複数起動しない機能が以前からあります。ファイルに関連付けて使うとファイルをクリックする度にプレーヤーが増えていきます。一つのプレーヤが動いたら違うファイルをダブルクリックしても新しいプレーヤーを開かず同じプレーヤを使いまわして欲しいのです。MPC-BEやVLCなどWindowsのビデオプレーヤーなら当たり前の機能です。ですが何故かmpvに実装される気配がありません。そんなの自分でバッチファイル作ってやればいいじゃんという感じです。
こんな風にWindowsユーザーにとってクロスプラットフォームのプログラムは細かいところで使う気をそがれます。
という事で次のバッチファイルを作れば解決できます。ファイルの関連付けはこのバッチファイルにして使います。
@echo off
tasklist | find /i "mpv.exe"
if errorlevel 0 taskkill /im "mpv.exe" /f
start "" "C:\mpvのパス\mpv.exe" %*

コメント

最近のコメント

Threaded Recent Comments will be here.