Entry

FreeBSD メモ - DVD ドライブのリージョンを設定して CSS 付きの DVD を再生する

2008年05月27日

FreeBSD 7.0R に付いていた ports から xine をインストールしたら,CSS 付きの DVD を再生できなくなっていてハマりました。xine のリージョンコードはちゃんと ja にセットしてあるし,これでできると思ってたのに……。ports/UPDATE にも,それらしき話はないみたい。

てなことで,あちこち調べ回ったところ,どうも DVD ドライブにリージョンコードがセットされていないと,multimedia/libdvdcss でデコードするときにコケるんだそうな。大抵の PC 用 DVD ドライブは,リージョンコードがセットされないまま出荷されているようなので,こいつをちゃんと設定しなくちゃいけません。

で,設定方法なんですけど,Linux 界隈では regionset なるプログラムがあって,ご丁寧なことに RPM まで用意されている模様。じゃあ FreeBSD は,というと……んなもんありません。

けど,作ってくれてる人がいた。C のソースコードなのでコンパイルしませう。

ML だと #include 文の <> が隠れちゃってるので,「ページのソースを表示」とかやってコピペ。適当なファイル名で保存したら,後はいつものように,

aian:~ % cc -ansi -Wall -g -o regionset regionset.c
aian:~ % cc -ansi -Wall -g -o regionget regionget.c

とかでコンパイルできます。

で,まずは regionget を使ってみる。regionget は,今デバイス(ここでは /dev/acd0)に設定されているリージョンコードの情報を表示してくれます。

aian:~ % ./regionget /dev/acd0
vendor resets left: 4
user changes left: 5
drive region: 0
rpc type: 2

ということで,drive region は見事に0(未設定)でした。

そこで regionset を使って設定。regionset はドライブ名の後にリージョンコードを引数に取ります。日本は2なので,以下のように設定。

aian:~ % ./regionset /dev/acd0 2
aian:~ % ./regionget /dev/acd0
vendor resets left: 4
user changes left: 4
drive region: 2
rpc type: 2

これでちゃんと設定されて,libdvdcss も動くようになりました。

ここで注意しておかなくちゃいけないのは,リージョンコードは何度も変えられるわけじゃなくて,回数制限があることです。現に最初の regionget の結果では user changes left の値が5だったけれども,regionset で変更したら4になりました。つまり,あと4回変更できますよ,ということ。あれこれ失敗してたら,そのうち戻せなくなるので,慎重に作業しましょう。

それにしても,ちゃんと正規に買ってるのに,面倒だなぁ……。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN