Oct 242016

A while ago, I setup my Motion server to send me snapshots of any motion detected when a picture is saved by motion.
Continue reading »

Jan 132016

If you’re a regular reader of my blog, you’ll know that I’ve set up a Motion daemon to monitor one of my IP Cameras.

Recently, I decided to also make a graph of the motion so that I easily track when motion was detected from my IP Camera. This was easily done with the Zabbix agent as I could send data straight into a Zabbix item with zabbix_sender.

Continue reading »

May 212013

I recently had an email from one of my readers enquiring about making timelapse videos with the Raspberry Pi.

Since I already had a webcam connected to one of my Pis, I set about making it take timelapse shots.
There are a myriad of ways to accomplish this, but I decided to use motion as it took the least configuration to get it to do what I wanted it to do.

Getting motion was as easy as apt-get install motion on my Raspbian powered Pi.
I also needed mencoder to encode the resulting images into a video. Mencoder is also found in the repositories, so a quick apt-get later and I also had mencoder installed.

In order to get timelapse shots, I had to setup motion to take pictures at intervals.
On line 295 in the default motion.conf, there is this following line

snapshot_interval 0

Change that to the number of seconds between each snapshot.

snapshot_interval 5

I’m also allowing remote access to the webcam so that I can check in on it.
On lines 413 and 429, change the webcam_localhost and control_localhost to off.

After changing those, I restarted the motion daemon for the changes to take effect.
Once motion is started, you will start seeing files in /tmp/motion (or wherever you decided to save the files)
The ones ending in -snapshot.jpg are the ones that we will be using for the timelapse movie.
If you have motion detection activated, you will see other files in the directory but we can ignore those.

To create the movie, we are going to use mencoder. This part could also be done with ffmpeg, which I may cover in a later post.
I wrote up a small script to run the mencoder command –

mencoder mf:///tmp/motion/*-snapshot.jpg -mf w=320:h=240:fps=25:type=jpg -ovc copy -oac copy -o output.avi

The resolution (-mf w=320:h=240) should match the resolution setup in motion.
When the script is run, it will take all files in /tmp/motion/ that end in -snapshot.jpg and make a movie out of them. The output file is set by the -o switch, in this case I’ve used output.avi.
Setting this script to run once a minute for example, will keep the timelapse video up-to-date to the last minute.

Once the file has been created, you’ll be able to view the file on another computer very easily.
The only issue with this timelapse movie, is that it will keep getting longer and longer and longer, as there is nothing cleaning up the old files.

So what we’ll do, is add an extra line into the script to remove any files older than a certain time, and that way we can control the length of the timelapse movie.
If we wanted to make the timelapse movie 10 minutes only, we’d add the following line before the mencoder line

find /tmp/motion -name "*.jpg" -type f -mmin +10 -delete

Resulting in this

find /tmp/motion -name "*.jpg" -type f -mmin +10 -delete
mencoder mf:///tmp/motion/*-snapshot.jpg -mf w=320:h=240:fps=25:type=jpg -ovc copy -oac copy -o output.avi

That way, whenever the script is run, we’ll have a 10 minute long timelapse video !

Feb 192013

Just finished my first video tutorial !

This will guide you from a fresh install of Raspbian Server Edition all the way through to getting snapshots in your email.

Would love to hear some feedback on this, positive or negative πŸ™‚

Feb 182013

I recently setup motion on my Raspberry Pi so I could stream a Logitech c110 to my Android phone. That was successfully setup in this post.

Next step was to start sending the snapshots to my email address when motion was detected. That way I could see if anything was being detected without having to log into the Raspberry Pi itself.

As I started off with RSE, there is no mail daemon installed, so that’s the first thing I need to do.
sudo apt-get install postfix

Configuration for postfix will depend on where you want email to be routed to. I will be sending it to GMail, and my ISP needs the mail to go through their mail server, so I selected Internet with smarthost
Next thing to setup is the local mail client. There are a few options, but in this post we will use heirloom-mailx.
sudo apt-get install heirloom-mailx

We can test out the Postfix install by attempting to send a test email with our newly installed mail client now !
echo 'hi' | mail -s Test <Your Email Address>
This will send an email to your email address with a body text of “hi” and the subject of “Test”.
If you receive it, congratulations ! Your Pi is now emailing out.
If not then you may need to check your junk mail to see if it got junked.
If there are any issues getting the mail out, running mail on the Pi will launch the mail client in which you will see any failed attempts to send an email.

Once Postfix and the local email client is setup, it’s time to configure motion.
If you’re only running one camera, in /etc/motion/motion.conf at approximately line 521, you should see this
; on_picture_save value
This is the line that configures what motion will do to a file once it is saved.

What we will do, is setup motion to attach the file to an email, and send it to your email address when motion is detected and a file is saved.
To do that, change line 521 to the following –
on_picture_save echo 'webcam alert' | mail -a %f -s "Webcam Alert" <Your Email Address>
Make sure you remove the ; at the beginning as that denotes a commented out line.
The ‘webcam alert’ text can be changed to whatever you want in your version.
Running mail with the -a command line argument will attach the file specified, in this case it is %f, which is motion’s variable for the saved file.

Once that is done, restart motion with /etc/init.d/motion restart and whenever you get motion detected, it will email you the picture as an attachment !