Streaming in HD (Quick Guide!)

mario-gaming

Not long ago, I did an article about some of the basics in live-streaming and some of my experiences in regards to that. I talked about bit-rate, bandwidth, and other things that a potential streamer (or even recorder) should be aware of and take notice of. Well, today I am here to expand on a bit of that and talk about some other things I have learned, as well as provide a bit more advice in terms of potential settings and things that can be used in both local video recordings as well as live-streams.

First, let’s talk about some of your quick options for doing locally-recorded videos that you will toss up on YouTube at a later date. For this discussion, I will be talking specifically about using either XSplit or Open Broadcaster for this purpose, though please keep in mind that there are other great options out there like FRAPSBandicam, and D3DGear, to name just a few. But, when it comes to making a local video, there are a few things you will want to take into account, such as the overall power of your processor (if using X.264, which is entirely CPU-based) or your graphics’ card (if using a hardware encoding option), the availability of decent drives (faster HDD’s or SDD’s are best) that are separate from your OS or the drive your game is being hosted on, and what type of stuff you want to record.

A lot of programs now encode and compress video using X.264, and because of this, the CPU load will increase quite a bit when you are recording (or streaming) video, though this is heavily dependent on the settings you use. Yet, if you factor in that quite a bit of games are also CPU-heavy, you can quickly reach a bottleneck whereby the CPU will be constantly spiking to 97-100% and throttling back your game until this resolves, resulting in lag-spikes and therefore periodically slow or choppy gameplay. Another, separate issue is post-production lag that is noticeable in a video due to dropped frames, and this is usually caused by the video encoding settings being too high for the selected hard-drive to keep up with without dropping frames here and there.

In both cases, you need to tailor your recording to the set-up that you have. Getting a separate drive, as discussed earlier, is one thing you should definitely do, yet beyond that, you will simply need to play with the settings. In XSplit, I personally set the software to use “Video Codec Engine (VCE)” as my encoding option and set the quality to “Standard” since I found that quality level to produce good video with little-to-no performance impact while recording, and doing so also kept the file-size reasonable, which is another concern. If you are using X.264 (if your card does not support hardware encoding or if you are using OBS, which presently only has experimental support for hardware setups), you should definitely keep your encoding profile to “Veryfast” (discussed later) and probably keep the quality to “Standard” (or around 6-8, if using numeric options) in order to keep the file-size reasonable. If you want to experiment with using constant bit-rate for a local recording, I’d try setting it at around 5,000 kbps for most programs at 1280×720 and then upping it to 8,000-10,000 if producing content at 1920×1080. If you experience issues with this, you can lower the frame-rate or back down the resolution and therefore the bit-rate to keep the video running smooth and clean.

Here are some options that may work for you in terms of settings (adjust based on the program you are using):

RESOLUTION: 1920X1080

QUALITY/BITRATE: 6-8 or 8,000-10,000 kbps

FRAMERATE: 30 FPS

AUDIO: 128 kbps

———-

RESOLUTION: 1280×720

QUALITY/BITRATE: 6-8 or 5,000 kbps

FRAMERATE: 30 FPS (you can experiment with 60 FPS if you wish)

AUDIO: 128 kbps

———-

RESOLUTION: 854×480

QUALITY: 8-10 or 2,500-3,000 kbps

FRAMERATE: 30 or 60 FPS

AUDIO: 128 kbps

Note that if you are using a hardware encoder and you get the option, select “Standard” as a good quality control, no matter what the resolution.

Streaming to Twitch is a completely different animal because of the fact that Twitch has its own settings it requires for the optimal streaming and viewing experience. For starters, no matter what resolution you are using, Twitch really wants all streamers to keep their broadcast below the 3,500 kbps threshold. There are several reasons for this, but ultimately it has to do with their own bandwidth and the fact that if the stream bitrate is way too high, the end-viewer may experience a lot of performance issues, lag-spikes, and dropped frames from the video, or the stream will freeze and buffer constantly. Twitch also insists that you use a Constant Bitrate setting as opposed to Variable Bitrate (e.g. where you would set a quality level and the program would determine what the bitrate needed to be based on what was on screen), which ultimately makes the stream more stable and consistent.

