@Bojan: Well, if you're constantly reading the stream of 20 cameras simultaneously, there's a chance it could be putting undue load on the server. It has never been tested in that kind of environment. I wouldn't think you'd crush the server, but if each stream is taking 2-3% of CPU to read/decode, make it times 20 and you're taking a decent toll on the server.
@Bojan: what kind of load are you seeing and what version of the decoder are you using? (wpf, xna, etc.) In my testing here, my test apps are cranking away at a 640x480 stream at 30fps and I'm only seeing 5-6% CPU at most, typically less.
@nils: Definitely an option worth exploring. Anybody want to give it a try? I'm swamped for the the next few weeks on some other projects. . I'd be happy to add it in if anyone manages to make it work...
@LukePuplett: You can only run this OOB becuase of the crossdomain.xml policy goodness in Silverlight. The cameras don't have this file on their internal webserver, so browser-based Silverlight won't work at all. That said, even OOB apps can't modify the User-Agent header either via the Headers collection or the UserAgent property.
@_ivan: I have tested with the Cisco WVC210, TRENDnet IP110W, and a very old no-name brand camera. Practically any IP/network camera (i.e. not a USB webcam) should output MJPEG and work with this. I don't think I've seen an IP cam without some kind of MJPEG support, but that doesn't mean they don't exist.