diary/Kojima/2019-02-17
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[diary/Kojima]]
・LinuxでのBluray Disc再生の現状(その2)
試行錯誤していたので、ずいぶん間が空いちゃったけど、とり...
前回紹介したように、MakeMKVを使えば Linux 上でも
AACSで暗号化されたBDディスクのデータをmkv形式に変換できる...
やはり一々mkv形式に変換しなければいけないというのは面倒な...
もう少しなんとかならないかと、libbluray + libaacs を試し...
[[libbluray:https://www.videolan.org/developers/libbluray...
[[libaacs:https://www.videolan.org/developers/libaacs.htm...
VLCを公開しているVideoLanプロジェクトが開発しているライブ...
libblurayがBDディスクの構造解析、libaacsがAACS暗号を解読...
両者とも開発版のコードはgitで提供されているようなので、
まずはlibblurayのコードをgit cloneで持ってきてビルドしよ...
"Apache Ant"というJava用のビルドシステムが無い、旨のエラ...
じゃあ、"Apache Ant"を入れるか、、と試したら、Javaの開発...
結局 OpenJDK が公開しているJava開発環境を入れた上でApache...
ようやくlibblurayがビルドできた。
libblurayのコード自体はC++みたいなのに、なんでJavaな開発...
どうやらBDには対話的なメニューやゲーム等を提供する機能が...
その部分がJavaになっているので、BD対応用のライブラリであ...
libaacsはKEYDB.cfgというキーファイルが必要ということで、...
KEYDB.cfgはprocessing keyとHost certificate、disc VUK key...
かなり大きなファイル。詳しくは調べてないけど、processing ...
鍵と秘密鍵みたいなものなもので、これらがきちんと機能すれ...
漏洩した鍵は定期的に無効にされるため、disc VUK keyというB...
必要があるらしい。
libblurayに付属の bd_info というコマンドで、BDの情報を確...
$ bd_info /dev/sr1
Using libbluray version 1.0.2
aacs.c:546: Error calculating media key. Missing right p...
Volume Identifier : GUP_TV_AND_OVA_51CH_BDBOX_D1
BluRay detected : yes
First Play supported: yes
Top menu supported : yes
HDMV titles : 6
BD-J titles : 0
UNSUPPORTED titles : 0
BD-J detected : no
AACS detected : yes
libaacs detected : yes
Disc ID : 3CA717B91B1FEB9EB36AF86FB92730B8ED...
AACS MKB version : 65
AACS handled : yes
BD+ detected : no
Application info:
initial mode preference : 2D
3D content exists : No
video format : ignored (0x0)
frame rate : ignored (0x0)
provider data : ' ...
Disc library metadata:
Metadata file : bdmt_jpn.xml
Language : jpn
Disc name : ガールズ&パンツァー TV&OVA 5.1c...
Alternative : <undefined>
Disc # : <undefined>/<undefined>
TOC count : 0
Thumbnail count : 2
./GuP_51ch_BOX_META_S.jpg 416x240
./GuP_51ch_BOX_META_L.jpg 640x360
一応、内容は認識できている感じ。
こうして用意したlibblurayとlibaacsを組み込むように、
vlc-3.0.3とmpv-0.29.1をビルドしてみた。
試行錯誤の過程は省いて結論だけ述べると、
vlcでは[メディア]=>[ディスク]=>[ブルーレイ]/[ディスクデバ...
しばらくBDを読み込んでなにやらやっているものの、
タイトルロゴしか表示できなかった。
#ref("vlc_BD.jpg")
[ツール]=>[メッセージ]で出力レベルを「デバッグ」にしたら...
main debug: incoming request - stopping current input
main debug: removing module "libbluray"
libbluray info: Closing overlays.
main debug: dead input
main debug: processing request item: bluray:///dev/sr1, ...
main debug: rebuilding array of current - root プレイリ...
main debug: rebuild done - 2 items, index 1
main debug: starting playback of new item
main debug: resyncing on bluray:///dev/sr1
main debug: bluray:///dev/sr1 is at 1
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: looking for meta fetcher module matching "an...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/f...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any"...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/art
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no art finder modules matched
main debug: looking for meta fetcher module matching "an...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/f...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any"...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/art
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
main debug: using timeshift granularity of 50 MiB
main debug: using default timeshift path
main debug: `bluray:///dev/sr1' gives access `bluray' de...
main debug: creating demux: access='bluray' demux='any' ...
main debug: looking for access_demux module matching "bl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no art finder modules matched
qt debug: IM: Deleting the input
qt debug: IM: Setting an input
qt debug: IM: Deleting the input
qt debug: IM: Setting an input
libbluray info: First play: 1, Top menu: 1 HDMV Titles: ...
libbluray debug: Disc is using AACS
libbluray debug: Selecting Title 0
main debug: using access_demux module "libbluray"
main debug: creating demux: access='' demux='ts' locatio...
main debug: looking for demux module matching "ts": 48 c...
main debug: no demux modules matched
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: looking for meta reader module matching "any...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/r...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no meta reader modules matched
main debug: `bluray:///dev/sr1' successfully opened
main debug: creating demux: access='' demux='ts' locatio...
main debug: looking for demux module matching "ts": 48 c...
main debug: no demux modules matched
イマイチこのログをどう読むのかは分かってないのだけれど、
libblurayが対象のBDをAACS使用と認識し、
AACSをデコードするためのdemuxを探したものの "no demux mod...
って感じかな。
一方、mpvとそれをバックエンドにしているsmplayerでは、
メニューの[ディスクを開く]からでは再生できなかったものの、
起動時の引数として直接 "bd:////dev/sr1" みたいな URL を指...
#ref("smplayer_BD.jpg")
URLの指定方法は bd://[track_no]//[device_name] みたいな感...
再生したいトラック番号が分かっていれば直接それを指定でき...
track_noを指定しなければディスクの頭から再生するらしい。
手元ではBDドライブは/dev/sr1にしているので、
最初から再生する場合は "smplayer bd:////dev/sr1" という形...
UIの無いmpvでは確認できなかったけど、smplayerならば字幕の...
オーディオコメンタリーなトラックの選択もできたので、
メニューが無いことを除けば、とりあえず再生はできてる感じ。
#ref("smplayer_BD2.jpg")
「やったー、OSSなソフトだけでBDが再生できた!!」と喜んだの...
大きな落とし穴が待ち構えていたのであった。。([[続く:http:...
#comment
終了行:
[[diary/Kojima]]
・LinuxでのBluray Disc再生の現状(その2)
試行錯誤していたので、ずいぶん間が空いちゃったけど、とり...
前回紹介したように、MakeMKVを使えば Linux 上でも
AACSで暗号化されたBDディスクのデータをmkv形式に変換できる...
やはり一々mkv形式に変換しなければいけないというのは面倒な...
もう少しなんとかならないかと、libbluray + libaacs を試し...
[[libbluray:https://www.videolan.org/developers/libbluray...
[[libaacs:https://www.videolan.org/developers/libaacs.htm...
VLCを公開しているVideoLanプロジェクトが開発しているライブ...
libblurayがBDディスクの構造解析、libaacsがAACS暗号を解読...
両者とも開発版のコードはgitで提供されているようなので、
まずはlibblurayのコードをgit cloneで持ってきてビルドしよ...
"Apache Ant"というJava用のビルドシステムが無い、旨のエラ...
じゃあ、"Apache Ant"を入れるか、、と試したら、Javaの開発...
結局 OpenJDK が公開しているJava開発環境を入れた上でApache...
ようやくlibblurayがビルドできた。
libblurayのコード自体はC++みたいなのに、なんでJavaな開発...
どうやらBDには対話的なメニューやゲーム等を提供する機能が...
その部分がJavaになっているので、BD対応用のライブラリであ...
libaacsはKEYDB.cfgというキーファイルが必要ということで、...
KEYDB.cfgはprocessing keyとHost certificate、disc VUK key...
かなり大きなファイル。詳しくは調べてないけど、processing ...
鍵と秘密鍵みたいなものなもので、これらがきちんと機能すれ...
漏洩した鍵は定期的に無効にされるため、disc VUK keyというB...
必要があるらしい。
libblurayに付属の bd_info というコマンドで、BDの情報を確...
$ bd_info /dev/sr1
Using libbluray version 1.0.2
aacs.c:546: Error calculating media key. Missing right p...
Volume Identifier : GUP_TV_AND_OVA_51CH_BDBOX_D1
BluRay detected : yes
First Play supported: yes
Top menu supported : yes
HDMV titles : 6
BD-J titles : 0
UNSUPPORTED titles : 0
BD-J detected : no
AACS detected : yes
libaacs detected : yes
Disc ID : 3CA717B91B1FEB9EB36AF86FB92730B8ED...
AACS MKB version : 65
AACS handled : yes
BD+ detected : no
Application info:
initial mode preference : 2D
3D content exists : No
video format : ignored (0x0)
frame rate : ignored (0x0)
provider data : ' ...
Disc library metadata:
Metadata file : bdmt_jpn.xml
Language : jpn
Disc name : ガールズ&パンツァー TV&OVA 5.1c...
Alternative : <undefined>
Disc # : <undefined>/<undefined>
TOC count : 0
Thumbnail count : 2
./GuP_51ch_BOX_META_S.jpg 416x240
./GuP_51ch_BOX_META_L.jpg 640x360
一応、内容は認識できている感じ。
こうして用意したlibblurayとlibaacsを組み込むように、
vlc-3.0.3とmpv-0.29.1をビルドしてみた。
試行錯誤の過程は省いて結論だけ述べると、
vlcでは[メディア]=>[ディスク]=>[ブルーレイ]/[ディスクデバ...
しばらくBDを読み込んでなにやらやっているものの、
タイトルロゴしか表示できなかった。
#ref("vlc_BD.jpg")
[ツール]=>[メッセージ]で出力レベルを「デバッグ」にしたら...
main debug: incoming request - stopping current input
main debug: removing module "libbluray"
libbluray info: Closing overlays.
main debug: dead input
main debug: processing request item: bluray:///dev/sr1, ...
main debug: rebuilding array of current - root プレイリ...
main debug: rebuild done - 2 items, index 1
main debug: starting playback of new item
main debug: resyncing on bluray:///dev/sr1
main debug: bluray:///dev/sr1 is at 1
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: looking for meta fetcher module matching "an...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/f...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any"...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/art
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: skipping script (unmatched scope) /usr/lib/vl...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no art finder modules matched
main debug: looking for meta fetcher module matching "an...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/f...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any"...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/art
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
main debug: using timeshift granularity of 50 MiB
main debug: using default timeshift path
main debug: `bluray:///dev/sr1' gives access `bluray' de...
main debug: creating demux: access='bluray' demux='any' ...
main debug: looking for access_demux module matching "bl...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no art finder modules matched
qt debug: IM: Deleting the input
qt debug: IM: Setting an input
qt debug: IM: Deleting the input
qt debug: IM: Setting an input
libbluray info: First play: 1, Top menu: 1 HDMV Titles: ...
libbluray debug: Disc is using AACS
libbluray debug: Selecting Title 0
main debug: using access_demux module "libbluray"
main debug: creating demux: access='' demux='ts' locatio...
main debug: looking for demux module matching "ts": 48 c...
main debug: no demux modules matched
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: attempt to destroy nonexistent variable "tit...
main debug: looking for meta reader module matching "any...
lua debug: Trying Lua scripts in /home/kojima/.local/sha...
lua debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/r...
lua debug: Trying Lua playlist script /usr/lib/vlc/lua/m...
lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta...
main debug: no meta reader modules matched
main debug: `bluray:///dev/sr1' successfully opened
main debug: creating demux: access='' demux='ts' locatio...
main debug: looking for demux module matching "ts": 48 c...
main debug: no demux modules matched
イマイチこのログをどう読むのかは分かってないのだけれど、
libblurayが対象のBDをAACS使用と認識し、
AACSをデコードするためのdemuxを探したものの "no demux mod...
って感じかな。
一方、mpvとそれをバックエンドにしているsmplayerでは、
メニューの[ディスクを開く]からでは再生できなかったものの、
起動時の引数として直接 "bd:////dev/sr1" みたいな URL を指...
#ref("smplayer_BD.jpg")
URLの指定方法は bd://[track_no]//[device_name] みたいな感...
再生したいトラック番号が分かっていれば直接それを指定でき...
track_noを指定しなければディスクの頭から再生するらしい。
手元ではBDドライブは/dev/sr1にしているので、
最初から再生する場合は "smplayer bd:////dev/sr1" という形...
UIの無いmpvでは確認できなかったけど、smplayerならば字幕の...
オーディオコメンタリーなトラックの選択もできたので、
メニューが無いことを除けば、とりあえず再生はできてる感じ。
#ref("smplayer_BD2.jpg")
「やったー、OSSなソフトだけでBDが再生できた!!」と喜んだの...
大きな落とし穴が待ち構えていたのであった。。([[続く:http:...
#comment
ページ名: