Tech, eSports, and Gaming!

  • Facebook
  • Twitter
Showing posts with label guide. Show all posts
Showing posts with label guide. Show all posts
Posted by _ - - 12 comments


The Definitive XSplit Guide
by ApocTV and TechnicalMonkey (XSplit Community Staff)



Intro:
This guide is for setting up and tweaking XSplit.  If you’re not familiar with XSplit, it’s software to live stream just about anything you want.  Whether it’s your desktop, a video game, camera content, a console game via a capture card, or even a video from a file, XSplit can do it!  XSplit can also make local recordings on your hard drive of the content.



Get XSplit:
First off, you need to download and install XSplit from XSplit.com.  This guide assumes you are an XSplit licensed user.  If you are not, as you go through the guide you can adjust the settings to what you are restricted to in the free version of XSplit.

 The video version of this guide:


Main XSplit Window:



Get Speedtest.net Results:
Next, go to www.speedtest.net and do 1 or 2 speedtests to locations near you, making note of your results, or even just saving the image file of your results.



Basic XSplit Setup:
In XSplit, we first need to setup the basic settings.  Go to Tools -> General Settings, and go to the “General” tab.  In here, we want to turn on “Disable Aero Theme”, turn off “Hide from Screen Region”, and turn off “Enable Skype interaction”.  You will also see “Enable virtual camera output”.  This is used if you want to use XSplit as a camera source for another piece of software.  In most cases, you want this turned off.  The last option is “Enable Game Source”.  This is for “hooking” into games and using them as a direct feed into XSplit.  If you are not familiar with GameSource, you can read more about it on XSplit.com.  It also is explained a bit more in depth in the “Add Sources” section of this guide.

Still in the “General” tab of XSplit, you will see where you can set your Microphone.  Select your mic in the dropdown.  Below that is “My Recordings”, and this is where you specify a location where local recordings will be saved when using the “Local Recording” profile in XSplit.  The “Local Recording” profile is setup like a stream channel is, but instead it records it to your computer locally instead of uploading it out.  Keep in mind, you can stream out and also do a local recording at the same time.  It’s a great way to save your content for making VODs later.


(It is highly recommended to use less CPU resources on your desktop while streaming. In Windows 7, you can change the theme by right-clicking on the desktop and selecting Personalization on the context menu. You can then force your PC to use either the Windows 7 Basic theme or the Windows Classic (which disables Aero). This will save on both CPU and GPU resources when it comes time to stream.)


Stream Channel Setup:
Now let’s setup your channel where you will be streaming to.  We will assume you have an account with Twitch.tv or Own3d.tv and have already activated your channel by going to your streamer dashboard.  If you don’t have an account, go set one up!  It’s free.


To setup the channel, go to the “Channels” tab under Tools -> General Settings.  Click “Add”, and then choose your stream provider, generally Twitch.tv or Own3d.tv.  As far as settings go, this is where things vary from person to person.  We’ll include some basic “templates” based on your CPU, but even then you will probably want to tweak the settings a bit to find the perfect settings for you.  If you aren’t sure what CPU you have, google “CPU-Z” and download and run it.  It will tell you all the info you need related to your CPU such as make, model, and speed.


We will list two settings for each CPU line.  The first settings are the “low” settings, assuming your CPU is stock and untouched.  The second settings will be marked with “(OC)” and assumes you have your CPU overclocked and are a more advanced user.  Again, these settings are only a rough template, and although accurate, can still be tweaked for each individual:


TABLE #1
CPU                  Resolution @ FPS        Preset          Quality#
i7 3930k             1080p @ 30fps         Fast                10
(OC) i7 3930k     1080p @ 60fps        Fast                10
i7 2600k             1080p @ 30fps      Veryfast             10
(OC) i7 2600k     1080p @ 30fps      Veryfast             10
i7 920                 720p @ 30fps        Veryfast             10
(OC) i7 920         1080p @ 30fps     Veryfast             10
i7 2630QM          720p @ 30fps        Veryfast             10
(OC) i7 2630QM  1080p @ 30fps     Veryfast             10
EDIT 2012-09-20: ZeroTalent and I (ApocTV) have a spreadsheet now with all this info and more that will be kept up-to-date @ https://docs.google.com/spreadsheet/ccc?key=0AgrreMlF5qoRdGVXTlRmUzNlUGUxc2lvTjdTT240NWc


Anything older than these, you will have to test it out yourself.  If we get input on settings from users with other CPU lines than what’s listed, we will add them into the guide.  Keep in mind, this is what the CPU is capable of, not necessarily what you should stream at.  More explanation later in the guide.




Now to actually setup your stream channel:
Channel
1. Username - Input your username for the stream provider in all lowercase.
2. Password - Input your password for the stream provider. Note: This is case-sensitive.
3. Stream Key - Alternative to your password. You will still see this used at sites like Twitch.tv. Note: DO NOT SHARE YOUR STREAM KEY. ANYONE CAN USE THIS TO STREAM UNWANTED CONTENT TO YOUR CHANNEL.
4. Channel - This should automatically fill itself out and will match your username.
5. Location - This is the ingestion server you will be uploading to.  
To test ingestion servers, first you want to set your VBV Max Bitrate and VBV Buffer to your full upload speed.  To do this, look at Item #8 and #9 in this list.  Those are the fields to input your full speed to.  So if your speedtest.net result was 5Mbps on the upload, put “5000” for both.  Then select an ingestion server near you, and click “Test Bandwidth” button at the bottom of the channel setup window.  Note the results, and then test a couple more.  Whichever yields the fastest speed, use that server. If you ever get lag, you will want to test the speeds again.  Remember, once you are done testing, return your Bitrate and Buffer (Items #8 and #9) to your normal stream settings.
Video Encoding
6. Preset - In almost all cases I recommend “Veryfast”.  If you aren’t sure what to put here, start with that.  You can also reference TABLE #1 above for what you should put.
7. Quality - This number is used to set the quality and affects the bitrate that your stream may spike up to. The max setting allowed for streams is 10. Note: this can be changed manually, and will be covered in the Advanced Guide.  You can also reference TABLE #1 above for what you should put.
8. VBV Max Bitrate (kbps) - This is the bitrate of your video, and directly relates to your upload bandwidth.  Remember in step 2 of the guide we had you speedtest your line at speedtest.net?  Look at the results and note the upload.  Remember, 1mbps = 1000kbps.
Here are some rough examples on what to put:


