04/29 QuickTime 7で録画して任意のファイル名で保存
QuickTime Player 7+Mac OS X 10.7で、所定の時間だけムービー録画(おそらく、内蔵のiSight/Face Time Cameraから取り込み)を行い、指定のパスにファイル保存を行うAppleScriptです。
コメント欄の質問から、試しに組んでみましたが……意外と試行錯誤が必要でした。
所定時間だけ録画する、というScriptは簡単です。しかし、録画内容を別のパスに保存するというのがなかなかやっかいです。本来のQuickTime Playerの機能にのっとって処理することを考えるなら、指定の(あらかじめ保存してある)ムービーファイルから保存形式などを読み取って、その内容に基づいてムービーを「export」することになります。
しかし、そこまでまじめに処理をやりだすと相当の長さになってしまうため、サンプルとしてはいささかおおげさです。
そこで、とりあえずQuickTime Playerの設定に基づいて「ムービー 1.mov」などといったファイル名で保存を行わせておき、そのフルパスを取得。ムービーをクローズしたのちに、一時保存したファイルを指定パスに移動させればよいだろう、と考えてこのようなものに。
録画時間の指定にdelay命令を用いていますが、あくまで説明を簡単に行うために用いているものであって、本来はidleハンドラを使ってタイマー割り込みで実装するべきです。
| スクリプト名:QuickTime 7で録画 |
| property recTime : 3 –録画時間(秒で指定する)
set aFilepath to choose file name with prompt "ムービーを保存するファイル名を入力" set outFilepathPOSIX to POSIX path of aFilepath tell application id "com.apple.quicktimeplayer" –確実に処理を行うためにムービーをすべてクローズ close every document without saving –録画開始 new movie recording start recording 1 end tell –録画時間経過待ち delay recTime –秒単位でウェイト(ちょっとバカっぽい処理。本来はタイマー割り込みで時間待ちすべき) tell application id "com.apple.quicktimeplayer" –録画停止 stop recording 1 –この操作で、QT7の設定に従ってムービーが保存される delay 1 –時間待ち tell document 1 set originPath to original file –保存先のファイルのパスを取得しておく close end tell end tell –QT Player 7が自動保存したファイルを移動&リネーム –ただし、自動保存したファイルのパスと移動先の衝突判定は省略 set movieOriginalFile to POSIX path of originPath set sText to "mv " & quoted form of movieOriginalFile & " " & quoted form of outFilepathPOSIX do shell script sText |
