AviUtlのバッチ出力をタイマー設定で開始するツールを製作。 時間帯単価が安く温度の低い夜にエンコードしてエコ。 のつもりが眠さに負けて結局昼間に行うのに対する対策(笑) なんか最近こういうどうでもいいものを作るのが多い気がする。 (自動操作系ツール使えば実現できるはず)
メインのタイマー部。 ・指定時間にAviUtlを起動し、バッチを開始する。 ・特定アプリが起動していたら終了までバッチ開始を待つ。 ・バッチ終了後動作をAviUtlを終了にする。 ・特定アプリが起動しているとバッチを一時停止する。(バージョンダイアログ式) ・バッチ出力中に残数、ステータスをWindowsLiveMessengerに通知。 ・終了時にさらに別アプリを呼び出して終了する。
でバッチ終了後に実行するためのもの。 ・一定時間のカウントダウンを表示。 ・カウントダウン後にEpgTimer_Bonの休止ボタンを押す。 ・休止できない場合ダイアログが出るが、その場合はダイアログのOKを押して消す。
これで撮り終わったらエンコード開始、終わったら休止に入るが出来る。 まあAviUtl自体にも休止とかあるんだけど 予約のタイミングだとか安全性を考えるとEpgTimer_Bonでやるほうがいいし。 (あとどうしてもAviUtlが立ち上がりっぱなしになる) EpgTimer_Bonが常駐して無いと駄目とかあるけど、前提条件だから問題なし。
エンコード中断は念のため付けてみたけど別段必要ではない。 優先度で差をつけてあるから、エンコード中でもまずDropしたりしないし。 それでもまあ、やらないよりは安全というくらいなもんか。
メッセンジャー通知は監視用。 一応フォーマットも変更できるようにはしてある。 けどまあ、普段はメッセンジャー側でOFFにしてあるから余り意味なし。
休止を別アプリ化したのは幾つかの思惑から。 一つはEpgDataCap_Bon以外の環境でも使えるかもしれないという点。 もう一つはTimer本体側をEpgTimer_Bonの抑制条件に入れる都合上の問題。 録画終了時に休止に入る設定にしてるため、バッチエンコードに入るときは止めなきゃいけない。 そこでTimerを抑制に入れると終了時に休止を押しても抑制条件で阻止されてしまう。 その為Timer側は先に終了し、別アプリから休止を要求するという流れ。
実の所、タイマーを立ち上げると終了まで休止に入れないって問題はある。 (タイマー自体を抑制条件にしてるせいで番組間が開いていても休止しない) タイマー自体を更にタイマーで立ち上げるとかもあるんだけど、そこまではどうかと。 そんなに長時間待機するわけでもないので、現状は仕方ないと見てる。 上手い改善法が見つかったらまた考えよう。
|