TABLE #2
Speedtest.net upload result        What bitrate to use in XSplit
1mbps                                                     600
1.5mbps                                                1100
2mbps                                                   1500
2.5mbps                                                2000
3mbps                                                   2400
4mbps                                                   3000
EDIT 2012-09-20: ZeroTalent and I (ApocTV) have a spreadsheet now with all this info and more that will be kept up-to-date @ https://docs.google.com/spreadsheet/ccc?key=0AgrreMlF5qoRdGVXTlRmUzNlUGUxc2lvTjdTT240NWc


Any higher, and you will want to test it out yourself to find optimal settings.

9. VBV Buffer (kbps) - This should be the same as your Max Bitrate setting (Item #8).
10. Resolution - For almost all users, you want to leave this at “Default Stage Resolution”. This is used to choose a resolution to transcode to. Note: This is generally used to have a stream or recording at a lower resolution, and may affect the picture quality of the video. Use at your own discretion. Recommended for advanced users.
Audio Encoding
11. Format - We recommend “44.100 KHz 16 bit stereo”.  If you know what you’re doing, feel free to change this.
12. Codec - If you are a licensed user, you definitely want to use “AAC-LC”.  This selects the audio encoding method to be used on your stream.  If you are using the free version of XSplit, you will be limited to “Speex”.  Sorry :(
13. Bitrate - It depends on the content of your stream and how important audio quality is to you, but in almost all cases “128000” is fine.  This is 128kbps.
14. Automatically record broadcast - You never want to use this.  If you want to do a local recording, use the “Local Recording” profile, not this.
15. Interleave audio and video in one RTMP channel: In most cases, you will want this turned on.


When you have everything setup, press “OK”.


Now you need to specify the resolution and FPS (frames per second) which you will stream at.  From the main XSplit window, go to View -> Resolution.  Make sure you reference “TABLE #1” above, where we listed CPU’s.  That was what your CPU is capable of, assuming you have unlimited upload bandwidth.  Though, that’s usually not the case.  Now that you know the bitrate of your stream (Item #8 in the channel setup list above), you now can setup a resolution and fps to match that.  Remember, your bitrate directly relates to your resolution and fps.  Here are some recommended templates:


TABLE #3
Bitrate            Resolution                   FPS
< 500            360p (640x360)          25
500-1200      480p (852x480)          30
1200-2200    720p  (1280x720)       30
2200+           1080p (1920x1080)    30
2200+           720p (1280x720)        60
3000+           1080p (1920x1080)    45
4000+           1080p (1920x1080)    60
EDIT 2012-09-20: ZeroTalent and I (ApocTV) have a spreadsheet now with all this info and more that will be kept up-to-date @ https://docs.google.com/spreadsheet/ccc?key=0AgrreMlF5qoRdGVXTlRmUzNlUGUxc2lvTjdTT240NWc

This assumes your CPU can handle the resolution and fps at each bitrate setting.  Make sure to reference TABLE #1 earlier in the guide and balance it with this table.  Also note, these resolutions are all 16:9.  You want to stream at a resolution that is native to your source, whether that be a game or your desktop, or even a webcam.



Add Sources:
Now you have your channel all set up and you’re ready to stream to it, but what are you going to stream?  We’re gonna show you how to add some “sources”.


In the main XSplit window, you will see “Scene Sources” in the bottom left.  (Note: To the right of that you will see a microphone icon and a speaker icon with bars next to each.  This is where you can set the volume for the default microphone and speaker capture respectively, or you can click one of the icons to mute or un-mute.)  At the bottom left of scene sources you will see “Add”, “Remove”, and “Settings”.  This is how you will manage your sources.  Click “Add”, and you will be presented with a drop-down box with some options.


Add Camera - Add a camera source.  Note: It’s also where you would add a DXTory source if you are using it as a “hook” source for your games.
Add Media File - Add single picture, video or sound/music files with this choice. Some files that can be added to your presentation are .mp3, .wmv, .jpg, .flv, etc.
Add Screen Region - Add a screen region.  A screen region is an area of your desktop.  To add your whole desktop, just click any blank space on your desktop, and the full desktop will be added.
Add IP Camera - You can add an IP camera, which is a camera that is linked to an internet feed.  Most people don’t have one of these, and will just use “Add Camera” to add their webcams.
Add Video Playlist - If you have multiple videos and you want them to play one-after-another, this is where you add them.  There are quite a few features, so play around with it.
Add Title - This is a basic text title.  It also has a scrolling effect that can be used.  Example: “BRB in 10 minutes” can be added on your stream, even scrolling across the screen if you like.
Add Livestream - You can add another livestream as a feed directly on your stream.  Make sure you have access to the content you are adding so you don’t run into copyright infringement.
Add Game - If you have GameSource enabled, you can directly add a game.  GameSource has some pro’s and con’s vs Screen Region.  Screen Region is lower on resources (less lag), but can do only a maximum of 30fps.  GameSource in some cases can result in a bit of lag, but can also do up to 60fps as a source, and also typically has higher quality image than Screen Region.
More Sources - This is where you can access the “Plugin store” and can add other sources that aren’t packaged by default with XSplit.  Have fun here :)



Hotkeys:
If you plan on streaming regularly, this is definitely something you want to setup.  It allows control over many aspects of your stream without having to go to the XSplit interface and click stuff, but rather to just hit a hotkey on your keyboard to handle it.

Go to Tools -> General Settings, and select the “Hotkeys” tab.  Here, you select an item that you want to set a hotkey for, and in the bottom right use the dropdown box to select what keypress it is.  Additionally, you can toggle “modifiers” for the hotkey, such as “Shift”, “Control”, and “Alt”.



We definitely recommend setting up hotkeys for at least a couple scenes, as well as turning on/off your stream.



Glossary:
VOD: “Video On Demand”.  (Example: Videos on YouTube.com or Blip.tv are VOD’s)
Mbps: “Megabits per second”.  This is a measurement of internet speed (aka “bandwidth”).  Note: 1mbps = 1000kbps
Kbps: “Kilobits per second”. This is a measurement of internet speed (aka “bandwidth”).
FPS: “Frames Per Second”.  Measurement of how many images are shown per second in the video.
DXTory: Software used to record PC game content.  It can also be used to output the video via “DirectDraw” which XSplit can use as a source (under Add Camera).  Great quality, allows 60+ fps capture, and doesn’t impact your game performance much at all.  Can be found at  www.dxtory.com



Need More Help?
Join the Official XSplit IRC Help Channel!
Server = irc.quakenet.org
Channel = #xsplit

Not familiar with IRC?
Go to http://webchat.quakenet.org/  and enter your alias under Nickname and put “#xsplit” (without quotes) in Channels, and click “Join chat”.




Authors:
ApocTV ( www.apoctv.com , www.twitch.tv/apoctv )
TechnicalMonkey ( http://thetechmonkey.blogspot.com , http://www.twitch.tv/technicalmonkey )


We are working on an Advanced XSplit Guide also.  It will cover settings more in depth, and help you tweak advanced settings for your stream.


To contact us, you can message us on the XSplit forums:
ApocTV on XSplit forums = apoctv
TechnicalMonkey on XSplit forums = TechnicalMonkey


http://www.xsplit.com
[ Read More ]

Posted by _ - - 45 comments

Many streaming veterans consider SCFH DSF with FMLE (Flash Media Live Encoder) to be one of the best streaming solutions, but for newbies it can be quite the task.  Why?  Well, because SCFH DSF's web site and installation instructions are in Japanese.

One of the most common streaming methods is VHScrCap + FMLE.  It works well and is definitely a viable method.  Though, VHScrCap has some issues with scaling.  If you run a 720p or 1080p stream and want all the text on your desktop to be easily readable and perfectly crisp, you will see the flaws.

Let's dive straight into SCFH DSF...

  1. Download SCFH DSF and unpack it into its own directory.
     
  2. Close and fully exit any applications you have which can utilize video capture capabilities. I’m referring to things like Skype, MSN Messenger, etc. — basically anything that might be able to capture video from a device (think: webcam).
  3. If using a 32-bit OS: download and install the Microsoft Visual C++ 2008 Redistributable Package (x86) here: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf

    If using a 64-bit OS: download and install the Microsoft Visual C++ 2008 Redistributable Package (x64) here: http://www.microsoft.com/Downloads/details.aspx?displaylang=en&FamilyID=bd2a6171-e2d6-4230-b809-9a8d7548c1b6 
  4. If using a 32-bit OS: go into the SCFH directory you unpacked the files in, and double-click the install.bat file. (NOTE: To uninstall SCFH DSF, follow Step #2, and run uninstall.bat

    If using a 64-bit OS: go into the SCFH directory you unpacked the files in, and double-click the install64.bat file. (NOTE: To uninstall SCFH DSF, follow Step #2, and run uninstall64.bat)
  5.  You’ll get a cmd.exe window and a pop-up dialog box that should say DllRegisterServer in scfh.ax succeeded (or scfh64.ax if you’re using a 64-bit OS). If not, something else is wrong and I can’t help past that point (I’ve never seen this step fail). Click OK to close both the dialog and the cmd.exe window.
  6. In the same directory there’s a program called SCFH.exe. Make a shortcut to this somewhere for convenience, e.g. on your desktop. This is the main SCFH DSF control program. Once you run it (hold off on that for a moment), you should leave it open while capturing.
  7. Launch any of the capturing utilities you want, such as Windows Live Messenger or Firefox/Internet Explorer with Flash which can capture from a webcam, etc… Ustream.tv is a good example.
  8. Run SCFH.exe or the shortcut you made. You’ll be given a window that says Select process. Pick the process name of the program which you wish to control SCFH in and click OK. For example, if you want to let someone watch your webcam (SCFH DSF that is, e.g. stream a copy of your desktop) in Windows Live Messenger, pick msnmsgr.exe. If you’re using Ustream or something similar, pick your browser process instance. Unlike VHScrCap, the process instances here make a lot more sense, and there aren’t multiples of the same name to confuse you. If the process in question isn’t listed, you probably need to set up said program (or Flash) to note that you have a new capture device available — the device is literally called SCFH DSF.
  9. You’ll now be in the main SCFH DSF control program.

I’ll document the features the SCFH DSF control program that I’m familiar with or have a pretty good idea about. And whenever changing any of these features, be sure to click the Apply button!

  • Drag here — used to select a portion of a window or a dialog/model by clicking the left mouse button + holding it down and “dragging” the selection window/border around. You’ll have to try it to understand what I mean. Note that the one beautiful thing about the Drag here feature is that once you select part of a window, you can move that window around and not have to re-adjust SCFH to tell it where the X/Y coordinates are.
  • Area Selection — used to select a specific region of your desktop that you want to capture. Left click it once, and you’ll be shown a green translucent box that has the text Double-click to Apply in it. You can drag this box around and resize it (like you would a normal window), and when you’ve selected an area of your desktop you want to capture, double-left-click in the green translucent box.
  • X/Y and Size input boxes — define what X/Y coordinate you want SCFH to capture (upper left corner) and what width/height. Any changes you make here should show up in the capture window of the program (Flash, Windows Live Messenger, etc.) in real-time. If there are common X/Y coordinates or sizes, you can click the Add button next to the respective item and they’re stored for future use. More on that at the end of this write-up.
  • Show Mouse Cursor — defines whether or not SCFH DSF should capture your mouse cursor or not.
  • Show Layered Window — allows you to capture things like Tooltips and other things that aren’t technically a window.
  • Keep Aspect Ratio — should speak for itself. This option works significantly better than VHScrCap, in my opinion, and more reliably. This is quite possibly the main reason I stopped using VHScrCap given the described bug earlier in this post.  It's a well documented bug and is seen in both VHScrCap *and* XSplit Broadcaster.  Both are made by the same company.
  • Enable Enlargement — only works when Keep Aspect Ratio is enabled. Say the program which is using SCFH DSF as a capture driver is capturing at 640×480, but the area/window you have selected to capture in SCFH DSF is only 200×160. When Enable Enlargement is disabled, what you’ll see in your program is the 200×160 capture region, centred, surrounded by a black box to fill in the remaining 440×320 pixels. When enabled, it would stretch the 200×160 contents to fit the size of the capture area.
  • Over-Sampling — adds somewhat of a blur between two frames during animation/movement. Look up what oversampling means on Google, and some example sites/videos, and you’ll then understand it, or just play around with it.
  • Thread Num — not entirely sure on this one, but based on how the program works, my guess is that it probably defines the number of threads SCFH DSF should use for internal operations. If you have multiple CPUs or a dual/quad core system, you might benefit from increasing this to 2 or 4. I myself have a quad core system and I’ve never had to adjust this; I always leave it at 1.
  • Resize Method — allows you to pick how resizing functions and looks, and not just for Enable Enlargement but for any kind of resizing. They all look slightly different, and it’s especially noticeable on small resolution capture areas. I tend to use DirectDraw (1Pass) mostly because it’s incredibly fast and looks great. Note that you may want to adjust this if you’re capturing an area that has text. Try them all out, see which one looks best to you and to the person you’re streaming to. Keep in mind that most online streaming uses compression of some sort, so some of these resize methods might look better or worse once compressed by the streaming software.
  • Capture: XXX fps — should be obvious. This defaults to 30fps, which is more than sufficient. I’m pretty sure it’s adjustable, I just can’t remember where…
  • Performance — gives you an idea of how SCFH DSF is performing.  The author chose a unit type of frames per second, which is a little odd but understandable given the role of the program. The value shown here is highly dependent upon 4 things: 1) CPU speed, 2) video card speed (since many DirectX functions are offloaded on to the GPU), 3) Resize Method selected, and 4) size of the capture region. For example, the performance is going to be much higher for a 200×200 window than it is for a 1920×1200 desktop that has to be resized/scaled down to fit into a 640×480 capture region. :)

 Finally, SCFH DSF does not store any data in the registry — instead, it stores configurations per application (e.g. firefox.exe, msnmsgr.exe, etc.) in INI files in the directory where SCFH DSF is located. The files will be named things like SCFH.msnmsgr.exe.ini, SCFH.firefox.exe.ini, and so on — you get the idea. The SCFH DSF capture driver itself does not use these, only the SCFH DSF control program, so be sure you exit the control program before deleting any of them.

 This guide assumes you have some previous experience streaming.  Along with SCFH DSF, you're going to need FMLE.  If you need a guide on FMLE, I *highly* recommend Tim at Multiboxing.com's guide:

