Shino's Bar

お家で使うLinux tux


Vine LinuxでDVDを観よう! (xineの導入)

2 Mar 2009 (初出: 30 May 2002) Vine Linux 4.2に関して xine-lib-esd について追記。

ここではVideoCDやAVIファイルなど多くのメディアファイルに対応するxine をインストールし、 Vine LinuxでDVDを観賞できるようにします。

goto DVDを観よう! / Ubuntu編 / xine-0.9.x の導入 / ogle の導入 / mplayer の導入 / CSSについて

Vine Linux 4.2 編

totem-xineのインストール

Vine Linux 4.2 では Totem Media Player が動画再生の標準となっています。 ただしMPEGを再生するには totem-xine パッケージが必要です。 totem-xineをインストールすると依存性で xine-libも自動で入ってくれますが、 音声出力に必要な xine-lib-esd は別途インストールしなければなりません。 この2つは必須ですが、ついでに Synaptic で xine を検索し、 xine-lib-なんとか を全部インストールしておくといいでしょう。

xine-lib-extras のインストール

特許の問題などがあって、 Vineで提供される Xine-libのパッケージには一部の機能が外されています。 それらは self-build-xxx のパッケージの形で提供されています。

Synapticを使うこともできますが、恐ろしく時間(15分以上)がかかるので、フリーズしたように見えます。 仮想コンソールからのほうがいいでしょう。rootになってから次のコマンドを実行します。

apt-get install self-build-xine-lib-extras

無事に済めば xine-lib-mad, xine-lib-a52dec, xine-lib-extras, xine-lib-faad などがインストールされます。

libdvdcssのインストール

これで自作のDVDは再生できますが、市販のDVDを観るには、libdvdcssが必要です。
Download libdvdcss-1.2.9-2.nosrc.rpm をダウンロードしてください。
ソースの libdvdcss-1.2.9.tar.bz2あるい は libdvdcss-1.2.9.tar.gzをVideoLAN から。 リビルドし、インストールしてください。 CSSで暗号化されているDVD(市販のDVDの多く)を再生する必要が無ければ、逆に必須ではありません。

