MPEG に変換したビデオはそのまま PC 用ファイルとして保存したり他人にあげたりしてもいいんですが、PC を使わない人には渡せませんので家電で再生できるようにしておきたいですね。DV の映像はそのまま VHS にダビングすればいいじゃん等の意見も出てきそうですが、VHS テープは送るのが面倒そうだし、(これからやろうとしている) CD-R などより割高です。また、せっかくだからデジタルなことやりたいですね。
デジタル映像メディアと言えばなんといっても DVD でしょうが、書き込み可能 DVD はまだ装置もメディアも高価です。(プレーヤすら持っていないし) そこで今回は Video CD 作成に挑戦です。Video CD なら大抵の DVD プレーヤで再生できます。
1. MPEG1 ファイルの作成
2. VCDImager のインストール
3. VCD イメージの作成
4. CDRDAO のインストール
5. VCD イメージの焼き込み
6. 再生の確認
$ lav2wav abc.avi|mp2enc -V -o temp.mp2
$ mplex -f 1 temp.mp2 temp.m1v -o abc.mpg
$ lav2yuv abc.avi|yuvscaler -O VCD|mpeg2enc -o temp.m1v
[一行目 mp2enc の -V オプション]
mp2enc の -V オプションは、-b 224 (ビットレート 224kbps)、-r 44100 (サンプリング周波数 44100Hz)、-s (ステレオ) という Video CD で必須のパラメタをまとめたものです。この場合、-b オプションで 224 以外を指定すると、224 以外ダメだ、と怒られ音声を作ってくれません。強制 224bps なので、-b オプションは必要有りません。
[二行目 mplex の -f 1 オプション]
mplex の -f 1 オプションは Video CD の Format Code で映像と音声を合体します。
[三行目の yuvscaler]
lav2yuv と mpeg2enc の間に yuvscaler を -O オプション付きで咬ませてサイズを Video CD 用の 352x240 にします。 yuvscaler は縮小のみで拡大はできないため、これより小さいサイズの映像を yuvscale を咬ませて変換させようとすると、拡大はできません、と怒られて終了してしまいます。xawtv などでキャプチャする場合はサイズを 352x240 以上にしておきましょう。
以上のことを自動化するため、自作の Motion JPEG → MPEG1 変換スクリプトでは Video CD 用に以下のオプションを用意しました。
-v: mp2enc に -V オプションを、mplex に -f 1 を入れる
-yv: lav2yuv と mpeg2enc の間に yuvscaler -O VCD を咬ませる
要するに、以下のようにします。
$ avi2mpg -i abc.avi -v -yv -o abc.mpg
これで、Video CD 用 MPEG1 のでき上がりです。
GNU VCDImager のページから、vcdimager-0.6.2-1.i386.rpm をとってきてインストールします。
# rpm -ivh vcdimager-0.6.2-1.i386.rpm
それだけ。
$ vcdimager --bin-file=abc.bin --cue-file=abc.cue --iso-volume-label="Test VCD" abc.mpg
とすると、abc.bin と abc.cue ファイルができます。--bin-file と --cue-file を指定しないとそれぞれ、videocd.bin、videocd.cue というファイルができます。
# rpm --rebuild pccts-1.33mr22-1.src.rpm (ソースのビルド)
# rpm -ivh /usr/src/redhat/RPMS/i386/pccts-1.33mr22-1.i386.rpm (できたバイナリのインストール)
# rpm --rebuild cdrdao-1.1.5-2.src.rpm (ソースのビルド)
# rpm -ivh /usr/src/redhat/RPM/i386/cdrdao-1.1.5-2.i386.rpm (できたバイナリのインストール)
$ cdrdao write --device 1,0,0 --driver generic-mmc abc.cue
私の持っている CD-R ドライブは CDRDAO のドライバリストに入っていないので --driver オプションで generic-mmc を指定しています。しばらくすると書き込まれます。
でき上がった CD は ISO9660 ファイルシステムとしてもマウントできます。マウントすると cdi、ext、mpegav、segment、vcd というディレクトリがあります。mpegav の中の *.dat と言うファイルが MPEG ファイルです。拡張子を mpg に変更すると、Windows で再生できます。
# rpm -ivh mtv-1.2.5-1.i386.rpm
このうち GUI の mtv はシェアウェア、コマンドラインの mtvp (ただ再生するだけ) はフリーウェアです。再生するには、
$ mtvp vcd:
とします。
しかしこれでは真の確認とは言えません。家電で再生できなければ。そこで近くの電気屋の DVD プレーヤで再生させてもらいました。ばっちり再生できました。しかし画質はさすがに良くないです。352x240 という解像度は VHS 並みということですが、圧縮のためブロックノイズが目立ちます。やっぱ DVD まで作りたいですね。来年あたりは DVD+/-RW ドライブでも買って挑戦してみたいです。