http://multiboxing.com/forums/f2/exact-way-stream-fme-jtv-read-1116.html

Just don't install VHScrCap.  Anytime in the guide it refers to VHScrCap, just read it as SCFH DSF.  If you have VHScrCap or XSplit installed prior to installing SCFH DSF and you experience problems with SCFH DSF, I'd recommend uninstalling them and reinstalling SCFH DSF.  I've not had problems personally with having them both installed, but I've heard of people who have.

Good luck and enjoy streaming with SCFH DSF, one of the best streaming solutions available.

-Apoc / apoct
ApocTV.com

Thanks to Koitsu from koitsu.wordpress.com for his help and allowing me to reference parts of his guide.
[ Read More ]

Posted by _ - - 40 comments

I get asked all the time about my stream and how it's quality is so high.  In a future post I may explain my specific setup, but for now this post will attempt to explain what factors affect your stream quality and hopefully provide some insight on to what you should be looking at when you configure your stream. I'm not going to advocate any particular way of streaming since there are too many factors to consider, but hopefully this provides some basic information on to what you should be looking at when configuring things.

There are three main factors when streaming:

  • Quality
    This is how your stream looks to your viewers.
  • Bandwidth
    The "internet power" your stream uses. Streaming requires a high upload bandwidth for best results.
  • CPU Usage
    If you're playing SC2 or another game on the same PC as you're streaming on, you have to balance it so neither your stream nor the game starts suffering from lack of CPU power.


