cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

surveillance camera through PI

Mon Apr 01, 2013 3:19 pm

Hello everyone

I hope someone can help me with this.

I have recently purchased an IP camera and it's set now so that I can access it through my network and also from outside(the internet). The camera comes with a web interface that allows me to access it through the browser and change settins,move the camera etc but what I'm looking for is the ability to setup the camera so that it records only when it detects a motion and saves the recording into a harddisk(possibly external).

Now I'm not sure whether this is achievable solely using the router and camera(I believe it's not) and I don't want to have a computer running all the time so I thought using a low power consumption rpi should do the job.

To summarise my question: is it there a software/method that will allow me to connect my rpi to the camera permanently so that when it detects motion it will save the recording into an external hardisk and that also allows to send email notifications and remote access?

Thank you

User avatar
pluggy
Posts: 3635
Joined: Thu May 31, 2012 3:52 pm
Location: Barnoldswick, Lancashire,UK
Contact: Website

Re: surveillance camera through PI

Mon Apr 01, 2013 3:53 pm

motion works with IP cameras. Its in the standard raspdian repository.

This isn't Pi specific but it should yield some clues to configuring motion to use a network camera.
(his 3rd camera is an IP camera in thread3.conf).

http://linux-rocks-windows-sucks.blogsp ... bcams.html
Don't judge Linux by the Pi.......
I must not tread on too many sacred cows......

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Sun Apr 07, 2013 2:15 pm

The article talks about usb cameras, using lsusb I can check cams that are phisically attached to my pi but what about ip camera? how do I connect them?

SirLagz
Posts: 1705
Joined: Mon Feb 20, 2012 8:53 am
Location: Perth, Australia
Contact: Website

Re: surveillance camera through PI

Sun Apr 07, 2013 4:00 pm

You can configure motion to connect to a ip address to grab the images.
As long as the IP cam has a web interface which exposes the image file, e.g. http://192.168.0.100/image.mjpeg or something similiar, motion should be able to grab it and apply it's motion detection.
My Blog - http://www.sirlagz.net
Visit my blog for Tips, Tricks, Guides and More !
WiFi Issues ? Have a look at this post ! http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=44044

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Fri Jun 14, 2013 8:26 am

I have tried to change the settings in the motion.conf file but no luck.
The parameters that I've changed are:

