RAGEQUIT.TV
icon

Schedule


Wanna chat? Join us on our webchat! icon

Currently, there are no upcoming events. Check back soon!

In Depth Streaming Guide

posted by Ipp | comments: 0

My targeted audience are people who want to not only setup Xsplit but also learn about how it all works so you can optimize everything to your setup and be able to quickly resolve any issues that come from scenario’s such as JTV Issues, XSplit Updates, etc.  If you are just looking for a video that has some arbituary numbers that work on some guys computer than this guide is not for you.


Please Read This

I am not a JTV, Xsplit, etc employee (yet) so I in no way benefit from you setting your stream up.  Actually, dumping this knowledge bomb can hurt me as people will watch us based upon who we are and not our quality.  As bad as that sounds, streaming is a competitive market hence EG pulling iNControl from SoTG.  So losing the High Definition stable stream can result into a income loss over time.

This is for the community and I will do my best to give you all the help you want but in no way am I obligated to help you or responsible if you mess anything up.  If you want to contact me, I recommend twitter or facebook, I’d post my email here but silly spam bots would get ahold of it.  Messaging me randomly on any instant messenger is not how you are going to get help, I see your message I will respond when I have time.  Oh yeah, please don’t post this guide on any site without my permission, kthx.


Basic Setup XSplit

The only software you will need is Xsplit, it is currently free when they start charging money; I will consider updating my FMLE Guide.  Once you have XSplit it is very straight forward, the following are basic steps to get you a watchable stream.  It won’t be amazing but should just work.

  • The first thing I recommend is changing your Scene Hotkeys to use Ctrl+Shift+# instead of just Ctrl.  Why?  Because Ctrl+# assigns unit groups in SC2 and you don’t want them conflicting.  Just go to Tools > Settings > Hotkeys
  • Next is the Resolution, set this to 720p if your monitor is either 720p or 1080p.  If it is not than set it to whatever your resolution is.
  • Set your Bit Rate to 1000 kbps and the buffer to 1600 kbps
  • Set the quality level to 7
  • Set the audio to: 44.100 KHz 16 bit stereo and kbps to: 96000

You should be all set, however if you want to improve the quality even more you will have to keep reading to find out what all this stuff means! If you are fine with mediocre quality, all that is left is for you to add screen regions(Bottom left Add > Screen Source) and you are good to go!  You can resize everything in the preview pane it should be pretty intuitive.  If you want to add a section of your screen and not an entire window you can drag and drop area’s instead of just clicking on a window.


Software I use

If you have ever watched one of Elmer Fudds my casts than you should know we do more than just show you a game screen to do this I use:

  • Foobar: The music player, this has a very small footprint so I don’t have to worry about it getting in the way of XSplit/SC2.
  • Shpeck/MilkDrop: A addon for Foobar which allows me to use a Visualization Engine that Winamp also uses.  You can make some pretty slick visualizers with this.
  • Xsplit: If you don’t know what this is than I really have no clue why you are reading this guide but it is a program that allows you to stream.
  • Starboard: Coded by Ascend, I find this to be the best free scoreboard program.  We thought about just using Blizzards in game one and overlaying some numbers, but we ran into the issue of it moving players around between games making our score board incorrect.


Want to know more? Inner workings of JTV

Justin.TV, has many Content Delivery Networks(CDN) and will only deploy more CDN’s as they expand in Europe.  So why is this important?  Well a Content Delivery Network, is exactly what it sounds like; it delivers content.  If you ever experience lag issues the and have verified it is not your fault by doing the following:

  • Look at Xsplits Preview Pane during a broadcast and ensure it is smooth.  If it pauses here then it will pause on the stream
  • Ensured that no one on your network is currently downloading/uploading anything
  • Looked at XSplit’s title bar and saw the bitrate consistently was not at what your max bitrate is set at and you believe it should be.  While looking at the current bitrate, ensure you are locked onto someones camera that is observing a fight in SC2.  The bitrate you define is the max, XSplit will only use what is required.

Then you can try changing which CDN you are pointed to.  There is a chance that the particular CDN you are going to could be overloaded.  By default XSplit will point to http://live-3c.justin.tv/app which is their load balancing service.  This will try to put you on the server it thinks is best, however this is all guess work on their server and you may be able to find a better one!  Ping each of the CDN’s below and look at the Average time to find out which has the lowest latency.  If you ping the Load Balancing Cluster it will tell you which server XSplit defaults to.

CDN Name RTMP URL
Load Balancing Cluster rtmp://live-3c.justin.tv/app
JTV Home Base rtmp://live.justin.tv/app
US West rtmp://live-sea.justin.tv/app
US East rtmp://live-wdc.justin.tv/app
US Central rtmp://live-dfw.justin.tv/app
EU rtmp://live-lhr.justin.tv/app