Quality
It's important to note that quality is not directly related to any single factor - eg cranking the resolution to 1080p and claiming that's the best possible quality is simply not true. There are many factors involved with how good your stream will look. Here are some:

  • Codec
    Most streaming software uses either H264 or VP6. The codec is a piece of software that converts the 50MB+/sec of raw image data into a compressed video format suitable for Internet data rates. H264 / MPEG4 is the more modern codec. However there are many implementations and variations in the way codecs can be programmed, such that some encoding software is better than others despite using the same standard.

    Popular software that uses H264 includes Adobe Flash Media Encoder and XSplit. XSplit uses the x264 encoder which is regarded as being the highest quality whereas FMLE uses MainConcept. VP6 is an older codec that is available to users of Adobe Flash Media Encoder. It requires a higher bitrate (more upload) for the same quality, but has some benefits in that it recovers from scene changes faster than FME's H264.

    It's also worth mentioning under the Codec section (but really it's a software issue) that XSplit's internal source scaling will always result in a blurrier output than a Adobe FMLE stream due to a scaling bug in XSplit (Hi SplitMedia please fix this, I've sent in a bug report already!). This becomes very noticeable if you have text or other sharp elements on your stream and is one of the main reasons I personally dislike XSplit.
    2011-08-18: XSplit's scaling issue is fixed when resizing from the same aspect ratio to the same aspect ratio.  Example being 16:9 resized to 16:9.  However, if you resize from a 16:10 source to 16:9, the scaling bug is still there.
  • Frame Rate
    The higher the frame rate, the more frames the codec will need to process and the smoother your stream will look. A good frame rate to target is around 25 FPS. Some streamers use 20 FPS and as long as it's a consistent 20 FPS this is fine, however below 20 FPS your stream will become noticeably jerky and unpleasant to watch. Going above 25 FPS does not yield many benefits while taking additional CPU to encode.

    The main thing to aim for with the frame rate is consistency. A consistent frame rate is good, a frame rate that jumps up and down is very noticeable and annoying to a viewer. Frame rate correlates pretty directly with the codec - the quickest way to reduce CPU usage if you're having trouble is to reduce the frame rate as a 20% reduction in frame rate results in 20% less work for the codec.
  • Resolution
    While you may think the higher the resolution, the better the quality will be, this isn't necessarily true. Very few people will have the CPU and Internet bandwidth to support a high quality 1080p (1920x1080) stream at a decent frame rate. It's much better to have a lower resolution stream at a steady and consistent frame rate than to try and push the resolution as high as it goes.

    Codecs work on a variable bit-rate and more complex scenes can require more time to encode. While your stream might seem fine at 1080p@30FPS while looking at the SC2 menu, come a big battle and you may find your stream turns into a slideshow as the codec can't keep up with all the data.

    Try to pick sizes that are exact 2:1 reductions for best quality, eg if your SC2 is at 1680x1050, try streaming at 840x525. To change the resolution you can either set your SC2 to play in a lower resolution or set your streaming software to resize the input / output. Generally though you will want SC2 to run at your native monitor resolution with either a full size or half size resolution for your stream.
  • Bitrate
    The bit rate is the approximate amount of kbps that the codec will try to produce. However the H264 format is a variable bit rate format, so even if you specify 2000kbps, if the codec tries to encode something and it happens to come out at 2500kbps for that particular instant, it's going to either use it or drop it. It's important to pick a bit rate that is well below the maximum upload speed of your Internet to account for bursts like this. If you have 2mbps upload and stream at 1900kbps, come a burst of 2500kbps your stream is going to lag or drop frames (both equally bad).

    Lagging can become cumulative to the point where if your upstream never manages to recover and "catch up" to the live point in the stream (eg an average of 2.1mbps trying to go out of a 2mbps upstream), your stream will simply not work. Dropped frames are also bad as if a key frame is dropped, it can take 5 - 10 seconds before another key frame is generated, during which time your viewers will have no video.

    On the flip side, too low of a bitrate and your stream will look terrible. Codecs can't work magic - it's impossible to turn 1920x1080 @ 25FPS into a decent looking 1mbps stream for example.

