4 Webcams & 1 PC

One of the better webcam models I use.
It amazes me that the support for webcams is still patchy for Mac and Linux. I guess Mac has iSight, but what about people who don’t want to pay for that. With Linux there is often way too much fiddling around involved–this works, that doesn’t work, maybe the other works, if you do this and tweak that, and so it goes on.
I wanted to run 4 webcams of various models and to do it effortlessly, so I would not have to be continually be configuring files all over again after every reboot. I tried doing everything on the Linux box, using the Motion program. The program is great and does a good job of running multiple cameras, but I couldn’t figure out how to make it assign a video port to a specific camera and stick to that. I had to reconfigure the file names and details in each thread file with every restart because they were being assigned to the wrong cameras.
Other problems I had were that some cameras were giving me flaky performances. I had two Logitechs but you can’t run two at once on the same PC, no matter which OS you are using. That meant one was out. I incorporated my old Mac iBook, but some cameras wouldn’t even work on it, and that little iBook seemed to be generating too much heat with only two cams.
I needed a one fix for all solution.
What I did in the end, to end all of the time wasting, was resort to Windows. There, I’ve confessed it. It was just a matter of convenience. I set up an old PIII with Windows XP as a devoted webcam machine. Its job was to do nothing else but run 4 webcams. I found out that it kind of struggles just doing that.

How was it done? Well, the PIII only had two USB ports, so the first thing I tried was a USB 4 port hub to give me 5 ports; however, the most webcams I could get running at any one time was 3. I tried every combination I could with the computer’s 2 USB ports and the 4 port hub. Some hardware geek might be able to explain why it wouldn’t work. I didn’t know, so I contemplated another solution.
Then, when out shopping for some computer parts, I spotted a 4 port PCI card and immediately thought that this would do the trick. It was so cheap, and what a buy it turned out to be! As soon as I got home I plugged it in and it did everything I’d hoped for. Now I have all 4 webcams plugged into that card and the other 2 standard USB ports are taken up with the mouse and keyboard.

It wasn’t all straight forward to get everything working, however. To get the webcams recognized when plugged into the PCI card’s ports, drivers seemed to need reinstalling over and over again. (The same thing had happened with the hub each time I switched a webcam to another port.) This became a bit fiddly with multiple reboots and plugging and unplugging things. It took a while but things were sorted out in the end.
The other crucial part of all of this, of course, is the software involved. I narrowed it down to 3 open source programs: Fwink, Yawcam and Dorgem. They’re all good, but Yawcam’s interface and options drew me to that one.
The question was would it run multiple instances? A search of the web couldn’t reveal any conclusive information. Some people said it may have to be installed twice. So, once I could ensure the cameras and hardware weren’t misbehaving, I experimented and found that you simply just run Yawcam again and again and edit the settings each time, as you would expect.
Yawcam wasn’t designed for that, but it does handle it. The only problem is that when you reboot or close Yawcam down and start up again, you have to edit the individual settings again for each webcam. It will only remember one set of settings, which is a pain.
I guess, in way, I’ve still got one of the problems I started out with, having to reconfigure config settings. But the difference now is that with a devoted server, I rarely have to reboot it, even if it is running Windows!
Finally, two issues I haven’t been able to resolve are 1) Firefox’s image caching and 2) a clash between the webpage’s image refresh and the software’s image update, or when no image is available to load. Those aren’t too serious, though. The former wouldn’t matter to most people because they wouldn’t have their browser open at my site all day, as I do. The latter would probably be solved by a faster cam server.
For the code to display the images, just view the source on one of the webcam pages on the Ubantu Home site. It’s pretty straightforward to follow. Other ways to do the same thing exist, but the code I’m using is the first I tried that worked, and I see no point in changing it just yet.


