Atom Feed
Comments Atom Feed

Similar Articles

2015-01-04 14:50
DBPower (MayGion) 720p P2P IP Camera with Linux & Zoneminder
2009-09-19 20:14
CCTV IR Illuminators on the cheap
2009-05-10 13:24
Waiting for Panny
2008-11-23 09:11
Photography HOWTO 2: Understanding Exposure
2016-01-21 10:37
Orvibo S20 (Wifi Power Socket) Utility

Recent Articles

2019-07-28 16:35
git http with Nginx via Flask wsgi application (git4nginx)
2018-05-15 16:48
Raspberry Pi Camera, IR Lights and more
2017-04-23 14:21
Raspberry Pi SD Card Test
2017-04-07 10:54
DNS Firewall (blackhole malicious, like Pi-hole) with bind9
2017-03-28 13:07
Kubernetes to learn Part 4

Glen Pitt-Pladdy :: Blog

TENVIS Camera with ZoneMinder (Linux or Mac setup)

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 £35 all in on eBay.

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 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 with a netmask of 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 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.

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:


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:


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

So for 5 fps which is often enough for basic CCTV usage our URL now looks like:


Put that into your browser and you should get the video stream from the camera.

Neil Martin (see below) points out that using JPEG snapshots is more reliable, and having tested this I am inclined to agree with him For this you can leave out the video specific stuff (FPS) and use snapshot.cgi instead:


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 like this:

zmc_m6[6223]: WAR [Corrupt JPEG data: 1 extraneous bytes before marker 0xd9]

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.