The above four factors are the most important things to consider when setting up your stream. Some streamers prefer a higher resolution with a lower frame rate. Others take a more conservative approach and use a low resolution with a high frame rate and bit rate. This is actually very good option to start with since it guarantees no bitrate quality issues and doesn't usually use much CPU. I would personally recommend going for the lower resolution with higher bitrate/fps, it will look better.

Bandwidth
I've touched on the topic of bandwidth in the quality section, but it deserves its own section for clarity. First of all, streaming is tough on your connection. Any packet loss or jitter can cause your data to arrive late at the streaming provider which will discard it due to the timestamp being late. Worse still, your throughput may be reduced by retransmissions to the point where your stream buffer backs up and no new data ever makes it to your viewers.

When determining your bitrate, a good rule of thumb is to leave about 25% of your upstream unused. If you have a 2mbps upload speed, set your stream bitrate to 1500kbps. This leaves enough room for the occasional burst of data from the codec as well as for background applications such as any VoIP software and of course SC2 itself.

When determining your upstream speed, it's important to perform a realistic test. If you go to www.speedtest.net and pick the closest server to you, you're not going to get a realistic result. For users in the US, I would suggest picking a server on the East or West coast, whichever is furthest from you as a good baseline. If you're still using Windows XP, you will need to apply some registry tweaks to be able to get good performance to sites with higher latency, but that's beyond the scope of this guide.  Maybe a future guide. :)

