QuickTimeスレッド・Part8

このエントリーをはてなブックマークに追加
484名称未設定
(*
スクリプト名:Export_as_MOV (名前はお好きなように)
用途:QuickTime Player で書き出しのバッチ処理をする。
要件:OS X、QuickTime6以降、QuickTime Pro
使用法:このスクリプトをアプリケーションとして保存。
 1. 動画ファイル(複数可)をこのスクリプトのアイコンにドロップ。
 2. QuickTime書き出し設定ファイル(別スクリプトで作成)を選択。
 3. 保存先フォルダを選択。
 4. 後は待つだけ。
その他:OS 9 で使う場合は
 1. スクリプト中の as Unicode text を as string に置き換える。
 2. say "finished" を削除。
 3. まだ他にもあったと思うが、もう忘れた!
*)
(* 続く *)
485名称未設定:04/09/16 00:27:23 ID:BUG6pvop
property timeoutHours : 48 -- 書き出しのタイムアウトするまでの時間。十分に大きな値にする。

on open dropitems
tell application "QuickTime Player"
activate
close every movie saving ask
set exportSettingsFile to choose file with prompt "QT Export Settings File"
set destinationDir to choose folder with prompt "Destination Folder"
repeat with inputFile in dropitems
set outputFileUtxt to (destinationDir as Unicode text) & my getBasename(inputFile) & ".mov"
(* 上の拡張子 ".mov" は書き出すフォーマットに応じて書き換えること。*)
(* 続く *)
486名称未設定:04/09/16 00:28:20 ID:BUG6pvop
try
open inputFile
with timeout of (timeoutHours * hours) seconds
export movie 1 to file outputFileUtxt as QuickTime movie using settings exportSettingsFile
(* 上の as QuickTime movie も書き出すフォーマットに応じて書き換える。
例:as MPEG4, as AIFF, as wave, ..., etc.『用語説明』の「export」を参照。*)
end timeout
close movie 1 saving no
on error errMsg number errNum
activate
beep
display dialog errMsg & " (" & errNum & ")"
try
close movie 1 saving no
end try
end try
end repeat
end tell
say "finished"
end open
(* 続く *)
487名称未設定:04/09/16 00:29:11 ID:BUG6pvop
-- ファイル名から拡張子を取り除くサブルーチン
on getBasename(theFile)
tell application "Finder" to set thisName to name of theFile
set thisList to string2list(thisName, ".")
if (count of thisList) > 1 then
return list2string(items 1 thru -2 of thisList, ".") as Unicode text
else
return thisName
end if
end getBasename

-- 文字列をリストに変換するサブルーチン
on string2list(theString, theDelim)
set lastDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to theDelim
set theList to every text item of theString
set AppleScript's text item delimiters to lastDelim
return theList
end string2list
(* 続く *)
488名称未設定:04/09/16 00:29:40 ID:BUG6pvop
-- リストを文字列に変換するサブルーチン
on list2string(theList, theDelim)
set lastDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to theDelim
set theString to theList as string
set AppleScript's text item delimiters to lastDelim
return theString
end list2string


(* エスケープ文字の入力が問題なければ、下の方が簡単。
on getBasename(theFile)
return do shell script "x=\"$(basename " & quoted form of POSIX path of theFile & ")\"; echo \"${x%.*}\""
end getBasename
*)

(* End of Script *)
489名称未設定:04/09/16 00:31:31 ID:BUG6pvop
(*
スクリプト名:Save_QTES-MOV (名前はお好きなように)
用途:QuickTime書き出し設定ファイルを作成する。
要件:OS X、QuickTime6以降、QuickTime Pro
使用法:このスクリプトをアプリケーション、またはコンパイル済みスクリプトとして保存。
 1. QuickTime Player を用いて、手動で QuickTimeムービー等を書き出す。
  (1、2秒の短いクリップで十分)
 2. ムービーのウィンドウは開いたまま、このスクリプトを起動する。
 3. 書き出し設定ファイルに分かりやすい名前を付けて保存する。
*)
(* 続く *)
490名称未設定:04/09/16 00:31:55 ID:BUG6pvop
tell application "QuickTime Player"
activate
if not (exists movie 1) then error "No movie is open."
stop every movie
set exportSettingsFile to choose file name with prompt "QT Export Settings File - MOV"
save export settings movie 1 for QuickTime movie to exportSettingsFile
(* 上の for QuickTime movie は書き出すフォーマットに応じて書き換える。
例:for MPEG4, for AIFF, for wave, ..., etc.『用語説明』の「save export settings」を参照。*)
say "finished"
end tell

(* End of Script *)
491名称未設定:04/09/16 00:39:27 ID:BUG6pvop
>>489-490 のスクリプトで保存した書き出し設定ファイルを使って
>>484-488 のスクリプトでバッチ処理をする。