HD Webcams
ConferenceXP works in HD video format with several "HD" webcams. I found out in December 2010 that it worked with the Logitech C910 and the Microsoft Lifecam Cinema models without any changes to the software. This should work with almost any webcam that outputs in MJPEG format.
Some will find it surprising that HD video can be ingested via USB 2.0, and with good reason since "real" uncompressed HD bitrates are higher than what USB 2.0 can handle. For that reason, several manufacturers have designed these types of webcams to output video in MJPEG compressed format directly from the hardware. The drivers bundled with these webcams hide the "raw" MJPEG stream from the computer by uncompressing the MJPEG stream from the webcam and outputting the YUV/YUY2 and/or RGB streams to the software, making it look like the webcam's output is uncompressed HD video. However, by using the native Windows driver instead of the webcam manufacturer's one can normally have access to the native HD MJPEG stream from the webcam (as well as the lower birate native YUY2 stream, in the case of the C910 and Lifecam Cinema).
In order to change the driver and/or to find out if your webcam outputs in MJPEG do the following: in Windows 7, go to the Device Driver; find the webcam (normally under Imaging Devices); choose "Update Driver", "Browse my computer...", "Let me pick from a list...". The native Windows driver should show up as "USB Video device" if the "Show compatible hardware" box is ticked. Select this driver and when the installation is finished, ignore the warning about having to reboot the computer (unplugging, wating a few seconds and then plugging the webcam again should suffice).
In ConferenceXP under video "Advanced Settings", click on "Video Format". Under "Color Space/Compression", choose MJPEG and then select the frame rate and output size. Exit Capture Properties, click on "Camera" and make sure that the Low Light Compensation box isn't ticked on the Camera Control tab (some other cameras also appear not to function correctly unless one disables automatic exposure). Logitech's C910 works correctly as long as Low Light Compensation isn't ticked. Make sure to tick (disable) the boxes labeled "Disable forward error correction" in both video and audio settings. Sending the video as "uncompressed video" will now send the raw MJPEG stream from the webcam to the CXP client(s). At the client's end, ConferenceXP detects that the video has MJPEG compression and automatically handles the decompression.
Usable resolutions I have tested with the C910 go up to 1920x1080 @ 15 frames-per-second (even though the dialogue box allows for 30fps under that resolution, tests confirm that it doesn't work and is actually 15fps). The highest resolution that seems to work at 30 fps is 1280x720. Some higher resolutions work at 24fps. The Microsoft Lifecam Cinema appears to work well up to the maximum resolution of 1280x720@30fps.
Bandwidth is variable since the MJPEG codec uses VBR. I have measured bandwidths of between 23 and 36 Mbps, so a very high-speed broadband connection to the Internet (or, ideally, Internet2 or equivalent connectivity) would be required. Latency is minimal and appears to be as good as, if not better than uncompressed DV [DV isn't really uncompressed, but works on the same principle of compressing the SD stream (~150 Mbps down to ~30Mbps) in the camera or video input hardware (i.e., Canopus)].
It is possible to compress the MJPEG stream using CXP's native WMV compression. However, at the higher resolutions, latency might be too high as the MJPEG stream has to be decompressed and then recompressed by the software. Trial-and-error will have to be used to determine what resolutions work with and without compression for your computer/webcam combination, and if it might be better to use the webcam's native driver's RGB/YUV/I420 color space instead of MJPEG when using CXP's video compression.
In order to save on CPU resources, it is recommended not to have the Auto-play "My video stream" selected. It is also recommended to use fairly powerful CPUs (dual-core or higher) for both sender and client. I have also found that the type of video card (GPU) in the receiving computer can influence the quality/smoothness of the video.
I tested this configuration using mostly two fairly old (2006) HP NW9440 laptops (Intel Core 2 Duo T7200, 2GHz). After several tries using an Ethernet Gigabit switch and the local venue in CXP, I was able to get them to send/receive HD video and uncompressed audio with minimal latency, using the Lifecam Cinema on one and the C910 on the other. CPU usage was fairly high at around 70% when using 1280x720@30fps resolution on both computers. Looking at these tests results, I would imagine that more modern dual/quad core CPUs should be able to handle this scenario quite well.
So far, results with Windows XP have not been totally reliable, although it has worked in some tests. I have not tested with Windows Vista, only Windows 7 (32) and XP Pro (32). There are also some "oddities" with some of these webcams - i.e., certain "features", or items such as YUY resolution range might only work well with the webcam's own bundled drivers.
Testing the setup
I have found that the only reliable way to ascertain if the video (and audio, especially uncompressed) might work properly with a remote client is to connect two computers via a router/switch and use one to send and the other as client. One should then test using both computers for send/receive. Depending on the hardware setup, sometimes the "test video/audio" option in CXP isn't reliable enough to show if the setup might work for a "real-life" session as the computer has to compress-decompress and send-receive in real-time. This can use too many resources to work without glitches on one computer, but might be OK if tested with another computer as the client. I have found that most reliable audio/video sessions happen when CPU load is less than 80% when sending AND receiving (the lower the CPU load, the better chances of a reliable connection). Disabling any unneeded programs/services as well as Windows' file indexing and any auto-update features (both Windows own and other software such as antivirus programs) can be of help in reducing CPU load and video/audio glitches.
Update - March 12, 2012
I have tested the Logitech C910 USB webcam with a MacBook Pro under Bootcamp and Windows7 Enterprise (I7 quad-core processor) using the MJPEG scheme above. CPU usage was greatly improved as compared with the dual-core computers above, but it is still advisable to switch off the Auto-Play of "My video stream" during the session to save on CPU/GPU resources - especially if the other CXP users in the session are also sending MJPEG streams. I was also able to send video from two cameras connected to the MBPro simultaneously during the same session (the second camera was a firewire DV camera, using CXP's native compression). Using two USB webcams sending their native MJPEG streams has not worked at the receiving client's end as of this writing, even though sometimes it appears to work when doing CXP's native Video Test at the sending computer.
Results with the MBPro's own built-in webcam using the generic USB Video driver and MJPEG were problematic and more experimentation is needed to ascertain under what conditions it might be able to work reliably. It seems to work well using the dedicated video driver. I have not been able to get the Logitech and the MBPro's built-in webcam to work concurrently in a reliable manner as yet.
When using native bundled drivers, most webcams I have tried will give an option of using either RGB/YUV or I420 color space. Experiment with your webcam's available color spaces to see which one yields the the best video quality, as well as the least CPU load under comparable resolution/frame rates and video compression settings.
Reminders about using a webcam's native MJPEG streams
Always double-check that CXP's "native" video compression is switched OFF (i.e., CXP should "think" it is sending uncompressed video). It is quite easy to forget this and the computer will then be doing double-duty by decompressing the MJPEG stream from the webcam and recompressing it with CXP's native WMV compression. If native compression is desired, it has been my experience that it is best to use the webcam manufacturer's own video driver instead of the generic "USB Video" one.
Also, remember to DISABLE the "Low Light Compensation" option under the Camera Control options in CXP when using the generic USB Video driver (with some cameras, that option is greyed out). If this isn't disabled (i.e., in the case of the Logitech C910), the camera will try to auto-adjust the frame rate depending on light conditions and the video stream might become corrupted and/or unreliable. Double-checking this setting for every new session is always a good idea as sometimes that setting doesn't appear to "take" once CXP is restarted. With some cameras, disabling "Auto-Exposure" can also be helpful (one would then need to adjust the exposure manually for optimal video quality).
Windows Media Player Network Sharing service
As stated elsewhere on this wiki, disabling the Windows Media Player Network Sharing service in Control Panel/Administrative tools can help to solve some CXP crashes when trying to use MJPEG streams. Unless this service is absolutely required, I would recommend having its "Startup Type" selected as "Disabled" when using CXP.
(José Feghali - TCU School of Music)