Depending on your connection type, your upload speed may vary during the day as more users get online. Crowded cable networks and especially using wireless can be a big issue. Run tests at the time you would usually be streaming for accurate results. One final thing to keep in mind is some ISPs offer "boost" technology where for the first X seconds of a transfer, upload/download limits are relaxed slightly to provide for better looking results in speed tests.

For those of you on capped connections with a limited amount of transfer per month, you may want to avoid regular streaming. It can very quickly add up to a lot of bandwidth and may cost you additional fees from your ISP.

Finally, keep in mind that when you set your bitrate to X, your viewers need approximately X + 500kbps for a reliable streaming experience. If you can upload at 10000kbps then that's great, but don't expect many people to be able to watch your stream. (Side note: Justin.TV provides a service to transcode your stream into a lower resolution / bitrate if you are a partnered account. Contact them for details.  With this you can pump your bitrate as high as you want and still be optimal for everyone.)

Here's some very rough example bitrates you should be looking at for a nice quality stream at 25 FPS (these will vary depending on encoder used and other factors, with XSplit you can get away with a lower bitrate for the same quality for example):

480p (720x480): 750-1000kbps
720p (1280x720): 1500-3000kbps
1080p (1920x1080): 3000-5000kbps+



(note: 1080p can fully utilize 10,000kbps+)

Most of you will not be playing in a resolution that matches one of these exactly, so you'll likely want to resize your stream down to a matching aspect ratio.

CPU Usage
Here comes the fun part. Streaming requires lots of CPU. So does SC2. If you stream at too high a quality, both your stream and your game will start to lag. You need to find a balance between quality and how much the stream impacts your game performance.

First, if you have anything less than a quad core processor, you may as well forget about streaming in any kind of decent quality for now. SC2 itself can easily almost max out a dual core CPU, leaving no room for streaming.

Ideal CPUs:
Core i5 2500k / i7 2600k
Core i5 / i7 8xx / 9xx Series
AMD Phenom X4 / X6



*I personally use an i7 950 overclocked to 4.4ghz.

Unfortunately anything less than these including older Core 2 models are showing their age and you won't be able to reach the best results. Streaming and SC2 are extremely CPU dependent, your graphics card has a very minimal impact on things so don't go out and buy an expensive GPU in the hope it will fix things.

The codec you choose (which is influenced by which program you stream with) has a very big impact on CPU. Adobe's Flash Media Encoder has a pretty standard H264 encoder but it uses a lot of CPU. One benefit is that is multi-threaded, meaning it can take full advantage of multiple cores and benefits from i7 CPUs. XSplit on the other hand produces a higher quality output but appears not to benefit from multiple cores very well, so your CPU speed becomes a factor (one reason why the 2500k and 2600k work so well is they can easily hit 4.5+GHz with overclocking). There are other programs such as VLC (very difficult to setup) and Dynno (suffers from macroblock artifacting) but the two main programs most people will be looking at are XSplit and FME.

2011-05-21: If you use XSplit, make sure you check out this thread. It's essential for multi-core in XSplit.  SplitMedia claims they have included the updated x264 library in their latest T3 version, but I've tested it and this just isn't the case.  Follow the instructions in the link, it will help a lot.

2011-08-18: XSplit has updated the x264 library.  The above fix is no longer needed!

How you get your SC2 into the streaming program also has a big impact on CPU usage and in-game lag. Most screen capture options such as XSplit's internal capture and VHScrCap use a significant amount of CPU and rely on GDI which causes your game to lag even if your CPU isn't near maximum. The best option by far is to use DXTory which rips the screen directly out of your video card after it has been rendered by intercepting DirectX calls. This has almost zero overhead associated with it, however DXTory is not free - it will set you back around $50 and will not allow you to capture anything other than games. The next best appears to be SCFH, a GDI based screen capture. Even if you use XSplit, you aren't forced to use XSplit's internal capture - you can easily add a camera source of DXTory or SCFH.

Programs such as XSplit offer a virtual set where you can add overlays and other effects. Keep in mind - especially if you use transparency - that the cost of these effects can add up in terms of CPU usage. High-quality resizing is also an expensive operation for CPUs, so for the lowest possible CPU use, try to match your screen size with your stream size (XSplit users can ignore this since XSplit seems to scale everything regardless of it matching the output size).

Something you will want to do is to address your core loads.  You have two options to do this.  You can set your affinity on your cores so that your streaming program and SC2 run on separate CPU cores or you can set SC2.exe (or whatever game .exe) to High Priority in task manager or whatever application you use. Keep in mind that each person would determine the better option for their setup.  If your game only uses 1 core, then you will want to set affinities.  If your game uses more than 1 core AND each core isn't used at 90%+ cpu usage, then you will want to use the High Priority method.


Another thing if you use Vista / Windows 7 to do is to disable Aero (the fancy translucent desktop effects etc). To do this, right click on the shortcut to your streaming program or SC2 and under Compatibility, tick the "Disable desktop composition" box. This especially helps when using GDI capture methods.

