mattgadient.com

Using the D-Link DCS-933L for time lapse video via FTP (review-ish)

For a while, I’d been looking at putting together some time-lapse video of some of the plants/seedlings I’ve been growing. Putting a camera on a tripod and trying to remember to snap a picture at the same time each day just wasn’t cutting it.

In any case, IP/security/wifi/network cams have been moving down in price and I figured it was time to delve in. However, looking through the manuals of a few, I came across a big issue: most of them were not only Windows-only (plus phone/tablet), but many looked like they’d suck for this sort of task anyway. There seems to be a heavy move towards putting everything “in the cloud” and “via our app”.

Don’t get me wrong: app/cloud stuff has it’s advantages (both technical and convenience-wise for IP cameras). But when I buy a piece of hardware I want a standard way of accessing it that will work with Windows 95, Windows 2025, macOS 11.4 Zebra, and YouDontEvenNeedTheTerminalAnymore Linux 2035.

Looking at stuff locally-available, D-Link was the only one who came close to meeting that criteria. They’ve at least got a standard web interface (familiar for anyone who’s used their routers), and if you want to completely avoid their apps and cloud stuff you can. Their IP cameras also have the ability to email or FTP video or screenshots, either at regular intervals (which I wanted), on a schedule, or when motion is detected.


A few quick image captures of a grapefruit seedlings in a grow tent – these were uploaded to an FTP server by 2 of the cameras. Both standard mode and “night” mode are shown (during “night” mode, the tent is pitch-black inside and the camera relies on IR):

DCS-933L grow tent DCS-933L grow tent night DCS-933L grow tent - cam 2 DCS-933L grow tent night - cam 2

(click for the “full-size” 640×480 images)


The DCS-933L wifi camera (aka Cloud Camera 1150) – some CONS

The D-Link stuff isn’t perfect. I’m at the point where I suspect nothing short of a hobbiest with a Raspberry Pi Cam will get everything right. But here are the issues I’ve noticed with this D-Link camera (aside from the lower 640×480 resolution):

  • No RTSP stream that I’m aware of – if you want to “pull” video you’ll have to use the undocumented mjpeg streams (I’ll list them later). Alternately you’d have to either use the app or set the camera up to ftp/email clips. I believe newer D-Link models support RTSP, but the DCS-933L doesn’t.
  • Web Interface: Viewing any video. Setting up Motion Detection. Setting up Sound Detection. All require Java to be enabled in your browser. To be fair though: (1) Everything still works – you just can’t see video or configure motion detection regions from the web interface without Java. (2) At least it’s not flash. (3) This model was probably developed a few years ago when a number of people still thought Java and Flash had a future in web browsers.
  • Web Interface: The camera uses web browser User Agent sniffing and disables access to the web interface if Chrome or Edge is detected. Instead you get a warning message with no way to proceed. This one really annoys me. The browsers themselves work fine so I suspect it’s retribution by a D-Link programmer who spent a lot of time on the Java player only to find out that those web browsers were the first to depreciate them. The only ray of light here is that it’s a blacklist instead of a whitelist, so you can modify your UA if absolutely necessary.
  • While emailing images/clips from the camera has SSL-options, the FTP options don’t list TLS, SSL, etc. That means your FTP username/password could very well be sent in plain text.


The DCS-933L wifi camera (aka Cloud Camera 1150) – some PROS

Now the good news!

  • No cloud/app/setup programs required! Yes they have them. And yes, the install wizard will make it waay easier to find the ip address of the camera the first time it’s hooked up to your network. And yes, if you’re wanting to view a real-time feed of your camera remotely it’ll probably make things a whole lot easier there too. But you have the option to use the web interface built into the camera to get everything set up and running and don’t have to touch any propriety software – you can use whatever OS or device you want (as long as it’s got a web browser). So unlike other IP cameras that are suddenly worth close to $0 the moment the manufacturer decides to stop supporting the software, this IP camera should remain useful until it physically dies.
  • FTP and email stuff. And fairly flexible FTP/email stuff too. Can be triggered by motion detection, scheduled for a certain time every day, or always running and uploading at certain intervals. This goes for both video and images. Note that for images, you can either choose 1, 2, or 3 frames per second, or choose to have a frame taken every x seconds (for example 3600 seconds would make for 1 frame per hour).
  • Wireless extender functionality built in (can be turned on/off). You can either extend your wireless network’s SSID or create a new SSID. It does have a max of 5 clients (can be configured 1, 2, 3, 4, or 5), but still… a nice little freebie if you camera happens to be near the edge of your wireless range and you want to extend it.

The undocumented URLs:

If you happen to have (or buy) this IP camera, a few links that’ll let you access the video feed (or image) from any browser on the same network:

http://192.168.x.y/mjpeg.cgi?resolution=VGA (video)
http://192.168.x.y/video.cgi?resolution=VGA (video)
http://192.168.x.y/image/jpeg.cgi (image)

(replace the “x” and “y” to correspond to the IP address on your internal network)

…these might be useful if using a separate program to try and record/stream a live feed, or you could feasibly bookmark them if you want to peak at the area real quick.


My experience with the FTP functionality

FTP works, but is fairly simple. The lack of any encryption is a bit of an annoyance. Here’s the page for those interested:

ftp

If an upload fails (server connectivity or server error), it fails silently and just continues on like nothing happened – the image it “tried” will just be ignored (lost).

There are a few options for file naming, and since my time lapse will likely take place over a period of months I opted for the date/time to be part of the file name. It’s great for sorting and also avoids any issues if time stamps are changed when the files are copied. The one downside is that while you can *prefix* the file name, the date and time are one long jumble-number. For example, new years eve at 11:39:01.24am (11:39 am with 1.24 seconds) would be 2016123111390124.jpg . It would have been really nice if you could create a custom format to help with readability.


D-Link DCS-933L in the grow tent

Overall Thoughts

After reading oodles of manuals and comparing prices, the D-Link models are a little closer to the sweet-spot for me simply because they’re on the lower end price-wise, don’t require OS-specific software, and have FTP functionality built in. The DCS-933L model is a little tough to handle simply because of the low resolution, but if you find one cheap enough and don’t mind the low res, it’s not a bad camera all in all.

That said, you could easily make the case that a Raspberry Pi with a 1080p camera would be cost-competitive with many of these IP cameras and be more flexible/powerful when it comes to specific tasks. There are probably some no-name eBay/Amazon cameras that would as well (they’re unfortunately hard to find manuals for before purchase though). Then again, IP cameras have been the big security worry lately so I suppose there’ll always be some tradeoff there.

As for the future, I suspect my next camera will either be another D-Link or a Raspberry Pi + Cam. Either way, I’m looking forward to tossing all these jpegs in a video editor at some point in the future and watching the plant growth in fast motion!


Web Interface Screenshots

To close things off, some screenshots within the Web UI of the DCS-933L. If you’re in the same boat I was (looking through manuals to see if each camera would do what you wanted it to do), hopefully skimming through some of these will be of help to you.

admin audio browsermessage dynamicdns extendersetup imagesetup javawarning javawarning2 livevideo motiondetection networksetup sounddetection timeanddate video1 video2 video3 wirelesssetup1 wirelesssetup2
(click a thumbnail to open one up and scroll through)