Here are some settings you should set once and then leave along in regards to live-streaming:

USE CONSTANT BITRATE

USE STRICT CBR

KEY-FRAME INTERVAL: 2

ENCODING PROFILE: Main

Once you have those settings hard-wired into your broadcasting program, it is up to you to figure out what your system is capable of streaming at (using your CPU, since anything other than X.264 for live-stream encoding is very experimental at this point, except maybe in XSplit GameCaster) and what your bandwidth can actually handle. Using an online program to figure out your actual bandwidth is great, but you need to determine (through a test with XSplit or OBS) what your actual throughput to the Twitch servers is. In other words, if your actual bandwidth can sustain 10 Mbps upload, but your connection to Twitch is limited to about 2.5Mbps, there’s simply no reason to attempt to stream beyond that upper limit, and that limit itself should determine for you what resolution you should be streaming at.

Earlier I mentioned your CPU Profile, and you’ll see that there are options called “Veryfast,” “Superfast,” “Fast,” “Medium,” etc. The short version of what this means is that the faster settings spend less time encoding and compressing the video, and therefore to maintain an equivalent level of quality to a “slower” profile, they need to have more bandwidth to work with. The faster settings also use less of your CPU because you are spending less time trying to compress the video. On the other hand, the slower profiles spend more time compressing the video, but this requires more CPU to do. For the most part, you should likely leave this setting on the default, which tends to be “Veryfast.” However, if you have major problems, even after lowering the bit-rate and resolution quite far, you can tailor it back to something like “Superfast” or “Ultrafast” to see how that looks, though most likely you will have a rather pixelated and artifacty stream to deal with. On the other hand, if you have a more limited bandwidth, yet want to attempt higher quality streams and you have the CPU overhead to do it, you can bump it to “Faster” or “Fast,” which will produce higher quality video that is smaller in bandwidth, but will take a lot more processing power to get out there.

In general, assuming you leave the previous setting on “Veryfast,” here are some resolutions, frame-rates, and bit-rates for you to consider using:

RESOLUTION: 1920×1080

FRAME-RATE: 30 FPS

MAX BIT-RATE: 3,300 kbps

VBV BUFFER: 3,300 kbps

AUDIO BIT-RATE: 128 kbps

———-

RESOLUTION: 1280×720

FRAME-RATE: 60 FPS

MAX BIT-RATE: 3,300 kbps

VBV BUFFER: 3,300 kbps

AUDIO BIT-RATE: 128 kbps

———-

RESOLUTION: 1280×720

FRAME-RATE: 30 FPS

MAX BIT-RATE: 1,500-2,000 kbps

VBV BUFFER: 1,500-2000 kbps

AUDIO BIT-RATE: 128 kbps

———-

RESOLUTION: 854×480

FRAME-RATE: 30 FPS

MAX BIT-RATE: 750-1,000 kbps

AUDIO BIT-RATE: 128 kbps

In OBS, rather than selecting your source resolution, you basically pick a resolution scale. If you want to keep the quality fairly high, select one of the better filters that you can choose from. In regards to 30 FPS vs. 60 FPS, the general rule is that you should probably never attempt streaming at 1080p60 or you may experience issues (not to mention that 60 FPS requires twice the bit-rate to maintain equal quality, which means you reach a ceiling at 3,300 at 30 FPS and have no overhead anyway without a huge quality impact), though 720p60 might be pretty good for fast-motion, high-quality games whereas 1080p30 would be more suited to “normal” or “slower” material. But, at the end of the day, it comes down to your personal preference. Personally, I think 1080p at 30 FPS is just fine for most anything, but you can mess with 60 FPS if you want.

So, there we have it! This is by no means exhaustive, but I do hope it serves some value to you!

Jessica Brown

Retro Games and Technology Editor. She'll beat pretty much every Mega Man game without breaking a sweat.