Yeah its like solving a crime!

If you think it may be network topography related that's also pretty easy to check. Large file movements using scp or 1500 byte flood pings from/to multiple concurrent hosts are a good method. Looking at the ifconfig display of the Linux boxes for errors can help too. In the early days of FDX there were some RFC disagreements of a sort. I remember having to force a few Compaq DL380 servers into HDX to resolve overrun issues on FDX. At the time too we had some 24 port Cisco 10/100 switches that only had an aggregate throughout of 300Mbits/sec! That trapped us more than once.

ie have a look at the switch specs just in case..

I'd dispute that 5.8MB/s wouldn't be saturating a 100MBit/sec Ethernet. I'll admit I haven't done any test recently, but that's mighty close to the magic 60% I use to use for network scaling 10 years ago. Lots of overhead to contend with. Whatever the case its easy to check with large file transfers to /dev/null etc. It gets really upsetting when you find your 100MBit/sec link isn't!

Greyscale jpgs I think compress better than colour, so they are smaller. My daytime single image size for the 1280x1024 at 80% is about 340KB whereas the IR lit night monochrome scene runs about 200K. That diff can have a large network impact.

Okay, leave you with it!

Cheers Bob


On 25/11/12 05:46, Jason Sauders wrote:
Hm, this is giving me some food for thought. After some additional testing it seems as if the bottleneck has occurred at both the network level and the camera level (at least, I think so). I put my 10/100 switch back and sure enough things were acting slow as they did before when I had multiple streams going on. Once on the gigabit line, things worked significantly better. I'm not sure if it's just the switch processing the data faster that helps or what, because the cameras do indeed have 10/100 ports on them. I did the jpg test and most images were in the 180 Kb area. Using 200 as a "worst case scenario" type of number, that comes out to 5.8 MB/s. That's at 1280x800 with 30 fps. The max possible for 10/100 lines is 12.5 MB/s, so 5.8 MB/s isn't hitting the 10/100 throttle at the camera level. However, perhaps my 10/100 switch having to process two cameras @ 5.8 MB/s consistently was enough to make the Netgear switch seem significantly slower with the teleporting, whereas the Dell (gigabit) worked much better. During my typical Motion usage, I do not capture snapshots. I simply capture 1 fps timelapses and avi files of the motion recorded, typically at 15 fps (but this 30 fps kick I'm on is really just for comparisons)

That said, I'm finding some strange things here. Last night I had both cameras running at 30 fps with webcam_maxrate 30 fps and I was streaming both of them simultaneously. There was zero skipping, absolutely zero. When cars would go flying by I would see absolutely zero skipping, both live when I was viewing it and even when I viewed the .avi's back on the server. Today, things are much different and it seems as if skipping is much more apparent. Now granted, I was tinkering around with some network stuff Perhaps that's the difference in quality of night vision black/white/and I assume lesser quality feeds versus day time where there's much more going on. Hard to say. 

Today I decided to remove Motion from the picture, so I disabled the service and just began streaming the direct mjpg url. There's three fields to work with when it comes to mjpg streams. Resolution, Framerate, and Quality. We're working with 1280x800/30 fps here, but the quality I have set to "excellent." I've been doing some comparisons of that excellent field. Available options are Medium, Standard, Good, Detailed, Excellent. At 30 fps with the 1280x800 resolution, excellent has skipping. Again, no Motion here - just a direct mjpg url streaming over cat6 lines and a gigabit switch. If I clock it back to 30 fps/good (instead of excellent), I see no skipping at all. If I swap them around and do 20 fps/excellent, it's the same deal. I guess utilizing excellent with the highest fps possible is what's tanking it.

Networking wise, I've been doing some tracking based on the different settings possible. Even if I'm using excellent, 30fps, 1280x800, I'm still barely hitting a consistent 5.0 MB/s. It's more like an average of 4.3 MB/s with an occasional bump to the 4.9 area. Even on 10/100, your max throughput given that there's zero noise etc is 12.5 MB/s, which I'm still far off from even when you take some headroom into consideration. I'm really beginning to lean towards the camera's processor being able to crunch the "excellent" video quality with 30 fps is where the root cause is. Couple that in with Motion and you have quite a few cooks in the kitchen who might be responsible. Given the circumstances, it doesn't look like Motion really played a key role at all in this.

I think what I'm going to do is just throttle the fps settings back, as that tends to be a "best of both worlds" type of situation. Even at 15 fps, I'm still getting fifteen shots a second - that should be more than enough in case Mr. Burglar decides he wants my grill.

Thanks for the discussion Bob. This got some gears turning!
-J