Hi In this post I will try to explain how I set up the Raspberry PI to take time lapse images and create full 25 fps videos.
You Will Need:
- Raspberry PI
- Camera Module
- PC to create the video files.
I will assume you have the Raspberry PI and camera module installed.
I personally use a laptop with WinSCP & Putty installed to remote admin the Raspberry PI. this allows me to position the PI anywhere I can get a wireless signal or patch to a network. (Tutorial coming soon!)
Log in as root. In your home directory create a file called timelapse – type the following lines of code:
SAVEDIR=/home/stills NUM=1; TOTALF=1000; SLEEPTIME=20; while [ "$NUM" -lt "$TOTALF" ]; do filename=$(date -u +"%d%m%Y_%H%M-%S").jpg raspistill -w 1280 -h 800 -t 0 -o $SAVEDIR/$filename NUM=`expr $NUM + 1` sleep $SLEEPTIME; done;
Save it and return to your command line.
You easily can modify the code: TOTALF being the number of frames to take and SLEEPTIME is the number of seconds to wait between shots (This is approximate – you need to add on the time it takes for the camera to take the image and store it – about 2 seconds) The resolution can also be changed in the above example its set to 1280 x 800.
Create a folder in your home directory called stills – use WinSCP or with command line/Putty – something like:
You are ready to start taking pictures!
To launch the script (directly from the PI or you can putty/ssh in)
Login and go to the home directory:
Run the script… (You will need space on your memory card!)
If you used the settings I left in the script it will take approx 7 hours to run and eat around 900MB of space on your memory card.
If you want to stop it early press CTRL+C to jump out of the script.
When the script is done the stills folder will be full of date stamped images…
To process the output and make a video…
To make this easy I am using a Windows 7 Laptop with WinSCP and Putty…
Connect to the Raspberry PI using WinSCP – You need to copy all the images from the PI to the PC. Navigate to /home/stills (in the right hand pane). On the left hand side Navigate to a folder to copy the images to.
click on one of the image files in the stills folder then press CTRL+A to select all files. Drag them all in one move to the windows folder on the left.
Depending on the image size and number of images this may take some time! (using the script defaults 900MB took around 7mins)
Now you have all the images on your PC we need to rename them to process. I like to use the Bulk Rename Utility as it offers many great features and is also free! Download and run the application (No install version works fine for me!) and navigate to your folder full of images. SORT THEM BY DATE! else the images will be out of sequence!
With the files listed in date order – press CTRL+A to select all images. Of all the settings below we only need to change 2…
Set the numbering mode to “Suffix” and File to “Fixed” (Type a filename). you should see the new name in green with a name and number with increment. (See below)
When all looks good press the Rename button at the bottom right and the files are renamed. Close the app…
Create the video
At this point I would recommend you have xvid installed to create encoded video files – this is not essential but will help save a lot of disc space!
To encode the video I am using VirtualDub a great FREE video processing tool.
Install and run VirtualDub.
From the file menu pick Open Video file. Navigate to your folder of images and click the first one. set the file type to Image Sequence:
click Open and the whole sequence of images will load into VirtualDub.
Select Video->Frame Rate menu item and set the frame rate (I set mine to 25fps)
Next – Set the video compression – on the Virtualdub menu select Video -> Compression. I set mine to xvid for a smaller output file if you do not have this select cinepak/intel/microsoft.
Finally select File -> Save as AVI and give your final output a filename.
The video is now ready to watch using Windows media player, VLC or transfer to your media device. This file can also be uploaded directly to youtube – depending on your internet bandwidth you may need to scale the images down or shrink the video further as the output files can quickly become quite large!