Blog

LinuxさんでDVD-Videoヤキヤキの覚え書き。

By Hiroyuki OYAMA Mon Dec 22 03:19:32 2003

我が家のHDDビデオレコーダのディスク使用量が連日95%付近をうろつく今日この頃。録画済みの演劇をDVD-Videoに焼いて退避させるよう以前から妻に依頼されていたのですが、結線しなおすのと手順を忘れ(おぃ)ていて面倒だったので後回しにしていました。手順を忘れないようにメモ。。。

今時80Gbyteじゃもちませんね。

我が家のHDDレコーダは80Gbyteというヨワヨワな容量にも関わらず、連日スタートレックの再放送を一日平均3時間ずつ録画しています。まともな会社員がこのペースの録画を消化できるわけも無く、1ヶ月前に録画したヤツが余裕でHDDに残るわけでさすがにオーバーフロー気味。スタートレックだけならば画質を落として録っているのでジャブ程度にしか効きませんが、予約せずに録画した物はビットレート高くキャプチャするように設定してあるので何気にレバーブローなのです。しかも5月頃に録った4時間50分とか金的並みのヤツが未だに残っています。
ところが我が家のCocoon(の最下位機種)にはDVD-RやEthernetなんてチャラチャラした物は付いていません。なのでCocoonからLinux boxへダビングした上でDVD-Videoにする必要があります。当たり前ですがダビングって壱倍速な時間を要するんですよね。。。土日を使って合計約9時間分を処理しました。

前書いた通りiTVC15系のハードウェアエンコーダなキャプチャカードを刺しているので、何も考えずに音声こみこみのmpegなストリームを/dev/video0あたりからモリモリキャプチャできます。でもってDVD-Videoに落とし込むにはこのデータをファイナライズしてDVD-Videoの形式に変換(というか整形?)する必要があります。

LinuxにおけるDVD-Videoへのファイナライズ

ハードウェア以外は全部タダが信条なもんで、売り物のオーサリングツールなんかは使いません。というわけで私はdvdauthorというツールを使います。dvdauthorはシンプルなDVDオーサリングツールで、カッコいいGUIも気の利いた編集機能もありません。そのかわり、単純にDVD-Videoに落としたいときにはshellで自動化できるのでらくちんなのです。ドキュメントによるとDVDメニューやチャプターの設定やその他諸々できるようなのですが、私は一般のデータソースをプレステ2で見れれば良いので、チャプター割りもなし・メニューもなしで使っています。
元のデータがmoemoe.mpgとすると、下記のような手順でファイナライズします。
$ dvddirgen -o moe.dvd
$ dvdauthor -o moe.dvd moemoe.mpg
$ dvdauthor -T -o moe.dvd
dvdauthor付属のdvddirgenコマンドでディレクトリを作成し、続いてdvdauthorコマンドでディレクトリにデータソースを配置します。最後にdvdauthorコマンドに-Tオプションを付与してTable of contentsファイルを作成し終了です。詳しくはdvdauthorのドキュメントを参照のことです。

ディスクイメージの作成と書き込み

DVD-Videoの元データが用意できたら今度はDVD-Rに書き込むためのisoイメージを用意して書き込みます。ここいら辺はフツーに作ります。
$ mkisofs -dvd-video -udf -o moe.iso moe.dvd/
イメージが出来上がったらブランクのDVD-Rのメディアを挿入し、dvd+rw-tools付属のgrowisofsコマンドでイメージを焼き付けます。
$ growisofs -dvd-compat -Z /dev/cdrom=moe.iso
メジャーなDVD-R*ドライブならばdvdrtoolsでいけるのでしょうが、私が使っている東芝のSD-R5002では書き込み中にシステム全体がハングする問題が起こっていたのでdvd+rw-toolsを使うようにしています。最新のリリースはめんどくさいので調べていません。

焼き付け終わるとメディアが排出されるので、あとは中間ファイルをお掃除して終了。
$ rm -rf moe.dvd/
っと、手数だけ見ると煩雑なのですが、例外処理や職人芸も知性も不要な作業なので、こんな風なシェルスクリプトを書いておけば、録画完了後にDVD-Rにヤキヤキ、、、といった作業も手をかけずに処理させることができます。
#!/bin/sh

SRCNAME=$1
if test ! -s "$SRCNAME"; then
    echo "Usage: $0 source.mpg"
    exit -1
fi

SNAME=`echo $SRCNAME | sed s/\.mpg$//`

# finalize 
dvb-mplex -t DVD -o "$SNAME".dvd.mpg $SRCNAME
dvddirgen -o "$SNAME".dvd
dvdauthor -o "$SNAME".dvd "$SNAME".dvd.mpg
dvdauthor -T -o "$SNAME".dvd

# write to dvd
mkisofs -dvd-video -udf -o "$SNAME".iso "$SNAME".dvd/
if test -e "$SNAME".iso; then
    growisofs -dvd-compat -Z /dev/cdrom="$SNAME".iso
fi

# cleanup
rm -rf "$SNAME".dvd/ "$SNAME".dvd.mpg
あーもしかするとdvd-mplexしなくていいのかも。。未確認です。

今後

とりあえずnForce2オンボードのS端子経由でテレビにXな画面を表示するところまではできているのですが、結局USBキーボードつないで作業したり、ノートパソコンからsshして作業していたりするのでとっても効率が悪いのです。なんかカッコイイUser I/Fをでっち上げないとまた子供にデンプチされても気づかれないまま1ヶ月放置とかいう状態になりかねませんね。WebのI/Fが楽なのですが、なんか負けのような気もするんですよね。いや、カッコいいヤツを作れば良いんですが、多分情熱が続かないので却下。GNOMEをもうすこしまじめに触るか。それもなぁ。。。

Comments

Post a comment

Name:


URL:


Comments:


WebエンジニアのためのApacheモジュールプログラミングガイド

ApacheをHackする!
モジュールプログラミング強烈初体験!!
定価: 2,919円(税込)
ISBN: 4-7741-1799-4

hiroyuki_oyama IM status

Apache Users

Apache Modules

CPAN


Home > Blog > LinuxさんでDVD-Videoヤキヤキの覚え書き。