Bash trix

10Feb08

Jag fick ett ryck tidigare i dag och uppdaterade mitt script som skapar en mpg film av en serie bilder. De som hade tittat på min förra “film” tyckte att man inte hade tid att njuta av bilderna. Ett annat problem var att det fungerade inte så bra att blanda formfaktorer på de olika bilderna. Nu är problemen lösta, men jag upptäckte att de skulle kunna vara att kolla i fall bilden är exif-roterad eller ej.

Här är version 1.1 av scriptet.

#!/bin/bash
#Desc: Ett mindre fint bashscript för att skapa en mpeg-film av ett gäng bilder
# med morphad övergång mellan bilderna. Scriptet kräver ffmpeg och ImageMagick.
#Version: 1.1
#Coder: Fredrik Persson
#E-mail: perrascout@linux.se
#Download/webpage:
#Licens: BSD
#TODO: Exif-rotation?

declare -i I
declare -i J
declare -i K
declare -i L
declare -i STILLS

SIZE=640x480
I=0
J=0
M=0

mkdir ./tmp

#skala om den svarta bakgrunden.
convert -resize $SIZE ./back.png ./tmp/back.png

for files in *.jpg; do
  I=$I+1
  convert -resize $SIZE $files ./tmp/n$I.jpg;
  composite -gravity center ./tmp/n$I.jpg ./tmp/back.png ./tmp/n$I.jpg;
done

echo $I

L=$I+1

while [ $J -lt $I ]
do
  J=$J+1
  K=$J+1
  if [ $K -lt $L ]
  then
    mkdir ./M$K
    echo "Doing morph " $J " of " $I " ... Please wait...."
    convert -morph 100 ./tmp/n$J.jpg ./tmp/n$K.jpg ./M$K/morph.jpg
    STILLS=102
    while [ $STILLS -lt 151 ]
    do
      cp ./tmp/n$K.jpg ./M$K/morph-$STILLS.jpg
      STILLS=$STILLS+1
    done
    echo "Encode morph " $J " of " $I " ... Please wait...."
    ffmpeg -s $SIZE -i ./M$K/morph-%d.jpg part$J.mpg
    src=$src" "part$J.mpg
    echo "Done..."
    rm ./M$K/*.*
    rmdir ./M$K
  fi
done

cat $src > final.mpg
ffmpeg -i final.mpg -sameq output.mpg

rm part*.mpg
rm final.mpg
rm ./tmp/*.*
rmdir ./tmp
About these ads


2 Responses to “Bash trix”


  1. 1 En dag i Alnarpsparken - Filmen « Perras blogg om sånt som inte passar ihop
  2. 2 uppdatering av filmscript « Fredriks blogg om allt möjligt (och lite till)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: