日々適当

hibitekitou

QuickTime Playerで開いている動画から手軽に静止画を書き出したい

mac |2021-11-10

テスト用に静止画をたくさん取得する必要がありまして、手軽なのは適当な動画から静止画を必要枚数だけ出力することかなと思いました。
QuickTime PlayerをAppleScirptで制御して適当に静止画を書き出してやればいいじゃんって思ったら、そういえば、QuickTime Playerは静止画書き出しがスクリプトからはできないのでした。(コピーしてクリップボードに入れて、それを静止画を扱えるアプリケーションで保存してやるって方法ならできる。つまりはSystemEventsを使えばいいけど、書くのが面倒)

ということで、Homebrewを使えばインストールが簡単なffmpegを使うことにしました。QuickTimeで開いてる動画ファイルから静止画を書き出してやる、って内容です。そのやっつけスクリプト。

set fileCount to 100 --100枚書き出すという設定
set outDirectory to "~/Desktop/TEST/outImageFile_" --デスクトップのTESTフォルダにoutImageFile_って名前で書き出す設定

set curCount to 0
set curTime to 0

tell application "QuickTime Player"
	activate
	set movDoc to front document
	set movFilePath to POSIX path of (file of movDoc as alias)
	set movDur to duration of movDoc
end tell

set intervalTime to movDur / fileCount

repeat fileCount times
	set curTime to curTime + intervalTime
	
	set cmd to "/usr/local/bin/ffmpeg -ss " & curTime & space & "-i \"" & movFilePath & "\" -vframes 1 -q:v 1 -f image2 " & outDirectory & curCount & ".jpg"
	do shell script cmd
	set curCount to curCount + 1
end repeat
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。