Final Thoughts
One reason I like to use Adobe FMLE over XSplit is the status window. XSplit offers you pretty much zero feedback - it doesn't tell you the current FPS, whether there is any local buffering, if there are any input or output dropped frames, etc. It's pretty much just luck - try some settings and see if your stream lags, if you get buffering just restart and hope it's better, etc. FMLE on the other hand offers you very useful statistics - dropped frames, current bitrate (remember it's variable) and more.

Input drops mean your capture source such as DXTory or SCFH isn't providing input fast enough - this can happen in big battles where your SC2 FPS drops below your desired stream FPS. Output drops are the ones to watch for - this means output frames were dropped because they couldn't be encoded in time. Any amount of output drops means your stream will lag and you should re-adjust your settings. If you see publishing buffer or frame drops at non-zero values, this indicates your upload is too slow or the connection to your streaming service is failing.

Remember to test things with a realistic load - simply looking at the SC2 menu is easy for a codec to encode and won't provide accurate feedback. Watch some replays and move the camera around etc (but don't run replays on 2x or higher since that will use more CPU than a realistic game).



As a final note, I want to make sure you guys know that either FMLE or XSplit are perfectly acceptable solutions.  Each have their own strengths and weaknesses and will require being setup properly.  I may update this guide in the future with additional separate sections for FMLE and XSplit that explain specific detailed settings that are optimal.




Source(s):
R1CH from TeamLiquid
[ Read More ]

Posted by _ - - 47 comments


"How does IdrA do 2-2-2 worker splits so perfectly?"
"HuK is multitasking a 3 pronged attack on 3 different bases, how has he not misclicked once?"


Ok, so, I could have split this into 2 different posts, but I'm going to put it all into one.  If you are a gamer, this info is essential.  Trust me I've spent years researching and as time passed re-researched to keep myself up to date.  There are many things to learn on this topic but for any competitive gamer it's a must-have. Now, mice are kind of an interesting thing because there's quite a bit of preference that goes into play on the way that people hold their mouse, configure it's sensitivity in Windows/games, and how people configure the dpi on the laser or mouse optics. There's a right way of doing things aside from the personal preference specifics though. I will be covering topics such as the mouse itself (Logitech G9X), grip styles, and specific Windows/driver settings for both Windows and also StarCraft 2 for those that play. 


The sources for this post are very important and should all be looked over in depth. I'm explaining the overall "juice" of the respective topics, but if you want very detailed and specific info beyond what I'm going over in this post, you will want to refer to the sources as you'll find the answers there.  There's only so long of a post I can write before people 'TL;DR', lol.


Ok let's dive right in...


Part I: Logitech G9X Review


Logitech is a respected mouse manufacturer.  They've made quality mice for years and hundreds of gamers I know personally love Logitech mice.  Right now the G9X is widely considered their #1 mouse for coorded mice.  And seriously, what gamer in their right mind would use a coordless mouse? lol.  The G9X features a whopping 5700dpi, 1000hz polling rate (allows your computer to check for movement updates 1,000 times per second), includes two different exterior grip shells ("wideload" and "precision" - I personally prefer wideload), on-board memory that allows saving your dpi/sensitivity/etc profile settings, 2 scroll wheel options (clicks on each notch or just fully rolls with no clicks), side scrolling on the scroll wheel, weighting system (up to 28 grams / 1 oz), and high quality braided USB 2.0 cable that's made to last.


As we all know, preference is a big factor when it comes to what mouse is best for each person.  Although, most people don't know there are different grip styles and certain mice are made for each respective grip style. (Grip Styles explained more in Part 2)  I personally use a Fingertip grip, and the G9X is excellent for this grip.




Part II: Grip Styles


There are three widely used mouse grip styles, Palm, Claw, and Fingertip.  With the grip style, it's purely personal preference.  Over my 13+ years of gaming, I've used all 3 styles and have personally found Fingertip to be by far the best grip for me, and many friends of mine have found it to be the same. 


Typically, Palm grip is the least fatiguing.  It also has proven to be the least accurate.  If you need to make a very small and precise movement, it will be most difficult with this grip.  The key to the palm grip is that like the name hints, your palm rests fully on the mouse.


I've found the Claw grip to be the least popular of the three grips for gamers.  Although, some powerhouse gamers I know swear by it and perform very well, so who knows.  It's almost a hybrid between the other two grips.  Your palm slightly rests on the mouse but your fingers are in a more upright position.


The Fingertip grip is by far my personal favorite as well as a few of my close friends.  Many believe it to be the most fatiguing of the three grips.  With this grip, your palm does not touch the mouse at all.  You have full control of your mouse with just your fingertips.  If you are trying out this grip, make sure you have your thumb on one side of the mouse and your ring finger and/or pinkie firmly on the other to give you full control of the mouse for precise movements.


Part III:  Configuration - Hardware and Software



The G9x comes with the Setpoint software which is easy enough to navigate in. There is an option in it to allow your OS (Operating System) to handle your sensitivity settings instead of Setpoint; I recommend doing this. I configured the 5 custom dpi settings to levels that vary from 1600-5700. Using the small - and + button below the left click and above the LED display I can switch between the 5 custom levels. Though, I pretty much use 5000 dpi all the time.

As for software-side configurations, here's where things are going to get rather specific.

* As a competitive gamer, what is important to me is an un-accelerated predictable cursor moving on a 1:1 mouse movement to cursor movement ratio. What this means is that my mouse moves one pixel at a time, all the time. This is the only way I know to achieve ultimate precision in mouse use.  For those that are familiar with muscle memory, this is how you achieve it in gaming *

