(2020-09-16)
内蔵ドライブに装着した市販DVDをVLCメディアプレーヤで観ようとすると空振りしてしまう。
PC: ThinkPad T410 DVDドライブ: 内蔵 MATSHITA DVD-RAM UJ892, Type:CD-ROM, Revision:SB01 OS: Lubuntu 19.10 / 20.04 64bit 再生ソフト: VLCメディアプレーヤー 3.0.8, totem 3.34.1-2ubuntu1 メディア: 市販DVD
PC: ThinkPad X41 DVDドライブ: ウルトラベース LG製 HL-DT-ST DVD-ROM GDR8083N, Type:CD-ROM, Revision:OK04 OS: Lubuntu 18.04 32bit 再生ソフト: VLCメディアプレーヤー
Totem や目ぼしい他の再生ソフトでも同じ。まるで「装着してるのがDVDじゃない!」とばかりに無視される。冷たく何も表示せずに… 考えてみれば Ubuntu で DVD を観た事が無い。あれこれ検索|試行すると、これには問題が2つ有るのが判った。
以下、顛末の記録。
検索すると多くの記事には次の3つをインストールすれば観れるようになる、と書かれている。 (古い記事だが) どうすればDVD再生用の制限されたコーデックを使用できますか? 辺りに「暗号化されているから復号化ソフトウェアが必要」と説明されている。
そこに書かれている手順は libdvdnav4, libdvdread4, gstreamer1.0-plugins-bad, gstreamer1.0-plugins-ugly, libdvd-pkg をインストールし、dpkg-reconfigure libdvd-pkg を実行せよ、と書かれているが、某はよく読まずに次の手順でやってしまった。(いけない手順でも無さそうだが)
$ sudo apt install libdvd-pkg $ sudo dpkg-reconfigure libdvd-pkg $ sudo apt install ubuntu-restricted-extras
因みに上記の理由でライブ起動の配布物にも含まれて居ない。
下記 dpkg-reconfigure の様子。
$ sudo dpkg-reconfigure libdvd-pkg [sudo] password for usskim: libdvd-pkg: Downloading orig source... I: libdvdcss_1.4.2 /usr/bin/wget --tries=3 --timeout=40 --read-timeout=40 --continue -O libdvdcss_1.4.2.orig.tar.bz2 \ http://download.videolan.org/pub/libdvdcss/1.4.2/libdvdcss-1.4.2.tar.bz2 \ || /usr/bin/uscan --noconf --verbose --rename --destdir=/usr/src/libdvd-pkg --check-dirname-level=0 --force-download --download-current-version /usr/share/libdvd-pkg/debian --2020-09-16 05:26:47-- http://download.videolan.org/pub/libdvdcss/1.4.2/libdvdcss-1.4.2.tar.bz2 Resolving download.videolan.org (download.videolan.org)... 213.36.253.2, 2a01:e0d:1:3:58bf:fa02:c0de:5 Connecting to download.videolan.org (download.videolan.org)|213.36.253.2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 366824 (358K) [application/octet-stream] Saving to: ‘libdvdcss_1.4.2.orig.tar.bz2’ libdvdcss_1.4.2.orig.tar.bz 100%[==========================================>] 358.23K 27.9KB/s in 7.4s 2020-09-16 05:26:55 (48.3 KB/s) - ‘libdvdcss_1.4.2.orig.tar.bz2’ saved [366824/366824] libdvd-pkg: Checking orig.tar integrity... /usr/src/libdvd-pkg/libdvdcss_1.4.2.orig.tar.bz2: OK libdvd-pkg: Unpacking and configuring... libdvd-pkg: Building the package... (it may take a while) libdvd-pkg: Build log will be saved to /usr/src/libdvd-pkg/libdvdcss2_1.4.2-1~local_amd64.build Current: = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend,cap_audit_read+ep Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_wake_alarm,cap_block_suspend,cap_audit_read Securebits: 024/0x14/5'b10100 secure-noroot: no (unlocked) secure-no-suid-fixup: yes (unlocked) secure-keep-caps: yes (unlocked) uid=0(root) gid=0(root) groups=0(root) libdvd-pkg: Installing... 以前に未選択のパッケージ libdvdcss-dev:amd64 を選択しています。 (データベースを読み込んでいます ... 現在 287624 個のファイルとディレクトリがインストールされています。) .../libdvdcss-dev_1.4.2-1~local_amd64.deb を展開する準備をしています ... libdvdcss-dev:amd64 (1.4.2-1~local) を展開しています... 以前に未選択のパッケージ libdvdcss2:amd64 を選択しています。 .../libdvdcss2_1.4.2-1~local_amd64.deb を展開する準備をしています ... libdvdcss2:amd64 (1.4.2-1~local) を展開しています... libdvdcss2:amd64 (1.4.2-1~local) を設定しています ... libdvdcss-dev:amd64 (1.4.2-1~local) を設定しています ... libc-bin (2.30-0ubuntu2.2) のトリガを処理しています ...
これで観れると思いきや…観れない orz
昔から「問題の切り分け」で万事解決と思われているが、事はそう簡単ではない。 切り分けの判断が曖昧さを含むから下手すると間違った方向へ進んでしまい、迷宮入りする可能性が少なくないからだ。 思い付く要因と、それが原因である確率を推測してみる。
古い記事に「sudo /usr/share/doc/libdvdread4/install-css.sh」をやれ、と書かれているが、それは 15.10 より前の版の話しらしいので今回は無視して良い。
情報元: ubuntu 16.04 インストール(8) マルチメディア系 - kashiの日記
何より現状そんなファイルは存在しない↓
$ ll /usr/share/doc/libdvdread4/ total 92 drwxr-xr-x 2 root root 4096 10月 17 2019 ./ drwxr-xr-x 2057 root root 69632 9月 16 06:08 ../ -rw-r--r-- 1 root root 1176 1月 3 2014 AUTHORS -rw-r--r-- 1 root root 2648 11月 6 2013 README -rw-r--r-- 1 root root 754 2月 10 2019 README.css -rw-r--r-- 1 root root 1810 2月 10 2019 changelog.Debian.gz -rw-r--r-- 1 root root 1303 2月 10 2019 copyright
復号化の肝心なファイルは libdvdcss だそうなので、これらの存在を見ておく。
$ find /usr -name 'libdvd*' /usr/share/bug/libdvdnav4 /usr/share/bug/libdvdread4 /usr/share/libdvd-pkg /usr/share/libdvd-pkg/libdvdcss_1.2.12.orig.tar.bz2.sha256 /usr/share/libdvd-pkg/libdvdcss_1.4.2.orig.tar.bz2.sha256 /usr/share/libdvd-pkg/libdvdcss_1.3.0.orig.tar.bz2.sha256 /usr/share/libdvd-pkg/libdvdcss_1.2.13.orig.tar.bz2.sha256 /usr/share/libdvd-pkg/debian/libdvdcss2.install /usr/share/libdvd-pkg/debian/libdvdcss2.symbols /usr/share/libdvd-pkg/debian/libdvdcss-dev.install /usr/share/libdvd-pkg/libdvdcss_1.4.0.orig.tar.bz2.sha256 /usr/share/libdvd-pkg/libdvdcss_1.2.11.orig.tar.bz2.sha256 /usr/share/libdvd-pkg/libdvdcss_1.4.1.orig.tar.bz2.sha256 /usr/share/lintian/overrides/libdvdnav4 /usr/share/lintian/overrides/libdvd-pkg /usr/share/doc/libdvdcss2 /usr/share/doc/libdvdcss-dev /usr/share/doc/libdvdnav4 /usr/share/doc/libdvdread4 /usr/share/doc/libdvd-pkg /usr/lib/libdvd-pkg /usr/lib/x86_64-linux-gnu/libdvdcss.so /usr/lib/x86_64-linux-gnu/libdvdread.so.4.2.0 /usr/lib/x86_64-linux-gnu/libdvdnav.so.4.2.0 /usr/lib/x86_64-linux-gnu/libdvdread.so.4 /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvdread_plugin.so /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvdnav_plugin.so /usr/lib/x86_64-linux-gnu/libdvdcss.so.2.2.0 /usr/lib/x86_64-linux-gnu/libdvdnav.so.4 /usr/lib/x86_64-linux-gnu/pkgconfig/libdvdcss.pc /usr/lib/x86_64-linux-gnu/libdvdcss.so.2 /usr/src/libdvd-pkg ...
何やら入ってそう。
リコンフィグとやらを念の為に再度実行。
$ sudo dpkg-reconfigure libdvd-pkg [sudo] password for usskim: libdvd-pkg: guest package [libdvdcss2/1.4.2-1~local] is already installed.
まず、VLC の設定メニュー/すべてに替えて詳細設定/ロガーのログファイル名を設定するが、一向にファイルが作成されない。 後で気付くが、syslog には記録されているもよう。
一方、totem は再生しようとする度に次のメッセージを吐く。むぅ~
totem[8012]: Missing plugin: gstreamer|1.0|totem|DVD source|urisource-dvd (DVD source|urisource-dvd (DVD source) totem[8012]: Automatic missing codec installation not supported (helper script missing)
ここまで来ると、けったいなリージョン妨害工作としか思えない。
↓ここを読み、DVDリージョンコードを見てみる。
UbuntuTips/Others/HowToPlayDvd - Ubuntu Japanese Wiki
Windows だとデバイスマネージャが見せてくれるらしいが、Lubuntu に入れた System Infomation では見えない。
regionset をインストールして見る。
$ regionset
regionset version 0.1 -- reads/sets region code on DVD drives
Current Region Code settings:
RPC Phase: II
type: NONE
vendor resets available: 4
user controlled changes resets available: 5
drive plays discs from region(s):, mask=0xFF
Would you like to change the region setting of your drive? [y/n]:n
おや? 未設定なようだ(黄色反転部)。回数も5回残っている。
躊躇うが、コードは一致してないといけないそうだし、regionset でググると事例が見つかる。
某も実行しよう…
$ regionset regionset version 0.1 -- reads/sets region code on DVD drives Current Region Code settings: RPC Phase: II type: NONE vendor resets available: 4 user controlled changes resets available: 5 drive plays discs from region(s):, mask=0xFF Would you like to change the region setting of your drive? [y/n]:y Enter the new region number for your drive [1..8]:2 New mask: 0xFFFFFFFD, correct? [y/n]:y Region code set successfully!
mask とやらはビット反転表現か? これで観れるようになった (≧▽≦)
とは言え、ブロックノイズが酷い。
一応、視聴出来るようになったとは言え、ブロックノイズが酷く、鑑賞に堪えない。 音声も周期的に途切れ、これはブロックノイズと言うより、まともに処理出来ていない様子。 どの再生ソフトも同様でまるで超低速回線環境 orz
ヒントになりそうな症状を挙げる。
DVDパッケージを見て気付くのは、問題のDVDが音声3ヶ国語、字幕5本と多い点。 問題無い方は音声・字幕共、英語と日本語の2本。 メニュー部分はオーディオは含まれるが、音声も字幕も無い点が気になる。
参考にしたサイト→ UbuntuでDVDをmp4に変換 - FXシステムトレード
以下3つをインストール
あれこれパラメータを変えてみたが改善しない。 また、変換したファイルを他の Windows PC へ持って行って観ても同じ症状。
正常に観れる X41 で、同じく handbrake をインストールし、リッピングしてみると正常。
また、そのファイルを T410 で観ると正常。
版が異なるのだが、T410 と X41 とで handbrake の振る舞いが異なる。
X41 ではソースを指定すると右のエリアに動画のスナップショットが表示されるのだが、T410 では表示されない。ここで既にブロックノイズ|音切れの兆候が現れているもよう。
これらから察するに T410 の DVD読み取りに何か問題有りそう。しかも一部のDVDに於いて。 ハードか、ソフトか…。切り分けが困難 orz
VLC の syslog 出力を活かすと警告っぽいメッセージを連発している。 画像出力が遅過ぎの意味か…。 VLCの処理内容を知らないのでログを見ても判らない。
vlc[xxxxx]: picture is too late to be displayed (missing xxx ms)
統計表示はこんな風↓
ファイル化での改善を期待してリッピングを試したが、改善されないのでその線は排除していたが、考えてみれば動画ファイル形式への変換なので、より単純なISOイメージファイル化をやってみる価値がある。
やってみると…
OS絡みかどうか、ドライブの違いか、ばっさり切り分ける為、PCはそのまま、Win10 で稼動させていた HDD へ差し替える。中古で購入時、動作確認の為に用意されていたもので、素の Win10 に近い。 VLC もインストールされていないのでインストールする。
結果、綺麗に観れた。これで DVDドライブの疑いは晴れた。 なれどソフトウェアと連携し、何らかのからくりを持っている可能性は残る。
X41 の Lubuntu 18.04 は 32bit 版なので、その差かどうか確かめたいが、生憎 HDD が余っておらず環境が用意出来ない。ライブUSBなら用意出来るのだが libdvd-pkg が入ってないからなぁ…
原因解明の為、見よう見真似で図を描き、症状について再考する。
ここまで、掛けられているのは CSS(Content Scramble System)であり、そこは libdvd で解除されている、と思ってきたが、症状の酷さから見てスクランブルやジャミングのような別のコピーガードが掛かっているように思える。
そこで掛ける側に視点を移して情報を探す。
画像付きで解説してあれば良いのだが、そんなサイトは中々見当たらない。
(リージョン、CSS以外の)何らかのコピーガードが掛かっていると仮定し、各症状の(尤もらしい)原因を推測する。
問題のDVDタイトルには何らかのコピーガードが施されていて、一部のDVDドライブ、且つ、Linux(or Windows10 以外)で使用した場合に発動する。と推測。