Once you found the DCN you want to use, you can add it to XSplit.  Do so by:

  • Go to: Broadcast >> Edit Channels >> Add >> Custom RTMP
  • Name, Description doesn’t matter, I’d recommend putting JTV Account - CDN Name for the name
  • RTMP URL: this is the CDN url.
  • Share link: This is your stream key and can be obtained here

Alternatively, you can just edit your channel in Xsplit and change the “Location”.  I prefer creating a new profile because it stands out, so it is a reminder to tell whomever you contact for support that you are statically assigning yourself to a CDN.  If you change the location in the channel, chances are you will forget you did that a month down the road and if a CDN goes down or is degraded you won’t be automatically routed to the correct one


Moar Knowledge, Why we <3 Xsplit

We have used Livestream Procaster, Adobe Flash Media Live Encoder (FMLE), and Xsplit.  Livestream’s procaster is just terrible or atleast was when I used it, so I won’t be explaining anything about that.  FMLE and XSplit both operate under H.264 AVC, however FMLE uses the MainConcept codec while Xsplit uses x264.  While both codecs are great MainConcept, is not optimal for a lot of action which roughly translates to you’re going to need more bit rate for equivalent quality.  The Bit Rate may not be an issue for you but it will require the viewer to have more which can be an issue.

The downside to Xsplit is the fact it doesn’t have any real diagnostic information while you are streaming.  FMLE will tell you if you are dropping packets, current fps, network buffer, etc.  So you can easily tell when the stream is having an issue, Xsplit you are completely in the dark about that stuff. The choice between Xsplit and FMLE is really do you want to inconvenience yourself(xsplit) or the viewer(fmle)?  I decided to give up having diagnostic information for a lighter 1080p stream.


Disregard Knowledge, Acquire Settings

                                                   
  Computer Specs
Internet Speed: 30/30 (in mbps) Processor: Intel i7 960 @ 3.2 GHz RAM: 9 gb (1067 mhz)
Graphics: GeForce GTX 260 Mic: SnowBall w/ Boomstand + Pop Filter
Xsplit Broadcaster
Resolution: 1920x1080 Frame Rate: 25 FPS Preset: Default
Bit Rate: 3500 kbpsBuffer: 7000 kbpsQuality: 8
Audio Format: 44.100 KHz 16-Bit Stero Audio Bitrate: 192000
  SC2 Settings
Display: Windows (Fullscreen) Texture Quality: High Shaders: Medium
Lighting: Low Shadows: Medium Terrain: Medium
Reflections: Off Effects: Ultra Post-Processing: Medium
Physics: High Models: High Unit Portraits: 3D

For my between the game splash, I am using Foobar as my media player as it has a small footprint and for the visualizer, I use Milkdrops.  If you “Add a screen region” on XSplit, you can drag and drop certain portions of a screen so that is how you see our visualizer blended in so well with a background image.  Last but not least, I locked Starcraft II down to 25 FPS by adding “frameratecap=25”—This will ensure the encoder doesn’t get any frames it doesn’t which dramatically increases performance.

What Stuff Means

XSplit Terms

  • Preset: (Slower=Better) Do you care more about your encoders speed or quality?  Since we are streaming and not encoding raw video we will want to be somewhere in between, the default(Very Fast) should be fine for Starcraft if you want you can try to lower it.
  • Bit Rate: (Higher=Better) Basically, it is how big can the video file be?  For HQ, I generally say 1500 for 720p and 3500 for 1080p if your network connection can handle it.  This is where you would want to lower it if your Internets upload speed can’t handle it.  Keep in mind this is a maximum just because you set it at some obscenly high number doesn’t mean it will stream at that number, I have a 30Mbps upload rate and am perfectly happy with 3500 for 1080p.
  • Quality: (Higher=Better) Mainly affects the Constant Rate Factor, which is the compression used on each frame.  I don’t know a great way to explain this but here it goes: The eye percieves more detail in stationary objects than mobile, therefore the encoder prioritizes compressing mobile objects since that will be the least noticable.

Support Me

Thanks, for reading the guide if you wish to support me you can follow me on Twitter or Facebook!  Those numbers help me greatly when it comes to finding sponsors and honestly inflates my ego.  Who knows maybe you will see I am streaming via a tweet and come watch.  Also this is a very rough guide and I’m not expert on this stuff so if you notice any errors or want more information on a certain subject please let me know!

Comments


No one posted anything yet.

Post your comment


You need to be logged in to post comments. Not got an account yet? Register now!