w32dllを使う

  1. コーデックのインストール

    以上でaviや asf, wmvの多くも再生できますが、wm9など、一部のものは mplayerのページで配布している追加コーデックが必要なようです。 essential*.tar.bz2 をダウンロードし、解凍したものを /usr/lib/codecs ディレクトリ内に置きます。

    あるいは、後の章にある xine-lib-*.nosrc.rpm をリビルドする場合や mplayerの導入mplayer-codecs が作られるので、 これをインストールすることでも上記と同じことができます。

    あるいは、xine-lib や mplayerをリビルドしないが、コーデックもRPMで管理したい人のために、
    Download mplayer-codecs-X-0.nosrc.rpmを作りました。 essential-*.tar.bz2 を ~/rpm/SOURCESに置いて下さい。 mplayer-codecs-X-0.nosrc.rpmをリビルドしてできる mplayer-codecs をインストールすることでも上記と同じことができます。

  2. totem-addonsへの登録

    ところが totem-xine はこれを読んでくれず、~/.gnome2/totem-addons ディレクトリを見に行くようです。 しかたがないので、/usr/lib/codecsにコーデックを置いたら、次のようにシンボリックリンクを張ります。

    cd ~/.gnome2/totem-addons
    ln -sf /usr/lib/codecs/* ./
  3. xine-lib-w32dll の追加インストール

    VinePlusで供給されている xine-lib-*.0vl*.i386.rpmをインストールしている場合は、xine-lib-w32dll を追加インストールしてください。 ここで配布している xine-lib-*.nosrc.rpm から作られた xine-lib をインストールしている場合は、この操作は不要です。 Synupticを使うか、あるいは仮想コンソールでrootになって、

    apt-get install xine-lib-w32dll

ビデオドライバの切替え

たとえば、i865などのグラフィックチップでは、画面が斜めの縞状に流れてしまうといったことがあります。 これはビデオドライバとして xshmを指定することで解決します。

totem-xineでビデオドライバを設定するには

~/.gnome2/totem_config に次の1行を加えます。

video.driver:xshm
totemでは使い勝手が悪いという方は、 次章にある xine-uiをビルドしてインストールしてください。 xine-uiがあると、ビデオドライバやオーディオドライバの切替えがGUIでできます。 totemでまずくとも、適切なドライバを選択することで、うまくいく場合もあります。 xine-libは、さきのapt-getで入っているので、ビルドやインストールは不要です。

xine-uiでビデオドライバを設定するには

  1. xineを立ち上げます
  2. マウスをクリックして出てくるメニューの中から、「設定」→「設定…」を選択します。
  3. 設定画面の gui のタブで「設定レベル{experience level)」に「Advanced」を選択、 「適用(Apply)」をクリックします。
  4. videoのタブに移り、「使用する動画ドライバ」に「xshm」を選択、 「OK」をクリックします。
  5. 「設定を反映するためにxineを…」と、メッセージが出るので、また「OK」をクリックします。
  6. いったん xineを終了し、再び立ち上げて試してください。

あるいは、~/.xine/config の「# 使用する動画ドライバ」のあたりに 次の1行を加えます。

video.driver:xshm

MPlayerの場合

gmlayerで設定することができますが、ドライバの名前は「x11 X11(XImage/shm)」と表記されています。 設定ファイルを直接編集する場合は、 ~/.mplayer/gui.conf に次の1行を加えます。

vo_driver = "x11"

ソフトの導入 (Vine Linux 2.6-3.2など)

Vine Linux 3.2で必要な追加パッケージ

Vine Linux 3.0以降では -develパッケージの多くは標準インストールでは入りません。 次の -develパッケージとbisonが必要なので、追加インストールしてください。 Vine FTPサイトのVine-3.2/i386/Vine/RPMS.develのディレクトリにあります。 aptを使う場合は root権限で apt-get install gtk2-devel など。

  1. gtk2-devel glib2-devel XOrg-devel atk-devel freetype2-devel pango-devel
  2. XOrg-gl-devel
  3. ncurses-devel
  4. readline-devel
  5. libpng-devel zlib-devel
  6. bison
  7. gdk-pixbuf-devel
  8. gnome-vfs2-devel
他にもあるかもしれない?

必須でないパッケージ

次のパッケージは それぞれの形式のマルチメディアを再生する場合に必要なもので、DVDの再生には必須ではありません。

  1. curl-devel, openssl-devel ...VineのRPMS.develにRPM ... ネット経由でのファイル取得に必要。インストールをお勧め。
  2. samba-libsmbclient (Vine Linux 4.0では samba-libsmbclient-devel も) ...VineのRPMS.develにRPM ... Windows ネットワークからのファイル取得に必要。インストールをお勧め。
  3. cdparanoia, cdparanoia-devel ... VinePlusにRPM。 ... オーディオCDを再生するのに必要。インストールをお勧め。
  4. alsa-lib-devel または alsa-lib
  5. SDL, SDL-devel ... VinePlusにRPMあり
  6. libmng, libmng-devel ... VinePlusにRPM
  7. libogg, libogg-devel ... VinePlusにRPM
  8. libvorbis, libvorbis-devel ... VinePlusにRPM
  9. XviD ... OpenDivX コーデックで、リビルドには nasm (VinePlusなどにある)が必要です。
  10. MPlayerのダウンロードページのCODECSのところから All-in-one packageとある all-*.tar.bz2 または essential-*.tar.bz2 をダウンロードし、 ~/rpm/SOURCESに置いて下さい。 xine-lib-*.nosrc.rpmをリビルドしてできる xine-lib, xine-lib-devel とともに、 mplayer-codecs をインストールすることで Windowsなどで使われるいくつかのコーデックが再生できるようになります

必須パッケージ

  1. xineライブラリ (Vine Linux 4.0ではaptで入手できるので不要)
  2. Download xine-lib-1.1.3-0.nosrc.rpm ... ソースは xine-lib-1.1.3.tar.gz SOURCEFORGE から
  3. ユーザー・インターフェース
  4. Download libdvdcss-1.2.9-2.nosrc.rpm ... ソースの libdvdcss-1.2.9.tar.bz2あるい は libdvdcss-1.2.9.tar.gzをVideoLAN から CSSで暗号化されているDVD(市販のDVDの多く)を再生する必要が無ければ、逆に必須ではありません。
  5. Download regionset-20000215-0.src.rpm ... 新品のDVDドライブの初期設定に必要な場合がある。 ドライブによっては不要。

上記を順にリビルド、インストールしてください。

src.rpm,nosrc.rpmからのリビルドについてはこちらを参考にしてください。

以前のパッケージはこちら

設定

デバイスファイルの準備

xineはデフォルトで /dev/dvd がDVDドライブを示しているものとして動作します。 DVDドライブがたとえば /dev/hdc であるとき、シンボリックリンクを張ってやります。 root権限で

# ln -s /dev/hdc /dev/dvd

SCSIに繋がっていたりSCSIエミュレーションを使っている場合はたとえば1台目のドライブならば /dev/scd0 であったりします。

1台のドライブをDVDとCDと兼用する場合は /dev/cdrom へも同じリンクを張っておくと便利です。 このリンクはふつう始めから作られているでしょう。逆に $ ls -l /dev/cdrom としてみることで、 ドライブのデバイス名が分かります。

リージョンコードの設定

root権限で

# /usr/sbin/regionset /dev/dvd

を実行します。 すでにリージョンコードが設定されていればそれが表示されます。 このツールで変更もできますが、変更回数は通常5回程度以内に制限されています。 あと何回変更可能かはこのツールで表示されます。 日本のリージョンコードは[2]です。

古い設定のクリア

xineの旧バージョンを入れていた場合、~/.xine ディレクトリに以前の設定が残されていてこれが悪さをすることがあります。
$ rm -fR ~/.xine
としてこれを削除しておきます。

使ってみる

DVDをドライブに挿入し、xineを起動します。エラーメッセージを見るためにX上でktermやxtermなどのターミナルを起動し、コマンドラインで xine と入力して起動してみます。 その前にもう1つ仮想ターミナルを起動しておきます。 これはxineを非常停止させるときに役立ちます。 操作ボタンの「DVD」をマウスでクリックします。「dvd://」と表示されたらプレイボタンをクリックするとメニュー(があれば)表示されるので、望むシーンをクリックします。

rootユーザーなら視聴できて一般ユーザーでは問題が起こる場合は デバイスのパーミッションに問題があります。 シンボリックリンクではなく大本の /dev/hdc などが一般ユーザーから読み書きできなければなりません。(CSS鍵を渡すために書き込み権限が必要)。

xine-0.9.xで再生できなかった 『ハリー・ポッター』は xine-1で再生できるようになりました。 しかし別のDVDでは冒頭のあたりで音声が途切れ、フリーズ。
$ rm -fR ~/.xine で設定をクリアすると再生できたようですが、 正しい原因はよく分かりません。 フリーズするとXも一時機能が止まるので、あらかじめ起動しておいた仮想コンソールから
$ killall -KILL xine とすることで強制終了します。 あるいは Ctrl+Alt+F1 などでコンソールにログインし 同様コマンドでxineを強制終了し、 Ctrl+Alt+F7 あたりでもとのXに戻ることができます。

フリーズの原因は私の場合、オーディオドライバーとしてesdを使う場合のようです。
$ xine -A oss で起動してossの使用を指定してやれば安定して動いています。
ビデオドライバーも適切でないとトラブルを起こします。
$ xine -V xv などのように使用するビデオドライバーを指定できます。 有効なビデオドライバー、オーディオドライバーは
$ xine --help で表示されます。

あるいはGUIの設定ツールでドライバーを変更することができます。 ただし、設定ウィンドウが出たら「gui」のタブで「設定レベル」とあるところを 「Bigginer」から「Advanced」に変更、「適用」を押してから、 「audio」、「video」それぞれのタブでそれぞれのドライバを設定してください。

DVD 関連リンク

ご意見、ご質問は Linux BBS

Shino's Bar [MPEG最前線!] [お家で使うLinux]