Reputation: 21
I have written an apple script previously to automate a task I do in my work many times.
I shoot Raw + JPG in camera, copy to hard drive.
I then drag named and dated folder eg. "2019_08_14_CAM_A_CARD_01" on to an automator app and it divides the files in to folders "NEF" and "JPG" respectively.
I then drag the appropriate "JPG" folder onto my Timelapse app and it runs the image sequence process in QT7 and then saves the file with the parent folder name in the grandparent folder. This keeps things super organised for when I want to re link to the original RAW files.
[code below]
It is a 2 step process and works well for my needs, however, Apple are going to be resigning Quicktime 7 Pro so my app has a foreseeable end of life.
I want to take this opportunity to refine and improve the process using terminal and ImageMagick.
I have managed to work some code that runs well in terminal, but I have to navigate to the folder first then run a script. It doesn't do the file renaming and doesn't save in the right place.
Also, when I try and run the simple script in an automator 'App' it throws up errors even before trying to add anything clever with the file naming.
Later, once I have recreated my timelapse. maker app I want to get clever with more of ImageMagicks commands and overlay a small super of the original frame name in the corner so I can expedite my reconnecting workflow.
I'm sorry, I'm a photographer not a coder but I've been bashing my head trying to work this out and I've hit a brick wall.
File Sorter
repeat with d in dd
do shell script "d=" & d's POSIX path's quoted form & "
cd \"$d\" || exit
mkdir -p {MOV,JPG,NEF,CR2}
find . -type f -depth 1 -iname '*.mov' -print0 | xargs -0 -J % mv % MOV
find . -type f -depth 1 -iname '*.cr2' -print0 | xargs -0 -J % mv % CR2
find . -type f -depth 1 -iname '*.jpg' -print0 | xargs -0 -J % mv % JPG
find . -type f -depth 1 -iname '*.nef' -print0 | xargs -0 -J % mv % NEF
for folder in `ls`;
do if [ `ls $folder | wc -l` == 0 ]; then
rmdir $folder;
fi; done;
"
end repeat
end open```
Timelapse Compiler
```on run {input, parameters}
repeat with d in input
set d to d's contents
tell application "Finder"
set seq1 to (d's file 1 as alias)
set dparent to d's container as alias
set mov to "" & dparent & (dparent's name) & ".mov"
end tell
tell application "QuickTime Player 7"
activate
open image sequence seq1 frames per second 25
tell document 1
with timeout of 500 seconds
save self contained in file mov
end timeout
quit
end tell
end tell
end repeat
return input
end run```
Current code that runs from within Terminal after I have navigated to folder of JPGs
```ffmpeg -r 25 -f image2 -pattern_type glob -i '*.JPG' -codec:v prores_ks -profile:v 0 imagemagick_TL_Test_01.mov```
Upvotes: 2
Views: 152