はじめに
結論から言うと,4K UHD BD は私の環境 (CentOS7) では再生出来なかった.
まぁなんとかなるかと思って衝動的な物欲に負けて珍しく円盤を買った.色々調べて見たものの,2021 年現在の OSS では再生環境構築は難しいらしい.
BD ドライブに無駄な出費をするより,はじめから専用のプレイヤーを買ったほうが良い.
以下は失敗談の備忘.
4K UHD BD 再生環境を取り巻く諸事情等
4K や 8K という言葉が広く認知されるようになった昨今.4K 対応のテレビやプレイヤー,UHD BD のラインナップも豊富になってきている.一方,PC でその再生環境を用意するのはハードウェア的にもソフトウェア的にもハードルが非常に高い.
専用プレイヤーを使う方法
単に再生したいだけであれば UHD BD に対応したディスプレイ+プレイヤーを用意すれば再生環境は整う.PC での再生にこだわらない人はこの方法を選んだほうが良い.
安いもので 17,000 円程度でプレイヤーを購入できる.
また Xbox One S/X,PlayStation 5 といったゲーム機もプレイヤーとして利用できる.こちらは概ね 25,000 円程度.
PC で再生する方法
わざわざ専用機器を増やしたくない人や,パワーユーザーは PC で再生できないか考えるかもしれない.が,PC での再生環境構築は難易度が高い.Wiki によると必要な物は次の通り.
- UHD BD 対応再生ソフトウェア
- UHD BD 対応ディスクドライブ
- AACS 2.0の解除のためにIntel SGX (en) に対応し、なおかつ映像出力機能を搭載したインテル製のCPU(第7世代(Kaby Lake)から第10世代(Ice Lake及びComet Lake)までのCore iプロセッサ)
- HDCP 2.2に対応したディスプレイ
- 上記のSGXとHDCPに対応したマザーボード
Windows であればパイオニアが提供している「Ultra HD Blu-rayアドバイザーツール」を利用することで再生環境を確認することができる.この結果に合わせて環境を整備すればいいが,場合によってはマザーボード交換の必要もあるため,既存環境の拡張だけでは対応出来ない場合もある.
Linux ではどうかというと Arch Linux の Blu-ray のページが最も情報が整理されている.Linux において 4K UHD BD 再生に最低限必要なものは次の通り.
- UHD BD 対応ドライブ
- BD 再生及びコンテンツ復号ライブラリ
- VLC メディアプレイヤー
なお Arch のページに記載されている通り,日本では著作権法の改正によって保護技術を回避しての複製は違法だが,再生は問題ない.関心事は,ディスクの複製ではなく,正当に購入したディスクをただただ再生したいだけである.
ただ,上記のドライブやライブラリ,プレイヤーを揃えても実際に再生できるかはまた別の問題である.
UHD BD 外付けドライブは Amazon で 1 万円程度で選択肢があるが,私のように試行錯誤した結果再生出来ないという結果の場合があるので無駄な出費となる可能性を覚悟すること.また,利用するソフトウェアによっては推奨するドライブやファームウェアのバージョンが決まっている場合があるので注意が必要.
ちなみに私が用意したのはこれ.
コンテンツの復号には libaacs などを利用する.詳細は Arch のページなど色々なページで解説されているが,要するに libaacs は既知の鍵を使って AACS(Advanced Access Content System) の復号プロセスのいくつかをスキップすることができる.これらのライブラリは,ディストリビューションによってはパッケージ管理ツールからインストールできる場合もあり比較的入手は簡単.ただし,世の中に流通する全てのディスクで必要な鍵が明らかになっているわけではない.
なお復号について,かつては MakeMKV のストリーミング機能を利用することが出来たが,この機能は v1.14.0 において削除されている.代わりに VLC や Kodi と一緒に libmmbd を使えとのこと. libmmbd は libaacs と互換性があるらしい.
Removed UPNP streaming (Use VLC or Kodi with libmmbd instead)
http://www.makemkv.com/download/history.html
プレイヤーソフトについては,前述の VLC や Kodi の他に MPlayer が利用できる.Kodi はプレイヤーと言うよりもメディアセンターなので,大抵の人は VLC もしくは Mplayer を選ぶことになるはず.今回は VLC を使って見たが,VLC のフォーラムを見て分かる通り BD の再生に成功している人もいれば,失敗している人もいるので,自身の環境で再生できるかはやってみないと分からない.
プレイヤーやライブラリをビルドする
VLC やライブラリは前述の通りディストリビューションによってはパッケージ管理ツールからインストールすることができる.CentOS7 においても RPM Fusion を利用すれば VLC 本体,libaacs,libbdplus はインストールできる.パッケージからインストールしてみたり,ソースからビルドしてみたり,いろいろやってみたものの結局私の環境では再生出来なかった.ビルドの流れだけ書いておく.
基本的にはどれも ./bootstrap
して,./configure
して,make
して,sudo make install
するだけ.ローカルを汚したくないので基本的に Docker 内の /mnt
で作業する.
共通作業
まずはコンテナを作成して各作業で必要となるパッケージをインストールする.ついでに作業環境の OS なども次の通り.
local $ cat /etc/centos-release ; uname -r
CentOS Linux release 7.9.2009 (Core)
5.13.0-1.el7.elrepo.x86_64
local $ docker run --rm -it -v /path/to/work:/mnt centos:7
docker# yum install autoconf.noarch \
automake.noarch \
libtool \
make \
file \
wget \
git
docker# source /etc/profile
Build VLC Media Player
VLC 本体のビルドは標準リポジトリの GCC では対応出来なかったので,scl の devtoolset を使った.その上で,必要なパッケージをインストールして,ビルドを行った.以降のビルドの流れは大体同じ.ビルドのオプションは環境に合わせてお好みでどうぞ.ビルド出来たものは Docker を抜けてから sudo make install
すればいい.
docker# yum install centos-release-scl && \
yum install devtoolset-10-gcc-c++.x86_64 && \
scl enable devtoolset-10 bash
docker# yum install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
docker# yum install flex \
bison \
byacc \
lua-devel \
ffmpeg-devel \
liba52-devel \
libxcb-devel \
alsa-lib-devel
docker# cd /mnt
docker# wget http://get.videolan.org/vlc/3.0.16/vlc-3.0.16.tar.xz && \
tar xf vlc-3.0.16.tar.xz && \
cd vlc-3.0.16/
docker# ./bootstrap
docker# ./configure
docker# make
Build libbluray
docker# yum install epel-release.noarch
docker# yum install libxml2-devel \
freetype-devel \
fontconfig-devel \
libudfread-devel \
ant.noarch
docker# cd /mnt/ && \
git clone https://code.videolan.org/videolan/libbluray.git && \
cd libbluray/
docker# ./bootstrap
docker# ./configure
docker# make
Build libaacs
Java 関連のパッケージで漏れがあるかも.
docker# yum install libgcrypt-devel \
byacc \
bison \
flex
docker# cd /mnt/
git clone https://code.videolan.org/videolan/libaacs.git
cd libaacs/
docker# ./bootstrap
docker# ./configure
docker# make
Build libbdplus
docker# cd /mnt/ && \
git clone https://code.videolan.org/videolan/libbdplus.git && \
cd libbdplus/
docker# ./bootstrap
docker# ./configure
docker# make
いろいろやってみたものの再生出来ない
私の場合は,ブルーレイとしてディスクを開くとスピンアップせず,何もおこらない.試しに DVD としてディスクを開けばスピンアップはするものの当然再生出来ない.
ライブラリのパス
ライブラリのインストールパスはディストリビューションによって異なる.基本的には,パッケージツールでインストールされる先,もしくは,LD_LIBRARY_PATH
で通したパスへインストールすればいいらしい.libaacs を参考に,CentOS7 の場合は /usr/lib64/
だと思ってライブラリをインストールしてみたものの,VLC からディスクを開くを選択してもスピンアップせず...MakeMKV の libmmbd のリンクを作成してみるも結果は変わらず...
local $ repoquery --list libaacs-0.8.1-1.el7.1.x86_64
/usr/lib64/libaacs.so.0
/usr/lib64/libaacs.so.0.5.1
/usr/share/doc/libaacs-0.8.1
/usr/share/doc/libaacs-0.8.1/COPYING
/usr/share/doc/libaacs-0.8.1/ChangeLog
/usr/share/doc/libaacs-0.8.1/KEYDB.cfg
/usr/share/doc/libaacs-0.8.1/README.txt
VLC のログ
VLC のログは,メニューバーの「ツール」→「メッセージ」を開いて,出力レベルを「2 (デバッグ)」にすると詳細なログが表示できる.ログによると no access modules matched
らしいが解決策わからず...libbluray を読みに行ってないような...
main debug: processing request item: bluray:///dev/sr1, node: プレイリスト, skip: 0
main debug: rebuilding array of current - root プレイリスト
main debug: rebuild done - 3 items, index 2
main debug: starting playback of new item
main debug: resyncing on bluray:///dev/sr1
main debug: bluray:///dev/sr1 is at 2
main debug: creating new input thread
main debug: Creating an input for 'bluray:///dev/sr1'
main debug: requesting art for new input thread
main debug: using timeshift granularity of 50 MiB
main debug: using default timeshift path
main debug: `bluray:///dev/sr1' gives access `bluray' demux `any' path `/dev/sr1'
main debug: creating demux: access='bluray' demux='any' location='/dev/sr1' file='/dev/sr1'
main debug: looking for access_demux module matching "bluray": 19 candidates
main debug: no access_demux modules matched
main debug: creating access: bluray:///dev/sr1
main debug: (path: /dev/sr1)
main debug: looking for access module matching "bluray": 29 candidates
main debug: no access modules matched
main debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in <ないしょ>/.local/share/vlc/lua/meta/fetcher
lua debug: Trying Lua scripts in /usr/lib64/vlc/lua/meta/fetcher
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/fetcher
main debug: dead input
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in <ないしょ>/.local/share/vlc/lua/meta/art
lua debug: Trying Lua scripts in /usr/lib64/vlc/lua/meta/art
lua debug: Trying Lua playlist script /usr/lib64/vlc/lua/meta/art/00_musicbrainz.luac
lua debug: skipping script (unmatched scope) /usr/lib64/vlc/lua/meta/art/00_musicbrainz.luac
lua debug: Trying Lua playlist script /usr/lib64/vlc/lua/meta/art/01_googleimage.luac
lua debug: skipping script (unmatched scope) /usr/lib64/vlc/lua/meta/art/01_googleimage.luac
lua debug: Trying Lua playlist script /usr/lib64/vlc/lua/meta/art/02_frenchtv.luac
lua debug: skipping script (unmatched scope) /usr/lib64/vlc/lua/meta/art/02_frenchtv.luac
lua debug: Trying Lua playlist script /usr/lib64/vlc/lua/meta/art/03_lastfm.luac
lua debug: skipping script (unmatched scope) /usr/lib64/vlc/lua/meta/art/03_lastfm.luac
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/art
main debug: no art finder modules matched
main debug: changing item without a request (current 2/3)
main debug: nothing to play
BD の情報
libbluray をインストールすると bd_info
,db_list_titles
,bd_splice
といったツールもインストールされる.そもそも今回再生したいディスクの情報にツールからアクセスできるのかというと,アクセスできる.AACS は v71 で,BD+ は使ってないようす.
local $ bd_info /dev/sr1 2>/dev/null
Using libbluray version 1.3.0
Volume Identifier : THE_PHANTOM_MEANCE
BluRay detected : yes
First Play supported: no
Top menu supported : no
HDMV titles : 8
BD-J titles : 4
UNSUPPORTED titles : 4
BD-J detected : yes
Java VM found : yes
BD-J handled : no
BD-J organization ID: <ないしょ>
BD-J disc ID : <ないしょ>
AACS detected : yes
libaacs detected : yes
Disc ID : <ないしょ>
AACS MKB version : 71
AACS handled : no
(no matching processing key)
BD+ detected : no
Application info:
initial mode preference : 2D
3D content exists : No
video format : ignored (0x0)
frame rate : ignored (0x0)
initial dynamic range : SDR (0x0)
provider data : ' Lucasfilm'
Disc library metadata:
Metadata file : bdmt_eng.xml
Language : eng
Disc name : Star Wars: The Phantom Menace - Ultra HD™
Alternative : <undefined>
Disc # : <undefined>/<undefined>
TOC count : 0
Thumbnail count : 2
./SW1_Jacket_416_JFIF.jpg 416x240
./SW1_Jacket_640_JFIF.jpg 640x360
MakeMKV で読み取りしてみる
MakeMKV で読み取りするとディスクはスピンアップして,ボリュームキーが無いので復号出来ないとメッセージが表示された.ということは現状では VLC でも再生出来ない.が,VLC でもスピンアップくらいはしてほしかった...
おわりに
目的のディスクによっては再生できる可能性はあるものの,結局今回再生したいものは再生出来なかった.コンテンツの保護は大切だと思うんだけど,,,セキュリティと利便性はトレードオフだと思うんだけど,,,再生くらい気軽にさせてほしい...諦めて専用プレイヤーを買う...
コメント