Well, IP cameras, by definition, are compressed. You could use GigE machine vision cameras but then you need to figure out what to do with all that bandwidth. VMSes typically have bandwidth limits per machine so even if you could theoretically connect uncompress video feeds, each VMS server would probably only manage/store a few cameras.
Let me turn the question around: Why do you want / need uncompressed HD video? You can still go for minimally compressed HD video if you wanted to absolutely maximize quality and almost certainly not have any noticeable quality degradation.
For instance, if you really want it as uncompressed as possible, use MJPEG with a very low compression level.
This is for a new product in design and development which is differentiated by having as much HD incompressed streaming as possible, and advantages over compressed, even low compression, would be image quality for live viewing on large screens, hyper resolution for forensics analysis and legal of playback/stored files, facial and other recognitions, etc. This would not be IP from the camera output, just at some point IP encoded in the server to enable network connection. I understand the VMS bandwidth limitations as you mention (although getting the specs is difficult) but can't seem to find if they can take uncompressed streams at all, and if they need them IP encoded, etc. Thanks
IPVMU Certified | 09/09/13 08:47pm
I haven't seen one yet. And John pointed out what's sometimes overlooked, some people think MJPEG is uncompressed while actually it is a compressed format.
What your asking for seems to be more what's found in the realm of machine vision application, requiring mahcine vision cameras and protocols, and you may have to develop your own VMS or work with a current VMS provider who can and will do modifications that you want. Or maybe a machine vision camera manufcaturer might know of software. SenTECH and Basler are two manufacturers I know of right off hand.
Uncompressed video is about 100x the bandwidth of H264 main profile. This means you would need about 400Mbps per 2MP camera for 25fps. This means you would need 1 Gigabot NIC for every 2 cameras.
I am not sure what the exact bit rate of 1080p / 30fps HD video is but here's the calculation from the Wikipedia page on uncompressed video:
- "24bit @ 1080p @ 60fps :24*1920*1080*60=2.98 Gbit/s."
- "8 bit @ 1920 x 1080 @ 24fps = 95 MB per/sec" or 760 Mb/s
Even taking the low number (760Mb/s), that's still like 38x greater than the 20Mb/s one commonly sees for 2MP MJPEG in surveillance. And that's still 4 to 5x more than H.264.
I think the bandwidth from the camera to the server is doable using our tech, and building out the server and backend hardware is just a matter of capabilities, but I'm afraid the constraint will be the VMS if it can't handle the multiple HD uncompressed inputs. Maybe the VMS will have to receive compressed...don't know? I'm somewhat familiar with Vision Cameras but will look into that as you advise.
Even the highest definition video available has some sort of compression. Believe it or not, digital theaters use JPEG2000 at bitrates ranging around 200Mb/s. BluRay movies use one or the other flavors of h.264: AVC or VC-1, typically at 20-30Mb/s. MJPEG is very similar to JPEG2000.
I believe your best bet is to use very low compression levels of a standard codec.
Do you have to use IP cameras? Have you looked at HD-SDI cameras?
These are not IP cams, they are digital HD with our proprietary interface out to the VMS server. IP encoding will take place in the server for connecting to the etwork or as neccessary for the vms to function.
Have you thought much about the backend disk? Let's say you stack your server with multiple 10Gbit NICs. You would need some serious drives to pull off that kind of I/O. Not to mention the cost of storing it for any real duration. Unless your cameras have dedicated built in disks.
I would be interested to see how you plan to handle the hard drive issue. If you're talking about 800 Mbps stream, that's 100 Megabytes per second. Average write speeds of enterprise hard drives are 130-150 MB per second.
The only way to pull this off would be a huge raid 10 array or leverage ssd. Maybe a hybrid design like Tegile or NexSAN. Even they can't sustain the writes needed because of the need to flush the SSD cache to spindles. Tegile maybe because of their inline compression. All SSD would work but that is big $$. I'd be interested in the design requirements. What level of sustained throughput are you taking? Plus to compound the issue you are not looking at sequential writes but random, unless you can somehow queue it in the sysrem memory then do one big sequential write.
Uncompressed HD video will be 0.5..3.0 GBit/s per stream as John gave the math above. For VMS software the uncommonly high figures are perhaps not a fundamental problem: computer can capture this type of feed, it can transmit data, it can visualize. This raises other questions: how to store it in real time, how to transmit over LAN if required, perhaps also how to compress in real time if compreession is necessary along with uncompressed. I believe these are essentially limiting use of uncompressed video in VMS, in other aspects VMS would deal equally well with compressed and uncompressed video.
Uncompressed video hardware was always there in VMS world. Frame grabber boards were originally converting analog SD video into uncompressed video on PC system side. Then more sophisticated frame grabbers started offering onboard compression as an option. HD video, however, is typically compressed in hardware. With HD resolutions, PC specs let you connect only few video streams before you start hitting other hardware bandwidth limits - this figure is typically far smaller than average/typical number of cameras per VMS host.
To give an example of HD uncompressed video with Luxriot... I just checked before posting: have a [non-surveillance] Blackmagic Intensity Pro board in my system with HDMI input, with 720p 50 fps signal on it. As Blackmagic supplies a driver to make the video feed available as DirectShow API video, and Luxriot accepts generic DirectShow API inputs, all this connects and uncompressed video is on Luxriot and it is possible to record it uncompressed. The stream inflates the storage very quickly, of course, however basic view-record-playback is okay. Honestly, I suppose there might still be some side issues, esp. with network transmission, but in general this uncompressed stream is nothing special for VMS, excluding its unusual size.
IPVMU Certified | 09/10/13 12:07pm
Brad, we're an integrator who primarily deals in and promotes Geutebruck's GeViScope VMS, which is based out of Germany. I asked one of their SDK team members about integrating GigE cameras into the VMS and they said it should be doable with their SDK. What also makes me think of Geutebruck is they already have integration with and have a close relation ship with Basler and their IP cameras, and Basler also does machine vision cameras. So mabe it's not too far of a leap to do. And if anyone can pull it off, I think the Germans can.
Next question - remote monitoring. You have this beautiful, uncompressed HD stream and its being recorded by Luxirot or Geutebruck, etc.
Now, how do I view that feed from a computer in another room or another building or other city? Is the VMS transcoding to stream out? If so, how much load does that consumer? What impact?