AviUtl を Python から自動操縦する
あじさんの「AviUtlControl」と同じ動作を Python ctypes のみで目指してみる、そんな試み。いや遊び。 4 日前から作っていたが、形になってきたので晒してみる。
- PyAviUtlLib(2009/9/20 更新)
名前は…pyaviutl.py 。うーん、考え直したほうがいいかも。 pyaviutlcontrol とか pyaviutllib とか? しっくりこない。でも名無しではまずいよなぁ。名前を PyAviUtlLib にしました。
使い方は、こんな感じ。「AviUtlControl」各種と同じ名前、同じ動作(をするかもしれない)の関数がある。引数の順序は Python の都合で入れ替わっていて、ウィンドウハンドルが後ろ。あと、ウィンドウハンドルは省略可能。
from aviutllib import * # AviUtl 立ち上げ hwnd = exec_(ur'C:\bin\aviutl\aviutl.exe') # ファイルを開く open(ur'S:\movie\spam.avi', hwnd) # AVI ファイルに(現設定のまま)出力 aviout(ur'S:\movie\ham.avi', hwnd) # 出力が終わるまで待つ wait(hwnd) # ファイルを閉じる close(hwnd) # AviUtl を終了する exit(hwnd)
バグもちの可能性大。普通に subprocess モジュールで「AviUtiControl」の exe を呼び出したほうが無難なのは確定的に明らか。
なので 4 日前作った subprocess を使って「AviUtlControl」を使うモジュールも再掲。