EDIT: I understand some of this is out-of-date and the pictures are 404′d, but I haven’t changed anything or updated it because I use Xsplit now, due to it supporting a newer version of the H264 encoder!
I’ve gotten a lot of e-mails and questions pertaining to streaming. I’ve noticed there are a lot of guides out there on the internet, but a lot of them feel incomplete to me. Here, I’ve done my best to put together a guide that will not only tell you how to get the greatest looking stream but to also help you understand all of the different settings involved in streaming. I’ll be writing this under the assumption that the reader has absolutely zero prior knowledge about any of the programs I’ll be discussing.
There are three primary applications I use to stream:
FMLE is the program that encodes all of the audio/video information it’s receiving into a flash stream to be sent off to whatever rtmp server you’re streaming to. The rtmp server is the server used by whomever you are streaming to (for instance, Justin.TV, ustream, livestream, own3d, etc…) receive flash streams and display them on their respective sites. FMLE is able to capture audio from your PC, but it is not able to capture any images/video from your desktop or applications you’re trying to stream. It’s only able to encode existing feed. In order to feed information into FMLE for it to encode, you need some sort of screen capture application, such as…
VHSC is the application that I use to capture my desktop. I’ve heard of some alternatives, but this is the only one I’ve personally tried. Most of the VHSC downloads available on the ‘net today have a watermark, but this is an older version that doesn’t have one.
VAC isn’t actually required to stream, but it will improve the audio quality of your stream significantly. This is the only program on the list that you actually have to pay for (though it may or may not be possible to pirate it from some places on the internet…). FMLE, although cable of capturing and encoding audio, is only able to capture one line of audio at a time. That means you must choose between your microphone and your computer sounds. It is possible to capture just your computer sounds if you don’t wish to speak, and it’s also possible to capture your computer sounds using your microphone, but VAC will provide a much cleaner sound if you really want to mix both the audio coming from your PC and the audio going into your microphone
I’m going through this guide assuming you’ll be using all three of these pieces of software. If you choose to omit VAC, I’ll make sure to let you know which settings need to be changed in order to keep everything working.
The first program you want to download and install is VHSC. You can find the download link above to the program. This is the program that’s going to be capturing our visual data.
1. Open up “VHMultiCam.exe”, found in “HmelyoffLabs/VHToolkit/”, or wherever else you installed i
2. Click “Tools”
3. Check “Disable auto start”
- This will make it so that the Multi Cam box doesn’t pop up every time you open FMLE.
4. Now go into HmelyoffLabs/VHScrCap and open VHScrCapDlg and click “Create New One” in the bottom right corner
5. A box should pop up. Select the “Capture” tab of this box.
6. You’ll want to enter in here the “coordinate” of the screen you’ll be streaming. If you’re streaming on one 1920×1080 monitor, your coordinates will be Left: 0, Top: 0, Width: 1920, Height :1080. So your stream will draw a box beginning x pixels away from the left and x pixels away from the top, based on the numbers you enter. If you have one monitor, (or two or three and want to stream from the left one), entering the previous numbers will give us a stream capturing the primary window. If your resolution is 1280×720 or something different, you’ll want to set the width/height to that. Since we’re setting specific pixels to be captured, leave the right three boxes unchecked.
7. In the “Settings” tab, you have several options.
1. Border color/magnitude: these options affect a border that will appear on a stream if you set the resolution to display more area than VHSC is actually capturing. If you tell FMLE to output a 1920×1080 stream and you have VHSC capturing a 1920×900 stream, VHSC will fill in the extra space with whatever color is here. This is irrelevant, as we don’t ever want to see this happen.
2. Frame rate: this is the number of frames per second VHSC is capturing. We don’t need to set this as FMLE will do it for us.
3. Align video: This has to do with capturing video in pixel widths that are only multiples of 4. We can leave this unchecked as we are setting the resolution of our capture exactly, based on our desktop size.
4. Show mouse: We want the mouse to be visible while streaming.
5. Show mouse clicks: I think this highlights the mouse every time you click. I’ve never used it before, but I leave it unchecked because it seems like it would annoying.
6. Capture layered windows: I think this has to do with capturing VHSC windows or Multi-cam windows. It’s irrelevant to anything we’re doing, so I leave it unchecked.
7. Optimize screen capture: I always get worried when a program offers to “optimize” anything. I have no idea what it means in this context, so we’ll leave it unchecked for now.
8. Resize to output size: FMLE will be taking care of the encoding/resizing, so we can leave this box unchecked.
9. Track mouse: This will follow the mouse around. We’re capturing the entire desktop, so there’s no reason to have VHSC follow the mouse around to capture anything.
10. Specify output size: Again, FMLE will take care of this.
11. Register in ROT: I have no idea what this is, so I leave it unchecked.
Once you’re done with that, you can simply exit out of the box. You’re done configuring VHSC!
FMLE is the program that’s going to be encoding the video feed from VHSC and one line of audio into a flash stream that gets sent off to whichever streaming website we choose. Download and install Flash Media Live Encoder, then we’ll look at tweaking those settings.
1. Open up FlashMediaLiveEncoder.exe in your Adobe/Flash Media Live Encoder 3.2 folder
2. Once open, you’ll be presented with a fairly intimidating screen with a lot of options on it. We’ll go through these one at a time to make sure you understand all of the different settings here.
1. Make sure you have the “Encoding Options” tab selected. This should be selected by default.
2. Preset: You’ll want this set to “Custom”. I haven’t tried any of the presets for different streams, but the resolutions seem to be way too low for anything we’d want to stream.
3. You will be streaming both video and audio, so you want both the “Video” and “Audio” check boxes marked.
4. Device: You should be able to choose VHScrCap from the drop-down menu here. If you click the wrench beside it, nothing should happen as we can’t adjust any VHSC settings through FMLE for some reason.
5. Format: This will help you choose between two different encoders – VP6 and H264. It seems to me that VP6 works better at lower bitrates and H264 yields higher quality results at higher bitrates. If you click the wrench beside the Format button you can adjust how each encoder behaves.
5.1. VP6 settings
5.1.1. Keyframe Frequency: While streaming, encoders will only update pixels that change on a screen. That means that if you were to stare at your base while mining minerals, the only pixels that would be updated would be the pixels surrounding/encompassing the mining harvesters. The Keyframe Frequency will determine how often the video encoder will take an entire fresh shot of the screen from VHSC instead of trying to redraw anything. This should probably never be set below 5, as you’ll be drawing way too many new screens and consuming too much bandwidth.
5.1.2. Quality: This setting will vary the way your stream looks if your processor becomes too strained while streaming. If your processor becomes too labored, it will choose to either drop frames or resolution, based on whether you opt for framerate or quality. I generally just leave this on the default setting; ideally, our processor will be able to handle streaming just fine.
5.1.3. Noise Reduction: If FMLE detects what it believes are artifacts in the stream, it will attempt to blur them out. Artifacts are unwanted visual images that appear due to the nature of encoding processes, similair to how mp3 encodings can introduce artifacts into music. I generally leave this at none.
5.1.4. Datarate Window: This has to do with how much info FMLE sets aside in a buffer to compare frames with each other, resulting in better compression if it’s able to determine similar frames, resulting in less pixel redrawing. I leave this at medium.
5.1.5. CPU Usage: This determines how much of a priority your CPU has for FMLE. This should always be set to dedicated.
5.2. H264 settings
5.2.1. Profile: You can choose between either “Main” or “Baseline”. The only difference between the two is that Main requires 1.5% more processing power, and often yields better pictures than the Baseline profile. Main is the way to go here.
5.2.2. Level: The level you set will determine the maximum resolution/FPS H264 can stream at and will tell the decoder how hard it has to work. Here’s a list of the differences between all of the levels on Wikipedia – http://en.wikipedia.org/wiki/H264#Levels. The level you set will vary based on your desired stream.
5.2.3. Keyframe Frequency: This works the exact same way the Keyframe Frequency did with the VP6 encoder. For higher quality H264 streams, I have this set to 10, usually.
6. Framerate: This is just how many FPS we’ll be pulling from VHSC. It will vary greatly based on the quality of the stream.
7. Input Size: This is the input we’re getting from VHSC. This should match the resolution of your primary monitor that you’ll be capturing SC2 on.
8. Bit Rate: Below this you have the option to encode three different streams simultaneously. In each box, you can specify the bitrate of your stream and the Output Size (resolution) of your stream as well. This will vary greatly based on your upstream.
9. Crop: This can be used to cut away any of your picture. There’s no reason for us to do this unless your monitor is a non-standard resolution that FMLE doesn’t support. If that’s the case, you need to crop away the “excess”, ie: if your monitor is 1650×1050, you would set your input to 1920×1080, then you would crop away 270 from the right and 30 from the bottom.
10. Deinterlace: This applies a vertical blur that may increase video quality. I’ve never used this before, I don’t think it’s needed.
11. Timecode: Somehow this embeds a timecode into the stream, but I’ve never messed around with it before and I don’t think any of the sites we’re going to be streaming to would support it, so I always leave this option unchecked.
12. Device: Under the Audio tab, now, you’ll be able to choose which device you’ll want to have encoded for your audio. Stereo mix would allow you to encode the sounds from your computer, but nothing will be captured from your microphone. Conversely, microphone will capture everything your microphone does. If you’ll be using Virtual Audio Cables, you’ll want to set this device to Line 1, otherwise you can choose whichever you prefer.
13. Format: You can choose between mp3 and nellymoser (only if VP6 is selected) for audio encoding. Nellymoser works better at bitrates, but I always use mp3 encoding here for audio.
14. Channels: Stereo vs mono. You want to go with Stereo here.
15. Sample Rate: Sampling basically has to do with how many times a second audio is taken from an analogue sound wage and converted into digital data. If you’re interested, here’s a good read on sampling information: http://en.wikipedia.org/wiki/Sample_rate#Audio.44100 yields the best results, and as such, is recommended.
16. Bit Rate: This is how many bits per second the audio will be used for audio encoding. I wouldn’t go any lower than 128 on this.
17. Volume: Adjusts volume. Always have this set to max.
18. Preview: You can preview the Input Video, Output Video, and Audio here. I leave all three unchecked so that FMLE doesn’t occupy any more resources than it has to, but it’s irrelevant anyway as we’ll be streaming from the command line version of FMLE instead of this GUI.
19. Panel Options: This just changes what we see to adjust here. I never enter any Metadata when streaming, it’s pointless to do so, so we’ll leave it at “Output”.
20. Stream to Flash Media Server: We’re doing this, so we want this box checked.
21. FMS URL: This rtmp URL should be pulled somewhere from your individual streaming website, it will vary based on which site you stream to.
22. Backup URL: I usually leave this blank. I’m guessing FMLE will try to stream to this URL if the main one goes down.
23. Stream: This is your unique stream key. Every site should give you a unique stream key that you should be careful not to give out to anyone. You can broadcast to any channel in the world if you simply enter their stream key here, so once again, be careful not to give yours out.
24. Connect button: I guess you can use this to test your connection to the Flash Media Server. No reason to use this.
25. Auto Adjust: If you select this, you can have FMLE either drop frames or degrade your resolution quality if your upstream becomes too saturated so that it can keep up with the encoding without lagging. There’s a wrench next to Auto Adjust that gives us more control over these features. I would generally opt for dropping frames.
25.2. Minimum Video Bitrate: This will tell FMLE the lowest acceptable video bitrate if you tell it to lower the resolution. You can set this as low as you want, I’d recommend setting it to 10% of your normal streaming bit rate. If FMLE reaches this and still needs to drop the bitrate, it will begin dropping frames.
25.3. Preserve Per Frame Quality: This will drop your FPS to as low as 50% of your initial value in order to preserve the quality of the screen capture. I leave this unchecked.
26. Save to File: You can check this box if you want to save your streams to file. Most sites will do this for you automatically, and this is an additional strain on your system. I would leave this unchecked. The options below this all determine the maximum size of your saved files.
27. DVR Auto Record: We’re not doing any DVR recording, so leave this unchecked as well.
You can see that Flash Media Live Encoder gives you a much greater degree of control over your streams than other programs, but it can appear daunting if you don’t understand all of the different settings. Once you finish adjusting settings, you can save the profile under the “file” tab for future reference. We’re going to be doing the actual streaming from the command line version of FMLE. When you double click FMLECmd.exe (in the same folder as FlashMediaLiveEncoder.exe), it will attempt to stream at whatever settings you had up in FMLE when you closed the program. Keep in mind this may not match your saved profile if you changed any settings before closing the FMLE GUI.
Congratulations, after double clicking the FMLEcmd.exe box, you should be streaming to whatever site you choose!
If you’ve decided you want to route audio from both your microphone and your speakers into one channel for a clearer sound, Virtual Audio Cables is the way to go. It’s the program I’m familiar with, and I’ll show you how to set it up.
1. After installing VAC, open up vcctlpan.exe in whatever folder you installed VAC in.
2. Once open, you’ll see a number of different, configurable options.
3. Under “Drive parameters”, we have Cables. You’ll want to set it to only 1 cable, then press “Set”.
4. Under “Cable parameters”, SR is your sampling rate. You want the minimum/maximum settings to be 44100 and 48000. This specifies the range of sampling rates allowed for the virtual audio cable.
5. BPS is theminimum/maximum bit samples allowed for the cable. Set this to 8 and 16.
6. NC is the maximum number of channels allowed, set this between 1 and 2.
7. “Max inst” is where you set the maximum number of pin instances. Just set this to 20, explaining it is somewhat complicated and even I don’t fully understand it.
8. “Ms per int” is the number of milliseconds per interrupt, it has to do with sound latency. Set this to 5.
9. “Stream fmt” has to do with stream format limiting. Again, this is fairly complicated, just set it to Cable range.
10. Volume control needs to be unchecked.
11. Under “Connected source lines”, there are three boxes. Of these three, only check the “Line” box. Leave Mic and S/PDIF unchecked.
12. Clock corr% should be set to 100%.
After you have these settings, click the “set” button in the bottom right of the box, then click “restart”. Afterwards, you’re clear to exit the program. Now, when you load up FMLE, you’ll want to select “Line 1” for your sound source. If you start your stream now, however, you’ll notice that there’s no sound at all!
When we created the Virtual Audio Cable, we created a device that’s capable of connecting different audio sources and mixing them into one audio line. However, we haven’t actually sent anything to the audio cable yet! In order to do that, you need to open up two instances of “audiorepeater.exe”.
1. On one, you want the Wave In to be set to your microphone. On the other, you want the Wave In to be set to your Stereo Mix.
2. You want the Wave Out on both to be set to Line 1, which is your virtual audio cable.
3. The Sample rate will be kept at 44100.
4. Buffer size can be set at 400.
5. Bits per sample is good at 16.
6. Buffers are good at 12.
7. Channel config should probably be Stereo.
8. Priority can be left to Normal.
9. Click Start on both audio repeaters to get everything up and running! Now you can minimize these programs and open up FMLE!
This should be all the info you need to get started streaming using FMLE. Here are a couple sample bitrate streams I’ve created; you can simply download these files, change them from a .txt to .xml, open them with FMLE and enter in your stream key, then you’ll be good to stream using the rest of the settings. I encourage you to tweak with them on your own to better suit your needs, should you desire to do so!