netcam_url {I've used my ip camera ip address plus /videostream.cgi as this extension streams video}
netcam_userpass {the username and password to access the ip camera}
webcam_port {i've set this to 8088}

However when I run the service, it doesn't connect when I type the address "ip:8088"

However I've noticed one thing, I am remotely accessing and configuring my rpi through a laptop; when I start motion using the following commands:
motion -n
or
motion
or
sudo service motion restart
...the led of my laptop camera turns on (like my webcam has been switched on) -however, as I said above, when i try to access the ip address,it doesn't work

Any advice?

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Sun Jun 16, 2013 12:48 pm

ok,now I'm to the point where I can use the ip address and port to connect to the camera. however all I see is a grey screen
after running the command "motion -n" i got the following logs
can someone tell me how I can fix this?

Code: Select all

sudo motion -n
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478785
[0] Thread 1 is from /etc/motion/motion.conf
[0] httpd bind(): Address already in use
[0] httpd thread exit
[1] Thread 1 started
[1] Failed to open video device /dev/video0: No such file or directory
[1] Could not fetch initial image from camera
[1] Motion continues using width and height from config file(s)
[1] Resizing pre_capture buffer to 1 items
[1] bind(): Address already in use
[1] Problem enabling stream server in port 8088: Address already in use
[1] Thread exiting

SirLagz
Posts: 1705
Joined: Mon Feb 20, 2012 8:53 am
Location: Perth, Australia
Contact: Website

Re: surveillance camera through PI

Mon Jun 17, 2013 12:49 am

cpu2007 wrote:ok,now I'm to the point where I can use the ip address and port to connect to the camera. however all I see is a grey screen
after running the command "motion -n" i got the following logs
can someone tell me how I can fix this?

Code: Select all

sudo motion -n
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478785
[0] Thread 1 is from /etc/motion/motion.conf
[0] httpd bind(): Address already in use
[0] httpd thread exit
[1] Thread 1 started
[1] Failed to open video device /dev/video0: No such file or directory
[1] Could not fetch initial image from camera
[1] Motion continues using width and height from config file(s)
[1] Resizing pre_capture buffer to 1 items
[1] bind(): Address already in use
[1] Problem enabling stream server in port 8088: Address already in use
[1] Thread exiting
A few issues there
[0] httpd bind(): Address already in use <-- what port is configured in motion.conf ? Something is already using that port
[1] Failed to open video device /dev/video0: No such file or directory <-- it can't find your webcam. unless it's under a different name for some strange reason. e.g. /dev/video1
[1] bind(): Address already in use
[1] Problem enabling stream server in port 8088: Address already in use <-- again, something is using that port already...
My Blog - http://www.sirlagz.net
Visit my blog for Tips, Tricks, Guides and More !
WiFi Issues ? Have a look at this post ! http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=44044

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Mon Jun 17, 2013 1:24 pm

The problem is nothing is using that port which is 8088.
The error failed to open the device in video0 because this file directory does not exist.
My understanding is that this file/directory is only created by motion when you attach a usb webcam and then it tries to open it. However in my case I am using a ip camera.

I think there's some incompatibility issue.
As I said in my last post, I am connecting and everything now, I can access the url with the port from online but I get a grey image.
I installed motion on my laptop to connect it with my built in camera and see if it works there, it does work there but I get a very crap image, the image is all blue and dark, you can't see much.

So here are my questions:
How can I fix the quality of the videostream that I am getting from my builtin webcam?
rpi seems to be incompatible with the ip camera i'm using, how can I make them compatible?any drivers,libraries that I might need to add?

Thanks

Sp4rKy
Posts: 8
Joined: Fri Feb 15, 2013 3:34 pm

Re: surveillance camera through PI

Mon Jun 17, 2013 2:43 pm

If it is still trying to access /dev/video0 then you need to double check your motion.conf.
I commented that out, since your camera is specified through the netcam_url. The configuration worked on your laptop since it was using the build-in camera.

Also, check with your IP camera manufacturer to see what the correct URL is. I have done this with two FOSCAM cameras that I setup as a baby monitor. You can pass resolution arguments in the URL - the IP cameras worked much better than the USB webcams that I have tried. Before messing with motion.conf - make sure you can access the URL through a browser from your laptop (assuming it is on the same subnet).

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Mon Jun 17, 2013 3:33 pm

yes I can access the camera through url but is giving a grey image (this is with ip camera which I bought from ebay and it's called db-power)

the built in camera can be accessed through url as well but it shows a very crap video stream and I don't know how to fix that.

Regarding whether the ip camera url is correct or not, i believe it's correct because I search around and some posts tell that you have to look at the source code to see the link being used. In my case the link is the ipaddress/videstream.cgi, which is what I'm using in the conf file.

Sp4rKy
Posts: 8
Joined: Fri Feb 15, 2013 3:34 pm

Re: surveillance camera through PI

Mon Jun 17, 2013 4:55 pm

The grey image is from motion (<rpi ip>:8088), correct? So motion is running but doesn't get any input.

Before you get into motion you should be able to test the URL that you pass in motion.conf, in a regular browser on the same subnet. You should be able to see the stream of images the same way motion will get . Once you have that part sorted out, then you can configure motion.conf

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Mon Jun 17, 2013 5:50 pm

yes that's correct, the ip address is the ip of rpi:8088 which isn't working.

I have already tested the actual ip address that I am passing to the motion.conf file.
The ip address of the camera is 192.168.0.178/videostream.cgi . If i use this in the url, it does show the video in stream;i've used this url in the motion.conf file and then used the rpi IP:8088 to access it but all I see is a grey image. On that gray image there are a few things written, the date, time etc and also "unable to open device"

willip5
Posts: 78
Joined: Wed May 29, 2013 11:55 am
Location: France

Re: surveillance camera through PI

Mon Jun 17, 2013 6:44 pm

Motion will do what you want and do it well and the answers to all you problems are on the motion web site

First comment out the /dev/video0 line

I have had both these problems and these are my fixes, the "unable to open 8088" was caused by a Motion service running and hogging the port, have a look on 'top' to see if there are two versions of motion and so to verify this try

Code: Select all

sudo kallall motion
If that gets rid of the problem either remove the motion service or as I had to do

Code: Select all

sudo apt-get --purge remove motion
The grey screen is probably because motion cannot read the input stream. In motion.conf it says "Must be a URL that returns single jpeg pictures or a raw mjpeg stream." for an Axis server it will be something along the lines of

Code: Select all

netcam_url http://192.168.1.44/mjpg/video.mjpg
As for the light coming on on your laptop, are you sure you were running motion on the pi and not the laptop, easily done.

If you want a copy of my working .conf file let me know.

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Mon Jun 17, 2013 8:23 pm

Thank you

I will check if there are two versions of motion installed that might be causing the problem.

The led running on my laptop was my problem, accidentally i started installing motion and configuring it on my laptop while i was remotely accessing the rpi but that's fixed.

Now I believe the configurations are fine and I can access the url but the grey image is what is causing trouble.

I have tried your url with extention /mjpg/video.mjpg but that doesn't work.
When I go on my webcam, the location of the video raw is as follow:
http://192.168.0.178/videostream.cgi?rate=14
and what I use in netcam_url is this :
192.168.0.178/videostream.cgi


if I use your link then it throws an error saying page not found etc.

SirLagz
Posts: 1705
Joined: Mon Feb 20, 2012 8:53 am
Location: Perth, Australia
Contact: Website

Re: surveillance camera through PI

Tue Jun 18, 2013 1:12 am

cpu2007 wrote: http://192.168.0.178/videostream.cgi?rate=14
and what I use in netcam_url is this :
192.168.0.178/videostream.cgi
if I use your link then it throws an error saying page not found etc.
Use "http://192.168.0.178/videostream.cgi?rate=14" in netcam_url and see what happens ?
Or have you already tried that ?
Or, what happens when you go to http://192.168.0.178/videostream.cgi in your web browser ?
My Blog - http://www.sirlagz.net
Visit my blog for Tips, Tricks, Guides and More !
WiFi Issues ? Have a look at this post ! http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=44044

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Tue Jun 18, 2013 8:39 am

SirLagz wrote:
cpu2007 wrote: http://192.168.0.178/videostream.cgi?rate=14
and what I use in netcam_url is this :
192.168.0.178/videostream.cgi
if I use your link then it throws an error saying page not found etc.
Use "http://192.168.0.178/videostream.cgi?rate=14" in netcam_url and see what happens ?
Or have you already tried that ?
Or, what happens when you go to http://192.168.0.178/videostream.cgi in your web browser ?
if I use the rate=14 extension in the browser then it keeps loading but I can't see anything.
If I use the following link in the browser: http://192.168.0.178/videostream.cgi , I get the raw video stream and this is why I am using this URL as a netcam_url parameter.

SirLagz
Posts: 1705
Joined: Mon Feb 20, 2012 8:53 am
Location: Perth, Australia
Contact: Website

Re: surveillance camera through PI

Tue Jun 18, 2013 11:38 am

Ah right. gotcha.
In that case, not sure...
Do you know what sort of stream it's presenting ? Mjpeg stream ?
My Blog - http://www.sirlagz.net
Visit my blog for Tips, Tricks, Guides and More !
WiFi Issues ? Have a look at this post ! http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=44044

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Tue Jun 18, 2013 11:44 am

I am not sure. How can I find this info?

However, I have used the following parameters as well : netcam_url http://192.168.1.44/mjpg/video.mjpg
they do contain mjpg extension but none of it work ,even if I use the url directly in the browser.

SirLagz
Posts: 1705
Joined: Mon Feb 20, 2012 8:53 am
Location: Perth, Australia
Contact: Website

Re: surveillance camera through PI

Tue Jun 18, 2013 11:46 am

Are you on linux ?
I'd wget the url, and then run the file command on it and see what it thinks it is
My Blog - http://www.sirlagz.net
Visit my blog for Tips, Tricks, Guides and More !
WiFi Issues ? Have a look at this post ! http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=44044

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Tue Jun 18, 2013 12:38 pm

yes, I am accessing my pi through ubuntu

so what you're saying I should do is run the following command in the terminal?
wget 192.168.0.16/videostream.cgi

is that correct?

SirLagz
Posts: 1705
Joined: Mon Feb 20, 2012 8:53 am
Location: Perth, Australia
Contact: Website

Re: surveillance camera through PI

Tue Jun 18, 2013 1:25 pm

Yes that's right.
My Blog - http://www.sirlagz.net
Visit my blog for Tips, Tricks, Guides and More !
WiFi Issues ? Have a look at this post ! http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=44044

willip5
Posts: 78
Joined: Wed May 29, 2013 11:55 am
Location: France

Re: surveillance camera through PI

Tue Jun 18, 2013 2:28 pm

so what you're saying I should do is run the following command in the terminal?
wget 192.168.0.16/videostream.cgi
How did we get from 192.168.0.178 to 192.168.0.16?

The link I posted was just an example, it points to one of my cameras on my LAN so I am not surprised motion could not access it, you should have tried

192.168.0.178/mjpg/video.mjpg

Just downloaded a manual for a DB Power IP camera and it outputs video in mjpeg format so it should be OK.
Have you got any threads enabled in the Motion.conf file? these will override anything you have set in the .conf file, try posting your Motion.conf file (from the Pi, not the laptop)

Pete
Last edited by willip5 on Tue Jun 18, 2013 3:11 pm, edited 2 times in total.

Sp4rKy
Posts: 8
Joined: Fri Feb 15, 2013 3:34 pm

Re: surveillance camera through PI

Tue Jun 18, 2013 2:35 pm

Another thing could be the authentication as well.. does your ip cam have a log? maybe check to see if motion is trying to access it.

In your browser does it ask for a password? When I access my webcam, I pass the user and password via the URL instead of the motion.conf option.

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Tue Jun 18, 2013 3:51 pm

192.168.0.178 is the IP address of my IP webcam
192.168.0.16 is the rpi IP address
192.168.0.178/videostream.cgi or 192.168.0.178/video.cgi are the only extensions that work and return raw video stream.
In motion I have disabled and commented most of the settings and I am now accessing it through a thread.conf file.
The access seems to be fine and the setup parameters are as follow:
netcam_url 192.168.0.178/videostream.cgi
webcam_port 8088
username_pass(i dont remember how it was written but I have set this parameter too)
target_dir
and a few others that I don't remember as I'm not home at the moment.

I have tried the mjpg extention but it does not work, I have tried it as follow 192.168.0.178/mjpg/video.mjpg

I have to check a few things now when I get home, one is using the wget command line on the ip address and the others are what you asked me about the logs.

I'll post all the information back later.

Thank you for your help guys

cpu2007
Posts: 29
Joined: Wed Feb 13, 2013 7:38 pm

Re: surveillance camera through PI

Tue Jun 18, 2013 8:20 pm

Ok, If I use the command "wget" this is what I get:

Code: Select all

pi@raspberrypi ~ $ wget 192.168.0.178/videostream.cgi
--2013-06-18 19:56:56--  http://192.168.0.178/videostream.cgi
Connecting to 192.168.0.178:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
pi@raspberrypi ~ $ wget 192.168.0.178/video.cgi
--2013-06-18 19:57:04--  http://192.168.0.178/video.cgi
Connecting to 192.168.0.178:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
My motion.conf file is as follow:

Code: Select all

# Rename this distribution example file to motion.conf
#
# This config file was generated by motion 3.2.12


############################################################
# Daemon
############################################################

# Start in daemon (background) mode and release terminal (default: off)
daemon ON

# File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion/motion.pid 

############################################################
# Basic Setup Mode
############################################################

# Start in Setup-Mode, daemon disabled. (default: off)
setup_mode off

###########################################################
# Capture device options
############################################################

# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
;videodevice /dev/video0

# v4l2_palette allows to choose preferable palette to be use by motion
# to capture from those supported by your videodevice. (default: 8)
# E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and
# V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG.
# Setting v4l2_palette to 1 forces motion to use V4L2_PIX_FMT_SBGGR8
# instead.
#
# Values :
# V4L2_PIX_FMT_SN9C10X : 0  'S910'
# V4L2_PIX_FMT_SBGGR8  : 1  'BA81'
# V4L2_PIX_FMT_MJPEG   : 2  'MJPEG'
# V4L2_PIX_FMT_JPEG    : 3  'JPEG'
# V4L2_PIX_FMT_RGB24   : 4  'RGB3'
# V4L2_PIX_FMT_UYVY    : 5  'UYVY'
# V4L2_PIX_FMT_YUYV    : 6  'YUYV'
# V4L2_PIX_FMT_YUV422P : 7  '422P'
# V4L2_PIX_FMT_YUV420  : 8  'YU12'
v4l2_palette 8

# Tuner device to be used for capturing using tuner as source (default /dev/tuner0)
# This is ONLY used for FreeBSD. Leave it commented out for Linux
; tunerdevice /dev/tuner0

# The video input to be used (default: 8)
# Should normally be set to 0 or 1 for video/TV cards, and 8 for USB cameras
;input 8

# The video norm to use (only for video capture and TV tuner cards)
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
norm 0

# The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0)
frequency 0

# Rotate image this number of degrees. The rotation affects all saved images as
# well as mpeg movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
rotate 0

# Image width (pixels). Valid range: Camera dependent, default: 352
width 320

# Image height (pixels). Valid range: Camera dependent, default: 288
height 240

# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 2

# Minimum time in seconds between capturing picture frames from the camera.
# Default: 0 = disabled - the capture rate is given by the camera framerate.
# This option is used when you want to capture images at a rate lower than 2 per second.
minimum_frame_time 0

# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// or file:///)
# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined
; netcam_url 

# Username and password for network camera (only if required). Default: not defined
# Syntax is user:password
; netcam_userpass 

# The setting for keep-alive of network socket, should improve performance on compatible net cameras.
# 1.0:         The historical implementation using HTTP/1.0, closing the socket after each http request.
# keep_alive:  Use HTTP/1.0 requests with keep alive header to reuse the same connection.
# 1.1:         Use HTTP/1.1 requests that support keep alive as default.
# Default: 1.0
; netcam_http 1.0

# URL to use for a netcam proxy server, if required, e.g. "http://myproxy".
# If a port number other than 80 is needed, use "http://myproxy:1234".
# Default: not defined
#; netcam_proxy value 

# Set less strict jpeg checks for network cameras with a poor/buggy firmware.
# Default: off
netcam_tolerant_check off

# Let motion regulate the brightness of a video device (default: off).
# The auto_brightness feature uses the brightness option as its target value.
# If brightness is zero auto_brightness will adjust to average brightness value 128.
# Only recommended for cameras without auto brightness
auto_brightness off

# Set the initial brightness of a video device.
# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
brightness 0

# Set the contrast of a video device.
# Valid range 0-255, default 0 = disabled
contrast 0

# Set the saturation of a video device.
# Valid range 0-255, default 0 = disabled
saturation 0

# Set the hue of a video device (NTSC feature).
# Valid range 0-255, default 0 = disabled
hue 0


############################################################
# Round Robin (multiple inputs on same video device name)
############################################################

# Number of frames to capture in each roundrobin step (default: 1)
roundrobin_frames 1

# Number of frames to skip before each roundrobin step (default: 1)
roundrobin_skip 1

# Try to filter out noise generated by roundrobin (default: off)
switchfilter off


############################################################
# Motion Detection Settings:
############################################################

# Threshold for number of changed pixels in an image that
# triggers motion detection (default: 1500)
threshold 1500

# Automatically tune the threshold down if possible (default: off)
threshold_tune off

# Noise threshold for the motion detection (default: 32)
noise_level 32

# Automatically tune the noise threshold (default: on)
noise_tune on

# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
# (l)abeling must only be used once and the 'l' must be the last letter.
# Comment out to disable
despeckle EedDl

# Detect motion in predefined areas (1 - 9). Areas are numbered like that:  1 2 3
# A script (on_area_detected) is started immediately when motion is         4 5 6
# detected in one of the given areas, but only once during an event.        7 8 9
# One or more areas can be specified with this option. (Default: not defined)
; area_detect value

# PGM file to use as a sensitivity mask.
# Full path name to. (Default: not defined)
; mask_file value

# Dynamically create a mask file during operation (default: 0)
# Adjust speed of mask changes from 0 (off) to 10 (fast)
smart_mask_speed 0

# Ignore sudden massive light intensity changes given as a percentage of the picture
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
lightswitch 0

# Picture frames must contain motion at least the specified number of frames
# in a row before they are detected as true motion. At the default of 1, all
# motion is detected. Valid range: 1 to thousands, recommended 1-5
minimum_motion_frames 1

# Specifies the number of pre-captured (buffered) pictures from before motion
# was detected that will be output at motion detection.
# Recommended range: 0 to 5 (default: 0)
# Do not use large values! Large values will cause Motion to skip video frames and
# cause unsmooth mpegs. To smooth mpegs use larger values of post_capture instead.
pre_capture 0

# Number of frames to capture after motion is no longer detected (default: 0)
post_capture 0

# Gap is the seconds of no motion detection that triggers the end of an event
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value 0 is allowed and disables
# events causing all Motion to be written to one single mpeg file and no pre_capture.
gap 60

# Maximum length in seconds of an mpeg movie
# When value is exceeded a new mpeg file is created. (Default: 0 = infinite)
max_mpeg_time 0

# Always save images even if there was no motion (default: off)
output_all off


############################################################
# Image File Output
############################################################

# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_normal on

# Output pictures with only the pixels moving object (ghost images) (default: off)
output_motion off

# The quality (in percent) to be used by the jpeg compression (default: 75)
quality 75

# Output ppm images instead of jpeg (default: off)
ppm off


############################################################
# FFMPEG related options
# Film (mpeg) file output, and deinterlacing of the video input
# The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
############################################################

# Use ffmpeg to encode mpeg movies in realtime (default: off)
ffmpeg_cap_new on

# Use ffmpeg to make movies with only the pixels moving
# object (ghost images) (default: off)
ffmpeg_cap_motion off

# Use ffmpeg to encode a timelapse movie 
# Default value 0 = off - else save frame every Nth second
ffmpeg_timelapse 0

# The file rollover mode of the timelapse video
# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
ffmpeg_timelapse_mode daily

# Bitrate to be used by the ffmpeg encoder (default: 400000)
# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
ffmpeg_bps 500000

# Enables and defines variable bitrate for the ffmpeg encoder.
# ffmpeg_bps is ignored if variable bitrate is enabled.
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
# or the range 2 - 31 where 2 means best quality and 31 is worst.
ffmpeg_variable_bitrate 0

# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 - gives you files with extension .mpg
# mpeg4 or msmpeg4 - gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf - gives you a flash film with extension .swf
# flv - gives you a flash video with extension .flv
# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
# mov - QuickTime ( testing )
ffmpeg_video_codec swf

# Use ffmpeg to deinterlace video. Necessary if you use an analog camera
# and see horizontal combing on moving objects in video or pictures.
# (default: off)
ffmpeg_deinterlace off


############################################################
# Snapshots (Traditional Periodic Webcam File Output)
############################################################

# Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 0


############################################################
# Text Display
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second, %T = HH:MM:SS,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level, \n = new line,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event - do not use with text_event!
# You can put quotation marks around the text to allow
# leading spaces
############################################################

# Locate and draw a box around the moving object.
# Valid values: on, off and preview (default: off)
# Set to 'preview' will only draw a box in preview_shot pictures.
locate off

# Draws the timestamp using same options as C function strftime(3)
# Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
# Text is placed in lower right corner
text_right %Y-%m-%d\n%T-%q

# Draw a user defined text on the images using same options as C function strftime(3)
# Default: Not defined = no text
# Text is placed in lower left corner
; text_left CAMERA %t

# Draw the number of changed pixed on the images (default: off)
# Will normally be set to off except when you setup and adjust the motion settings
# Text is placed in upper right corner
text_changes off

# This option defines the value of the special event conversion specifier %C
# You can use any conversion specifier in this option except %C. Date and time
# values are from the timestamp of the first image in the current event.
# Default: %Y%m%d%H%M%S
# The idea is that %C can be used filenames and text_left/right for creating
# a unique identifier for each event.
text_event %Y%m%d%H%M%S

# Draw characters at twice normal size on images. (default: off)
text_double off


############################################################
# Target Directories and filenames For Images And Films
# For the options snapshot_, jpeg_, mpeg_ and timelapse_filename
# you can use conversion specifiers
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# Quotation marks round string are allowed.
############################################################

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
#target_dir /tmp/motion

# File path for snapshots (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-snapshot
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
# File extension .jpg or .ppm is automatically added so do not include this.
# Note: A symbolic link called lastsnap.jpg created in the target_dir will always
# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
snapshot_filename %v-%Y%m%d%H%M%S-snapshot

# File path for motion triggered images (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-%q
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
# File extension .jpg or .ppm is automatically added so do not include this
# Set to 'preview' together with best-preview feature enables special naming
# convention for preview shots. See motion guide for details
jpeg_filename %v-%Y%m%d%H%M%S-%q

# File path for motion triggered ffmpeg films (mpeg) relative to target_dir
# Default: %v-%Y%m%d%H%M%S
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
# File extension .mpg or .avi is automatically added so do not include this
# This option was previously called ffmpeg_filename
movie_filename %v-%Y%m%d%H%M%S

# File path for timelapse mpegs relative to target_dir
# Default: %Y%m%d-timelapse
# Default value is near equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
# File extension .mpg is automatically added so do not include this
timelapse_filename %Y%m%d-timelapse


############################################################
# Live Webcam Server
############################################################

# The mini-http server listens to this port for requests (default: 0 = disabled)
;webcam_port 8088

# Quality of the jpeg (in percent) images produced (default: 50) 
webcam_quality 50

# Output frames at 1 fps when no motion is detected and increase to the
# rate given by webcam_maxrate when motion is detected (default: off)
webcam_motion off

# Maximum framerate for webcam streams (default: 1)
webcam_maxrate 20

# Restrict webcam connections to localhost only (default: on)
webcam_localhost off

# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0


############################################################
# HTTP Based Control
############################################################

# TCP/IP port for the http server to listen on (default: 0 = disabled)
;control_port 8083

# Restrict control connections to localhost only (default: on)
control_localhost on

# Output for http server, select off to choose raw text plain (default: on)
control_html_output on

# Authentication for the http based control. Syntax username:password
# Default: not defined (Disabled)
control_authentication admin:123456


############################################################
# Tracking (Pan/Tilt)
############################################################

# Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc, 4=generic, 5=uvcvideo)
# The generic type enables the definition of motion center and motion size to
# be used with the conversion specifiers for options like on_motion_detected
track_type 0

# Enable auto tracking (default: off)
track_auto off

# Serial port of motor (default: none)
; track_port value

# Motor number for x-axis (default: 0)
track_motorx 0

# Motor number for y-axis (default: 0)
track_motory 0

# Maximum value on x-axis (default: 0)
track_maxx 0

# Maximum value on y-axis (default: 0)
track_maxy 0

# ID of an iomojo camera if used (default: 0)
track_iomojo_id 0

# Angle in degrees the camera moves per step on the X-axis
# with auto-track (default: 10)
# Currently only used with pwc type cameras
track_step_angle_x 10

# Angle in degrees the camera moves per step on the Y-axis
# with auto-track (default: 10)
# Currently only used with pwc type cameras
track_step_angle_y 10

# Delay to wait for after tracking movement as number
# of picture frames (default: 10)
track_move_wait 10

# Speed to set the motor to (stepper motor option) (default: 255)
track_speed 255

# Number of steps to make (stepper motor option) (default: 40)
track_stepsize 40


############################################################
# External Commands, Warnings and Logging:
# You can use conversion specifiers for the on_xxxx commands
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# %f = filename with full path
# %n = number indicating filetype
# Both %f and %n are only defined for on_picture_save,
# on_movie_start and on_movie_end
# Quotation marks round string are allowed.
############################################################

# Do not sound beeps when detecting motion (default: on)
# Note: Motion never beeps when running in daemon mode.
quiet on

# Command to be executed when an event starts. (default: none)
# An event starts at first motion detected after a period of no motion defined by gap 
; on_event_start value

# Command to be executed when an event ends after a period of no motion
# (default: none). The period of no motion is defined by option gap.
; on_event_end value

# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
# To give the filename as an argument to a command append it with %f
; on_picture_save value

# Command to be executed when a motion frame is detected (default: none)
; on_motion_detected value

# Command to be executed when motion in a predefined area is detected
# Check option 'area_detect'.   (default: none)
; on_area_detected value

# Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_start value

# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_end value

# Command to be executed when a camera can't be opened or if it is lost
# NOTE: There is situations when motion doesn't detect a lost camera!
# It depends on the driver, some drivers don't detect a lost camera at all
# Some hang the motion thread. Some even hang the PC! (default: none)
; on_camera_lost value

############################################################
# Common Options For MySQL and PostgreSQL database features.
# Options require the MySQL/PostgreSQL options to be active also.
############################################################

# Log to the database when creating motion triggered image file  (default: on)
sql_log_image on

# Log to the database when creating a snapshot image file (default: on)
sql_log_snapshot on

# Log to the database when creating motion triggered mpeg file (default: off)
sql_log_mpeg off

# Log to the database when creating timelapse mpeg file (default: off)
sql_log_timelapse off

# SQL query string that is sent to the database
# Use same conversion specifiers has for text features
# Additional special conversion specifiers are
# %n = the number representing the file_type
# %f = filename with full path
# Default value:
# insert into security(camera, filename, frame, file_type, time_stamp, text_event) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')


############################################################
# Database Options For MySQL
############################################################

# Mysql database to log to (default: not defined)
; mysql_db value

# The host on which the database is located (default: localhost)
; mysql_host value

# User account name for MySQL database (default: not defined)
; mysql_user value

# User password for MySQL database (default: not defined)
; mysql_password value


############################################################
# Database Options For PostgreSQL
############################################################

# PostgreSQL database to log to (default: not defined)
; pgsql_db value

# The host on which the database is located (default: localhost)
; pgsql_host value

# User account name for PostgreSQL database (default: not defined)
; pgsql_user value

# User password for PostgreSQL database (default: not defined)
; pgsql_password value

# Port on which the PostgreSQL database is located (default: 5432)
; pgsql_port 5432


############################################################
# Video Loopback Device (vloopback project)
############################################################

# Output images to a video4linux loopback device
# The value '-' means next available (default: not defined)
; video_pipe value

# Output motion images to a video4linux loopback device
# The value '-' means next available (default: not defined)
; motion_video_pipe value


##############################################################
# Thread config files - One for each camera.
# Except if only one camera - You only need this config file.
# If you have more than one camera you MUST define one thread
# config file for each camera in addition to this config file.
##############################################################

# Remember: If you have more than one camera you must have one
# thread file for each camera. E.g. 2 cameras requires 3 files:
# This motion.conf file AND thread1.conf and thread2.conf.
# Only put the options that are unique to each camera in the
# thread config files. 
thread /etc/motion/thread1.conf
#; thread /usr/local/etc/thread2.conf
#; thread /usr/local/etc/thread3.conf
#; thread /usr/local/etc/thread4.conf
and this is my thread1.conf file

Code: Select all

netcam_userpass username:mypassword
text_left CAMERA 1
netcam_url 192.168.0.178/videostream.cgi
target_dir /usr/local/etc/motionStorage
webcam_port 8088

In addition:
I tried to connect to my webcam directly from rpi using the following url 192.168.0.178, I was asked for the password and then I get logged as normal; however in the rpi I don't see any image but all black. That's probably because there's no driver that show it and can that be the reason why I can't see anything using motion?

In the log files in the camera, I can see direct accesses through the URL but there's no access through motion.conf.

Return to “Beginners”