積雲が映像制作したMV『RANGEFINDER』公開中
専門88IO

【Manjaro Linux】VLCで市販のBlu-rayを再生するまで

専門

昨年リビングのにBlu-rayレコーダーが設置された。

今までは再生環境や汎用性の観点からDVDを買ってきたが最近の映画の映像美を楽しむには画質が物足りない。これを機にBlu-rayディスクの映画を買うことにした。

まずはインセプション、インターステラー、テネットのBDを買った。アニメーション映画だとサカサマのパテマ、言の葉の庭、映画大好きポンポさん。

所有欲も含めて映像には満足していたものの、如何せんリビングでしか観れないのが不満になってきた。地デジ初期の光沢テレビで反射や暗さが気になるし、シネスコサイズなら自室の画面比21:9のIPSモニターで観たほうが臨場感がある。

そこで先日Blu-rayドライブを譲ってもらったのでManjaro LinuxでBlu-ray再生環境を整えることにした。

参考サイト

Manjaro LinuxはArch系なので以下のWikiが参考になる。他のLinuxでも同等のライブラリがあるので一読することを推奨する。

Blu-ray - ArchWiki

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情報が表示される。

sgモジュールの読込前

sgモジュールの読込後

3.libaacs, libbdplusをlibmmbdに置換

Blu-rayのコピープロテクト技術にはAACSと任意でBD+が使われている。VideoLANがこれを復号するライブラリとしてlibaacsとlibbdplusを開発しているが、AACSの復号に必要なKEYDB.cfgの不適合により再生できないBDも多い。

そこで上記ライブラリと互換性のあるMakeMKV付属のlibmmbdを利用する。VLCではBlu-rayの再生にlibaacs.so.0libbdplus.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を再起動することで改善することがある。

言の葉の庭 (2013)

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を再生するまでの最短手順をまとめる。

  1. 必要パッケージとモジュールを導入
    sudo pacman -S vlc libbluray
    yay -S makemkv makemkv-libaacs
    sudo modprobe sg
  2. Blu-rayドライブにBDを挿入
  3. VLCで再生

MakeMKVが法的にグレーゾーンであることに留意すること。コピープロテクトを解除して複製してはいけない

コメント

  1. 通りすがり より:

    virtualbox上のlinuxmintでwine入れてleawoを試したんですが、
    アプリが固まってしまったのでVLCで挑戦したんですが、酷いオチがあって…。

    KEYDB.cfgのアーカイブを解凍すると「keydb.cfg」として出てくるんですけど、
    このままコピーしても動かず、リネームして「KEYDB.cfg」としないとダメと言う…。

    ~/.config/aacsじゃなくて
    ~/.var/app/org.videolan.VLC/config/aacs/
    にしたら動いたという掲示板の書き込みもありましたが、
    うちでは上の配置で問題ありませんでした。

タイトルとURLをコピーしました