Feature #458
Using TENVIS Cameras With ZoneMinder
10%
Description
TENVIS produce a range of IP cameras with Wifi and some with PT (no Z), but what is most extraordinary is the prices - they really are low. You can get a basic fixed Wifi IP camera at 640x480 resolution for around $50 all in on Amazon.
If you have worked with the high resolution AXIS IP cams then don't expect the same quality. Build quality is respectable with TENVIS, but the optics and size of the sensors, plus the high resolutions available with AXIS put them a cut abover everyone else. If you are monitoring a large area and want to be able to identify a complete stranger at a distance from the cameras then high end AXIS cams are the way. If you want to check who's been at your front door or which of the neighbour's cats is coming through the cat flap then cheap TENVIS cams may well do the job. With Wifi they are also ideal for putting where it would be inconvenient to run network cables like in garden sheds, carports, etc.
Initial Camera setup.... without Windows¶
The manual says that you need to use their Windows only setup tool, but if you do not have a Windows box then they are relatively simple to setup with only a browser. This can also be done with Windows where security and stability concerns of installing third party software are to be avoided.
TENVIS cams do not seem to be configured for DHCP out the box so just checking the DHCP logs isn't going to help though the manual seems to have some conflicting information on that so maybe some models do use DHCP. They come configured on a static IP of 192.168.1.239 on the wired network so the easiest thing to do is to configure a machine (I used a laptop) on another address on that network, say 192.168.1.100 with a netmask of 255.255.255.0) and connect it directly to the camera with a suitable cable.
The next thing to note is that there is nothing listening on port 80 (normal web/http port) so when you point your web browser at the IP address, you get nothing. The web interface in fact runs on port 81 so you need to put http://192.168.1.239:81/ into the browser at which point you should get the login box pop up. Depending on the model, Username and Password by default are both admin (all lower case), or Password may be blank, at which point you should be able to choose "Server Push Mode" for or "VLC plug-in Mode" (requires VLC plugin) and then you can configure the Wifi or wired network to an appropriate address.
Streaming Without Authentication¶
To stream the video without having to use the admin credentials it's also worth adding a user under Users Settings,I added a user of view with no password as a Visitor which allows access to the video stream, but you could set a password for the video if you want extra security. Obviously, it's also a good idea to set a suitably strong admin password.
Once you have the device configured for your network and can get into the web interface on it's final address and configuration, it's time to move onto configuring ZoneMinder to use the cam.
Configuring ZoneMinder for TENVIS cam
Rather easy actually! TENVIS provide two resolutions and a number of frame rates to use.
- The base URL for MJPEG is http://IPofCam:81/videostream.cgi and we then need to authenticate so add parameters for user and pwd like:
http://IPofCam:81/videostream.cgi?user=*view*&pwd=*complexpassword*
NOTE: If you have no password then just leave ...&pass= in but with no password after the "=".
- Next there are two resolutions to choose from, 640x480 or 320x240. For that add the next argument of resolution with a value of either 8 or 32. For the full resolution our URL now looks like:
http://IPofCam:81/videostream.cgi?user=view&pwd=complexpassword&resolution=*8*
- So for 5 fps which is often enough for basic CCTV usage our URL now looks like:
http://IPofCam:81/videostream.cgi?user=view&pwd=complexpassword&resolution=8&rate=*11*
- Now we need to choose the framerate we want to use and append a rate parameter. There are several speeds to choose from:
- 0 = full speed
- 1 = 20 fps
- 3 = 15 fps
- 6 = 10 fps
- 11 = 5 fps
- 12 = 4 fps
- 13 = 3 fps
- 14 = 2 fps
- 15 = 1 fps
- 17 = 1 frame every 2s
- 19 = 1 frame every 3s
- 21 = 1 frame every 4s
- 23 = 1 frame every 5s
Put that into your browser and you should get the video stream from the camera.
- Using JPEG snapshots is more reliable, and having tested this I am inclined to agree. For this you can leave out the video specific stuff (FPS) and use snapshot.cgi instead:
http://IPofCam:81/snapshot.cgi?user=view&pwd=complexpassword&resolution=8
- Next get Zoneminder Configured - Click Add New Monitor and start filling it in:
- Give it a name
- Select Remote as the Source Type
- Choose your function, if you want a motion detected recording then "Mocord"
- You most probably want the camera Enabled
- Set the Maximum FPS which is the rate that you will be recording at when idle (no motion detected)
- Set the Alarm Maximum FPS which is likely to be the same as the rate setting you chose for the URL - this is the rate that it will record at when something exciting is happening
- You can change the Image Blend as needed depending on your frame rates and application. For applications where there are brief events (eg. someone running past down a corridor) then you may want to shorten this to detect far more brief events
TENVIS Wifi IP Camera ZoneMinder General Setup¶
- Then onto the Source Tab:
- Remote Protocol of HTTP
- Remote Mothod of Simple
- Remote Host Name - put in the Host part of the addres (eg. IP of the camera), with no port
- Remote Host Port is 81
- Then the rest of the URL in Remote Host Path, so using our example: /videostream.cgi?user=view&pwd=complexpassword&resolution=8&rate=11
- Remote Image Colours is 24 bit colour
- Choose Width and Height matching the resolution chosen - so 640 and 480 for our example
TENVIS Wifi IP Camera ZoneMinder Source Setup¶
At that point you should have a working TENVIS Wifi IP camera, but beware the usual catches with ZoneMinder of not having sufficient shared memory or free memory for buffers.
The remaining setup is generic stuff that is common to all cameras like the motion detection zone etc.
JPEG errors in logs
- One thing that seems to happen if you use the JPEG mode (snapshot.cgi) is loads of errors logged. These are a hit on performance (extra disk activity - one line per frame per camera) and waste loads of space, not to mention making finding relevant stuff in logs more difficult.
- With recent distros that use rsyslogd you can create a config for Zoneminder (say /etc/rsyslog.d/local-zoneminder.conf) with the following in it:
:msg,contains,"extraneous bytes before marker 0xd9" ~
That will cause rsyslogd to ignore lines with the matching text.