One of the most commonly hardware devices used with XSplit is a web camera. Whether you are vlogging or casting an epic run-through the arena in Hearthstone, adding a web camera is a sure fire way to improve interaction with your audience. This blog will help you ensure you are getting the best quality and performance out of your web camera!
FPS related issues with web cameras
Most web cameras come with drivers and software. The problem is that the web camera software in general tends to suggest that ‘automatic’ modes are always the best. This is rarely the case.
Most web cameras, especially web cameras in the sub $100 USD range, cannot keep stable frame rates if the exposure settings are too high (it can also affect cpu usage). The automatic mode does not acknowledge this, as it is mostly concerned about image visibility and not about maintaining a steady frame rate. Therefore, in a dark room, automatic mode will keep you visible, but at a lowered frame rate. Even in a bright room, it is still not advisable to use automatic mode because your environment can change to a setup the auto mode can't handle. This is especially true if there is a possibility your lighting settings could change drastically over the course of your broadcast (i.e. daylight to night).
Turn auto mode off
At XSplit we distinctly recommend disabling all automatic modes on your web cameras. If you're adamant about high quality, you need to take charge of and control your environment through good lighting, and you need to set your devices to their optimum settings. If you’re using automatic modes, you rely on “average fits all” logic and your camera will behave quite differently when there’s a cloud passing by your window or the reflective brightness from your monitors changes during streaming. Another potential issue is auto-focus on chroma key setups. If the camera shifts focus, your chroma key will likely change shade of color, and this can cause a blurry edge around your figure. While the following information focuses on a Logitech web camera, much of the information can translate to other types of web cameras. Generally speaking, you will want to turn off automatic settings for exposure, gain, and auto-focus.
In XSplit right-click your web camera, choose “Configure” and click “Video Input”.
On the driver window, in the first tab: Disable “Auto-focus”. You will have to do some manual adjustment after. Make sure you adjust while seated in the position you intend to stream from.
On the second tab: Disable “RightLight”, “Gain” and “White Balance”. After disabling these auto modes, adjust the sliders to your liking. Please note, if you set the exposure slider too high, you will encounter low frame rates.
Video example on why auto mode is bad for you!
This shows me enabling and disabling auto mode. Watch the camera FPS difference: View the video below.
General camera settings
In XSplit right-click your web camera, choose “Configure” and click “Video output”. This menu is where you will configure what the web camera output is. While the output size and frame rate are fairly self explanatory, one important thing to note is the color space/compression. USB 2.0 web cameras (and capture card devices) cannot send a lossless full colorspace spectrum in 1080p picture through USB2. The camera needs to compress the data stream. Where available we recommend the compression formats MJPG and YUY2 as they have the least visible deterioration.
No need to capture 1080p!
Also, please consider what resolution you need for your shot. Unless you’re doing a full size shot of the web camera, there’s no need to capture it in 1080p. Consider setting the camera resolution relative to the size of your source. Example: Here’s XSplit set to record in 720p at 30 fps. There's no point in capturing your web camera in 1080p. But what size should you capture? My web camera is sized to a specific portion of the scene. Try to guess the pixel height of the web camera source...
It’s 272 pixels. Hence the ideal capture resolution for this shot is 360p. If I set the resolution of the web camera higher, then I’m basically wasting USB2 bandwidth and the resized image would not look different. Note: The exception to this is if the camera is bad at resizing due to hardware limitations. In this case you will want to let XSplit resize it (because it uses a sophisticated software algorithm) to achieve a better image quality.
Also, if your recording or live stream is in 720p, all sources at higher resolutions are generally just a waste of resources on CPU, GPU, memory and external hardware. Always set your source resolutions and frame rates to something relative to the resolution you’ve set in XSplit Broadcaster in order to use your computer’s resources optimally.
Another reason why we generally don’t recommend doing 1080p capture on web cameras, is that you would not safely be able to add more than one camera per USB controller, because it would use up all the USB2 bandwidth. Your keyboard and mouse might even be affected if there’s congestion.
Warning on RGB24
We advise against using RGB24 (uncompressed) as a color space setting! The camera frame rate is typically severely limited with this setting (exactly how much depends on the web camera model and driver of the web camera).
Now that you've optimized your camera, have fun live streaming or recording! If you have any questions, please let us know in the comments!