最近作ったもの

  • I/O DataのMagicTV用で録画したファイルをOSのタスクスケジューラなどがアイドル時にDIVX変換を実行できそうなバッチを作ったが、動作確認が未だ取れていない。

MagicTV用で録画したファイルは実は mpeg形式のファイルであるということを知ってから、録画した動画はハードディスクの領域を簡単に圧迫してしまうので、簡単な方法で圧縮しておけないかと考えていた。コマンドラインで動画を変換するツールは mencoder が有名であるようだが、コマンドの使い方も手本もネット上で見つけることが出来なく、頑張ってフロントエンド系や内部でそのツールを使っているソフトウェアを探していると、MeWiGというツールが正しくそれであった。各画面のタブ右斜め下の進むを押すと勝手に次のタブ窓に進み、最後のタブ窓で生成されたバッチを取得する事が出来るというふうになっていた。というわけで、コマンドの生成部分はこれを便りにした。入力と出力を置き換えているだけなので、勿論細部のパラメータはそのままである。起動オプションが存在する場合はそのオプション値を部分的に反映させるというのもいいかもしれない。構造は以下のようになっている。

  1. フォルダリストの取得
  2. 一番新しいフォルダは録画中の可能性がある為、目的のディレクトリリストから省く
  3. フォルダリストを基に再帰処理-A に入る

    1. フォルダのポインタから /フォルダ名/フォルダ名.ini を読み込み、そのTEXTから出力先のファイル名を生成する
    2. GLOBを使用して同フォルダの *.HNLファイルのリストを取得
    3. ファイルリストを基に再帰処理-B に入る

      1. Countが1よりも大きい場合、基ファイル名を数値型変換して出力先のファイル名定義に追加する
      2. 入力ファイルと出力名が決まったのでコマンドの文字列を生成する
      3. 終了した後に元ファイルを消すを実行

    1. GLOBで取得したファイルリストの再帰-B終了
    2. カレントのポインタのディレクトリを rmdir で削除

  1. ディレクトリの再帰-A終了

 
勉強になった要素としては

  • HNLファイルはmpeg動画と変わりない
  • mencoderというコマンドライン変換ツールの存在
  • MeWIGというフロントエンド/コマンドラインジェネレータの存在
  • 自分は使ったことは未だ無いので知らないが、.mdbファイルには何かある
  • プライオリティを指定の為に /STARTコマンドを使う時の /B オプション(別プロンプト窓を開かない)