MPEG22AVI(仮)作成日記 1

たまにはこっちも書くか。


さて、俺は普段、CanopusのMTVシリーズを使って、TV番組を録画している。
そして、録画した番組を圧縮して保存をしているのだが、この作業はかなり煩わしい。
では具体的にどういう作業を行っているのかと言うと、

  1. CMカッターでCM部分をカットする
  2. DVD2AVIで音声と映像を分離し、プロジェクト形式で保存する。
  3. 音ずれを補正し、正規化する(音整)
  4. 音声を圧縮する(LIFE等)
  5. AVSファイルを編集し、フィルタを設定する。
  6. VirtualDubModで圧縮。


これを図に表すと

こんなかんじの流れ。


ここで、実際はCMカット以外の作業は全部機械的な作業になる。
人が判断してあげないといけないのはCM部分の選出だけだ。
となると、ソフトを使って簡略化したいと考えるわけだ。


そこで長らくは、マクロソフトである、UWSCを使ってマクロ操作をしていた。
このUWSCというソフトはかなり優秀なマクロソフトで、
単純なキー、マウス操作を記録して再生するような使い方のほかにも
スクリプト形式で書くことにより複雑な操作も可能になる。
ファイル操作や、アプリケーション操作等、かなり多彩。
これを使いこなせれば相当色々な事が出来る。


実際のところ用途としてはこれで十分なのだが、
あとは俺のソフト作成欲が沸いてきて、
実際に自分でネイティブなアプリケーションを作りたくなったわけだ。


という事で色々苦労しながらもプロトタイプは完成。

こんな感じのGUI。実装はDelphi6 personal。


これを作る上で新たに学んだ知識としては、
アプリケーションからのリソース抽出や
ウィンドウハンドラ操作だな。


他のアプリケーションを操作する時に、
キーボードコマンドを与えてもいいのだが、
その場合キーフォーカスの問題がでてきたりする。
(例えば保存するためにCTRL+Sを送る)


それよりもリソースを覗いて、コマンドに対応する命令コードを直接送ってあげた方が安定する。
この作業を経て、外国ソフトの日本語化は技術的には簡単なんだな、という事が理解できた。
もちろん、リソースが読めないソフトはどうするのかとか、それ以前の英語力の問題はあるけどね。
やる気になれば、ソフトのコマンドを全部ヲタ仕様にする事も容易だな。
「ファイルを保存する」を「ファイルを保存するの」とか「ファイルを保存するべさ」とかにするのは余裕だ。


話がそれたが、上の操作は一通り出来るようになった。
元々UWSCでのマクロスクリプトは完成していたから、その処理を移植するだけだからな。
ただ、当然ここから更に機能の向上を目指している。


今は、VirtualDubModに一々全部コマンドを送っている。
具体的に書くと、

  1. 「AVSを開く」
  2. 「Streamを開く」
  3. 「コーデックを選択する」
  4. 「フレームレートをあわせる」
  5. 「保存する」

という作業を行う。

これは実はjobを設定しているファイルを直接編集するか、
新規に作ってVDMで読み取らせれば余計な操作をせずに済むのではないか、
と考えたわけだ。


ちなみに俺がやっている事に近い機能を持ったソフトは既に存在している。
DivX/XviD 60fps(120fps)化計画のページのReena! というソフトだ。
AVISYNTHのフロントエンドCMカットとはっきり行って目的はほとんど同じ。
ソフトのつくりも所詮素人の俺よりはいい感じに作っている。
でも、更新をしていない事、自分で作りたい事から作成をしているという事。




あとはソフト名が決まってないので何かいい名前を考えたいな。
大募集中です。