昨年リビングのにBlu-rayレコーダーが設置された。
今までは再生環境や汎用性の観点からDVDを買ってきたが最近の映画の映像美を楽しむには画質が物足りない。これを機にBlu-rayディスクの映画を買うことにした。
まずはインセプション、インターステラー、テネットのBDを買った。アニメーション映画だとサカサマのパテマ、言の葉の庭、映画大好きポンポさん。
所有欲も含めて映像には満足していたものの、如何せんリビングでしか観れないのが不満になってきた。地デジ初期の光沢テレビで反射や暗さが気になるし、シネスコサイズなら自室の画面比21:9のIPSモニターで観たほうが臨場感がある。
そこで先日Blu-rayドライブを譲ってもらったのでManjaro LinuxでBlu-ray再生環境を整えることにした。
参考サイト
Manjaro LinuxはArch系なので以下のWikiが参考になる。他のLinuxでも同等のライブラリがあるので一読することを推奨する。
1.VLCとlibblurayの導入
Blu-rayの再生にはVLC media playerを使う。 再生用ライブラリとしてlibblurayが必要なので別途インストールする。
sudo pacman -S vlc libbluray
2.MakeMKVの導入
Blu-rayは強固なDRM機構を持っているため一般の動画再生ソフトでは再生することができない。そのためBlu-rayドライブ付属の有料ソフトを使うことが多い。
VLCにはBlu-rayの復号機能がないので別途ライブラリを導入する必要がある。
MakeMKVはDVD, Blu-rayのリッピングソフトウェアである。DVD, Blu-rayのコピープロテクトを解除した上で複製することは違法となるので注意。今回はプロテクト解除にあたる復号機能を流用して再生できるようにする。
yay -S makemkv
Arch系LinuxでMakeMKVを動作させるためにsg
モジュールを読み込む。
sudo modprobe sg
sg
モジュールがロード済みか否かは以下のコマンドで確認できる。
sudo lsmod | grep sg
また読み込まれていない場合、光学ドライブが存在しても「使用できる光学ドライブは見つかりません。」と表示されるが、正常に読み込まれていればBD情報が表示される。
3.libaacs, libbdplusをlibmmbdに置換
Blu-rayのコピープロテクト技術にはAACSと任意でBD+が使われている。VideoLANがこれを復号するライブラリとしてlibaacsとlibbdplusを開発しているが、AACSの復号に必要なKEYDB.cfg
の不適合により再生できないBDも多い。
そこで上記ライブラリと互換性のあるMakeMKV付属のlibmmbdを利用する。VLCではBlu-rayの再生にlibaacs.so.0
とlibbdplus.so.0
を参照するので、シンボリックリンクを貼ることで内部でlibmmbd.so.0
を使うように変更する。(libaacsは不要となるためKEYDB.cfg
を配置する必要はない)
AURにあるmakemkv-libaacs
がこの操作を行ってくれる。インストールするだけで適用される。
yay -S makemkv-libaacs
このパッケージのPKGBUILD
を読むとシンボリックシンクを貼っているだけであることが分かる。
package() { install -d $pkgdir/usr/lib ln -s libmmbd.so.0 $pkgdir/usr/lib/libaacs.so.0 ln -s libmmbd.so.0 $pkgdir/usr/lib/libbdplus.so.0 }
makemkv-libaacs
パッケージは他パッケージとの依存関係を処理してくれるという点で有用であるが、代わりに手動でシンボリックリンクを作成してもよい。(当環境では/usr/lib/
下にライブラリ群が配置されていた)
cd /usr/lib sudo ln -s libmmbd.so.0 libaacs.so.0 sudo ln -s libmmbd.so.0 libbdplus.so.0
以下のコマンドでlibmmbd.so.0
にシンボリックリンクが当たっているか確認できる。
$ ls /usr/lib/{libmmbd*,libaacs*,libbdplus*} -l lrwxrwxrwx 1 root root 12 Jan 5 11:11 /usr/lib/libaacs.so.0 -> libmmbd.so.0 lrwxrwxrwx 1 root root 12 Jan 5 11:11 /usr/lib/libbdplus.so.0 -> libmmbd.so.0 -rw-r--r-- 1 root root 50952 Jan 5 11:10 /usr/lib/libmmbd.so.0
4.VLCでBDを再生
VLCを起動し、デバイス>ディスクからBDROMを指定するだけでBlu-rayを再生できる。音声だけ再生される場合はVLCを再起動することで改善することがある。
VLC v3.0.16ではメニュー画面にも対応していた。マウスによる操作も確認できた。(再生>タイトル>トップメニュー)
MakeMKVを利用した今回の手法では、手元にあるBD(AACS v34, v66, v76)の再生を確認できた。2021年12月発売『映画大好きポンポさん』のBDが再生できたので多くのBDは問題なく再生できると思う。ただし『TENET』はメディア>ディスクを開く>ディスク選択から「ディスクメニューなし」を有効にして再生しないとエラーが出た。
備考1:libaacsを用いたBlu-rayの再生(未動作)
上記の手法がBDの複製に該当するか否かの観点からMakeMKVを使用したくないこともある。代替手法としてlibaacsを利用する正攻法を記載する。
手順2,3の代わりに以下の操作を行う。AACSの復号でありBD+には対応していないことに注意。
VideoLAN開発のlibaacsを導入する。
sudo pacman -S libaacs
復号に用いるキーのデータベースであるKEYDB.cfg
を~/.config/aacs/
下に配置する。KEYDB.cfg
は以下サイトから入手できる。
これで手順4と同様にVLCで対応したBlu-rayを再生できるらしい。
当環境では「AACS設定ファイルに有効なProcessing Keyがありません」「AACSホスト証明書が無効になりました」とエラーメッセージが表示され再生できなかった。
備考2:Wineを介したLeawo Blu-ray Playerの利用
Windowsの無料Blu-ray再生ソフトではLeawo Blu-ray Playerがおすすめ。
一時停止時に広告が表示されるものの画面上に透かしが入っていない点で強い。Linux環境でもWineを介した動作を確認できている。Wineのインストールは以下コマンド。
sudo pacman -S wine
WineでBDを認識するためにはマウントする必要があることに注意。任意でJRE 32bitのインストールを薦められるがWineではインストールに失敗するので無視してOK。
不満点はメニュー画面がマウス操作に対応していないことくらい。
まとめ
Arch系Linuxで市販のBlu-rayを再生するまでの最短手順をまとめる。
- 必要パッケージとモジュールを導入
sudo pacman -S vlc libbluray yay -S makemkv makemkv-libaacs sudo modprobe sg
- Blu-rayドライブにBDを挿入
- VLCで再生
MakeMKVが法的にグレーゾーンであることに留意すること。コピープロテクトを解除して複製してはいけない。
コメント
virtualbox上のlinuxmintでwine入れてleawoを試したんですが、
アプリが固まってしまったのでVLCで挑戦したんですが、酷いオチがあって…。
KEYDB.cfgのアーカイブを解凍すると「keydb.cfg」として出てくるんですけど、
このままコピーしても動かず、リネームして「KEYDB.cfg」としないとダメと言う…。
~/.config/aacsじゃなくて
~/.var/app/org.videolan.VLC/config/aacs/
にしたら動いたという掲示板の書き込みもありましたが、
うちでは上の配置で問題ありませんでした。