Jpegloop: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
Line 25: Line 25:
== Fixing the filenames (zero padding with printf) ==
== Fixing the filenames (zero padding with printf) ==


  $() means "command substitution" -- or do what's inside the parentheses and then substitute the result
printf can be used to "zero-pad" a number (ie make a good filename from a counting number)
printf "%03d" 7
outputs:
007
 
 
  $() means "command substitution" -- or do what's inside the parentheses and then substitute the result. This can be used to store the result of running printf in a variable (to then use again)


<source lang="bash">
<source lang="bash">

Revision as of 16:50, 4 March 2013

Counting up

for ((i=1;i<=100;i++))
do
echo $i
done

Counting down

for ((i=1;i<=100;i++))
do
echo $i
done

Doing something

for ((i=1;i<=10;i++))
do
convert original.jpg -quality $i output$i.jpg
done

Fixing the filenames (zero padding with printf)

printf can be used to "zero-pad" a number (ie make a good filename from a counting number)

printf "%03d" 7

outputs:

007


$() means "command substitution" -- or do what's inside the parentheses and then substitute the result. This can be used to store the result of running printf in a variable (to then use again)
for ((i=1;i<=10;i++))
do
name=$(printf "%03d\n" $i)
convert original.jpg -quality $i output$name.jpg
done

Basic Loop

cp $j lastframe.jpg

for ((i=100;i>=1;i--))
do

name=$(printf "%03d\n" $((100-i)))
convert lastframe.jpg -quality $i output$name.jpg
cp output$name.jpg lastframe.jpg

done

ffmpeg -f image2 -i output%03d.jpg -r 10 $j.mp4

Apply to a directory of files

#!/bin/bash

for j
do
cp $j lastframe.jpg

    for ((i=100;i>=1;i--))
    do

    name=$(printf "%03d\n" $((100-i)))
    convert lastframe.jpg -quality $i output$name.jpg
    # COPY THE CURRENT TO "lastframe.jpg"
    cp output$name.jpg lastframe.jpg

    
    done
    ffmpeg -f image2 -i output%03d.jpg -r 10 $j.mp4

done