前回の単にxineをデスクトップマシンで再生して、その映像のみをThinkPad560にsshで送りこむという醜態を演じてしまったthinkpad560e DVD再生計画であったが、いちいちデスクトップマシンを起動しなければならないというデメリットがあった。
今回、Thinkpad560単独での再生に成功したので報告する。 前回再生に使用したxineだが、その後もplamo-contribにあるパッケージの改良がすすんで再生途中でハングすることもなくそれなりに快適にDVDを見ることはできるようになっている。しかし、デスクトップマシンはi815eにPentium III 800Mhzという電力バカ喰いマシンであるのであまり起動せずにすませたい。
また、映像は手元のノートマシンには送れるけれど、サウンド部分はXはこれを関知しない部分でもあり、こちらは転送できずにいる。 かつそれができたとしても安物のネットワークカードの転送能力はいいとこ600kbyte/sといったところであり、ここにオーディオをのせるのは得策ではない。
やはり、ノートマシン単独で再生できるほうが便利である。
さて、前回のxineのほかにMPlayer というフリーの映像再生ソフトがあり、これはマニュアルには
You can watch VideoCD, SVCD, DVD, 3ivx,DivX 3/:4/:5 WMV movies, MPEG/:VOB, AVI, ASF/:WMA/:WMV, RM, QT/:MOV/:MP4,
とあり大抵の映像・音声ファイルが再生できる。しかも再生がXwindowだけではなく、フレームバッファに直接出力することもでき、svgalibを使ってコンソールに再生することもできさらにaalibを使ってアスキーアートでDVDを再生することもできるというすぐれものである。
ところでこのMPlayerだが DVDの任意のタイトルの任意のチャプターをaviやmpegといった映像ファイルに変換するという機能を有している。そこでデスクトップマシンでもってDVDをaviファイルに変換してやり、これをノートマシンに転送、ハードディスクにおさめ、これをThinkPad560eで再生するならば見かけ上は単独再生できることになる。
こういうプランでやってみる。
今回必要なものはMPlayerである。webまたはftpでもってMPlayer-0.91.tar.bz2を拾う。ついでにaalib-1.2.tar.gzも拾っておくとよい。 aa-libのほうは
$ tar xvzf aalib-1.2.tar.gz $ cd aalib-1.2 $ ./configure $ make $ su -c "make install"
とまあこんなかんじでよい。しかしアスキーアートを使用しないならなくてもよい。
$ MPlayer-0.91.tar.bz2
のほうは
$ tar xvIf MPlayer-0.91.tar.bz2
とするが、このxvIfのあたりはtarのバージョンによってxvjfだったりする。
$ bzip2 -dc MPlayer/MPlayer-0.91.tar.bz2 |tar xv
とするのが無難というものかもしれない。
さて、一般には このあと
$ cd MPlayer-0.91
とし、
$ ./configure
としてコンパイルの準備をするけれどGUIの操作パネルがよいというひとは
$ ./configure --enable-gui
とする。この場合はGtkなんかが必要だったりするらしいが未確認である。
このあと
$ make $ su -c "make install"
でコンパイルとインストールは完了する。このディレクトリィには DOCSというサブディレクトリィがありhtml形式のマニュアルがある。どこかにコピーしておくとよいであろう。
この作業をノートマシンとデスクトップマシンの両方でする。
さて、まずはエンコードである。
$ mencoder -dvd 2 -o output.avi -oac copy -ovc lavc
この
-dvd 2
というのは入力が、DVDのtitle 2 つまり二番めの映像ということを示している。
その中のチャプターをさらに指示するときには
-chapter 3-5
などとすると、3から5までのチャプターを指定できる。
-o output.avi
で出力ファイルを指定する。ネーミングは任意である。拡張子はmpgやqtwなどとしてもよいが出来るのはいずれにしてもaviである。ややこしいことはせぬがよい。なお、mpegを出力したい場合は -of mpeg というオプションをつければよいのだが、困ったことにこうするとオーディオトラックが乗らない。これは現バージョンの問題なのでもっと後のバージョンでは解消しているかもしれない。
-oac copy
これは、オーディオトラックのコーディングで -oac lame などとするとlameでもってmp3コーディングしてくれるようだが、再生するときに厄介なことになるかもしれぬ。
-ovc lavc
ここはビデオのコーディングで、-ovc copy としてやれば画質は最高によいけれど凄まじく大きなファイルができる。-ovc divx4 とか -ovc divx5 あるいは -ovc qtvideo -ovc vfwなどとすればそれぞれクイックタイムやビデオフォーウインドウズなんかにもコーディングしてくれるようである。が、とりあえず今回の目標からはbest quality とMPlayer自身の推奨する-ovc lavcとする。
なお -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 および -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 などとするとmpeg4にもしてくれるらしいがわたしはmpeg4というやつがいまいちよくわかってないのであった。
とりあえず、108Mbyteであった。この程度ならノートマシンに転送しても充分見ることができる。
さて、再生実験である。こんどの呪文はらくちんである。
$ mplayer output.avi
以上である。 再生すると、一見無事に見える。が、こういうメッセージがktermにでている。
************************************************ **** Your system is too SLOW to play this! **** ************************************************ Possible reasons, problems, workarounds: - Most common: broken/buggy _audio_ driver - Try -ao sdl or use ALSA 0.5 or the OSS emulation of ALSA 0.9. - Experiment with different values for -autosync, 30 is a good start. - Slow video output - Try a different -vo driver (-vo help for a list) or try -framedrop! - Slow CPU - Don't try to play a big DVD/DivX on a slow CPU! Try -hardframedrop. - Broken file - Try various combinations of -nobps -ni -forceidx -mc 0. - Slow media (NFS/SMB mounts, DVD, VCD etc) - Try -cache 8192. - Are you using -cache to play a non-interleaved AVI file? - Try -nocache. Read DOCS/video.html and DOCS/sound.html for tuning/speedup tips. If none of this helps you, read DOCS/bugreports.html.
どうやらこのマシンはビデオとCPUに根性がたりないようである。根性がたりないとどうなるかというと映像の再生が音声の再生に全然追いつかないのである。見ているうちに音声がどんどん先にいく。
やはりXwindowに映像を出すとそれなりに重いようである。ここはコンソールに文字を出すのが得策というものであろう。というわけでXwindowを終了してコンソール上から
$ mplayer -vo aa output.avi
おとなしく、一万円くらいのDVDプレイヤとテレビでみるのがいちばんのようである。
2003/10/17