Boycott of MOUSE ACCELERATION. DO NOT USE IT! Learning how to use the mouse consistently will be extremely difficult unless you turn mouse acceleration off. The reason that mouse acceleration is bad is that it changes the distance traveled by the cursor based on the speed of your mouse flick. Specifically, your mouse's cursor speed will not be constant.  For example, let's say you were to move your mouse 1 inch on your mouse pad slowly, it would move 500 pixels.  But if you moved your mouse the exact same distance but at a faster speed, maybe it moves 1000 or 1500 pixels. In order to develop a sense of muscle memory with your mouse, a mouse flick of a certain distance on your mouse pad always needs to result in the same distance moved on your computer or in-game. As Antigen states:

"For example, you might move the mouse 6 inches to turn 180 degrees, then you move the mouse 6 inches another time, and depending on how fast you move the mouse you might turn 100 degrees, you might turn 270. This uncertainty in mouse response inevitably limits everyone's potential." 

To check your mouse acceleration in Windows 7 go to >> Control Panel\All Control Panel Items\Ease of Access Center\Set up Mouse Keys.

The next boycott is against ANY notch in the sensitivity settings that isn't 6/11 - or the very middle notch on the level selector.  6/11 is the only way to get 1:1 movement ratio, every other notch will change your pixel ratio, the different notches effect ratio as such. Huge sensitivity adjustments will mean that you will either skip whole pixels every time you move your mouse or extra pixels will be added that you didn't move your mouse for, and that's not precision.

Each notch in the sensitivity will yield the following movement ratios.
Mouse:Computer
  1. 32:1     (0.03125)
  2. 16:1     (0.0625)
  3. 4:1     (0.25)
  4. 2:1     (0.5)
  5. 4:3     (0.75)
  6. 1:1     Ratio 1.0 - Perfect!
  7. 2:3     (1.5)
  8. 1:2     (2.0)
  9. 2:5     (2.5)
  10. 1:3     (3.0)
  11. 2:7     (3.5)


If you're interested in seeing if you have mouse acceleration on or if your mouse is moving at a 1:1 mouse to cursor ratio, let's dive into the world that is MarkC's Mouse Fix Pack. 

If you think you have configured everything in Windows correctly, you might be fine! Open up MouseMovementRecorder.exe (after downloading/extracting the mouse fix pack) - it will show you exactly what pixel ratio you are experiencing right in cmd prompt. (For anyone paranoid, this pack has been checked for virus/trojan/spyware/etc by 20+ people, it's clean) If your ratio is correct you won't see any green or red bars.

If you do see red and green bars (indicating imbalanced pixel movement ratios), double check your windows mouse settings - if everything appears to be correct run the Mouse_Fix_Builder.vbs - that should set you up just fine. That is MarkC's method of forcing non-accelerated mouse into the windows settings (I think via registry?) Any other issues email/tweet/skype me we'll work on it.

"So Apoc, if I'm not allowed to change my sensitivity in windows and I'm not allowed to use mouse acceleration, how the hell do I increase my mouse speed/sensitivity?"

DPI is how! DPI is now the only way you can make your mouse move faster without distorting your mouse inputs. That's why you buy the hardcore gaming mouse with high rates of DPI! Higher DPI or (dots per inch) changes the amount of pixels you will move over a given distance of mouse travel. High DPI would mean shorter movements with more pixels traveled by your cursor while low DPI means you need longer mouse movements to move the same distance on screen.

Part IV: StarCraft 2

Great, you've configured your mouse settings in Windows successfully, woot! So now you open SC2 (with your mousemovementrecorder.exe on to test it) and younotice you're getting green and red bars again, wtf! Starcraft2 ignores mouse sensitivity settings from Windows. Instead of 11 notches in SC2, we have 20 notches... despite the fact that there are 100 different % notches, the only changes in sensitivity occur between the increments of 5, e.g. in SC2 1-5% is notch 1, 6-10% is notch 2, etc.


"umm, Apoc, so what notch do I want use in StarCraft II?"

I'm going to use a direct quote from hide.X's post on TeamLiquid.net to summarize this complex and rather mathy answer:

"for 1:1 ratio of mouse movement to cursor movement, set your in-game sensitivity to anything between 51%--54% [with "enhance pointer precision" turned off in windows] -- not 50% as people previously thought (although it sort of is 50%; it's just that you can't see what the decimal point on the number is so it's safer to use 51--54) (that is, 51%, 52%, 53%, and 54% are all exactly the same mouse speed)."

So if you followed this guide correctly, set your sensitivity in SC2 to somewhere between 51% and 54% and you will be on the correct notch.

Conclusion:

If all of this is new to you, it may take some adjusting.  But it won't take too long to adjust and you will notice a drastic increase in your performance in games.  If you're skeptical, just give it a try and see for yourself.  I'll end this on a quote from bananaconda who followed my guide before it was a written guide and it was just me helping friends on ventrilo:

"As a musician, I respect the power of muscle memory - and without disabling mouse acceleration and getting a 1:1 ratio your muscles aren't going to be able to find the consistencies they need to memorize mouse movements. After switching to a whole new mouse and config, it has taken a lot of grinding to get acclimated but, the differences in accuracy and consistency are absolutely 100% noticeable and worth it. While the most important thing to gamers is finding a config that makes one comfortable, I strongly support giving these settings a try." -bananaconda of bananaconda.net

Also a big thanks to bananaconda for taking some of the pictures used in this review/guide.


Downloads:

Sources:
           Explains mouse sensitivity and how it works in Starcraft II, important.
           An old post (about CS 1.6) but an important one. Explains and illustrates some of these concepts deeper than I could fit into this post.
[ Read More ]