cursor_major
cursor_major

Reputation: 21

Making a timelapse by drag and drop - A rebuild of an old script using ImageMagick

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

Answers (0)

Related Questions