Streaming 101

This guide will teach you how to use applitcations like FME and SCFH DSF with streaming services like Ustream and Livestream.


  1. Before You Start
    1. Things to check first
  2. VLC
    1. Setting up VLC
  3. FME
    1. Installing FME
    2. Configuring FME
    1. Installing SCFH DSF
    2. First Run and Familiarization
    3. Video Capture
      1. Snap Method
      2. Green Box Method

Before You Start

Things to check first

First of all, you'll want to make sure that your internet connection can support a stream in the first place. You'll need to have an upload of at least 0.5 megabits per second. You can test your speed at this website.

While you're at it you should also test how jittery your connection is. You can do this with a ping test. A little bit of jittering is fine, but if it's bad it can be a problem. The same is true with a large ping and packet losses.

You should also know that encoding a stream can be somewhat strenuous on your computer. If you have a weak video card, slow processor, and or a small amount of ram then you may have some trouble attaining a smooth stream. If you're not sure, then the only way to find out is to try, though you should set up some CPU and network monitoring tools so you can keep an eye on your computer's performance. If you're on windows 7 then an easy way is to use the desktop gadgets that come with it.

There is another issue that you'll want to check out first. Apparently it has become common practice now that sound card vendors are getting rid of the 'Stereo Mix' and 'What You Hear' audio loopbacks on their sound cards. The Windows OS' already disables and hides the feature by default. As such you will want to see if your sound card is capable of looping sound.

To do this you'll need to first get into the 'Sound' menu, it should be one of the options when you type "sound" into the start bar (Windows 7) or you should be able to get there through the Control Panel. Once you're there go to the 'Recording' tab and right click to enable "Show Disabled Devices". If 'Stereo Mix', 'What You Hear', or something similar shows up then your soundcard supports the feature. Make sure to enable the device by right clicking on it. You'll also want to set the device as the "Default Device", though not "Default Communications Device" as that might mess up other programs that use your microphone. After doing this you should have the option show up in FME.

If no such feature shows up then you may look for other solutions. There are other methods to enable the feature and many examples on youtube (the youtubers rely on the feature as well to make their lame videos). Try looking up your soundcard in the internet and see if other people have the same problem. There might be a way to fix it with a driver upgrade or something. Alternatively there are software solutions for it such as VAC (Virtual Audio Cable), or less physical solutions like physically connecting a cable from an output to an input. This works because FME is meant to be used to stream cameras so it's only set up to take inputs and not outputs, by connecting a cable between the two you make one appear as the other. return to top


Setting up VLC

This guide will teach you how to configure an application to be captured by the streaming software with ease. In this example we'll use VLC, though you will find similar options in many other programs. You can get it at this website.

There are several settings in the preferences menu that I recommend using as they make streaming easier overall. I will note which capture method each option affects wherever necessary, though you can still use all of the options without any conflicts a lot of them come down to personal preference. You will need to save on each screen you make changes; there is a bug in VLC that makes it so that only changes on the current configuration screen are saved. Scroll with the scroll bar, not the mouse wheel as the mouse wheel will change values. Also, for some changes to take effect you may have to restart VLC.

The first thing you need to do is uncheck the option to embed the video in the interface. The reason for doing this is two-fold. First of all, VLC has had a bug for a long time that the developers have refuse to fix, namely that preset window locations do not work unless the video is separate from the interface. Secondly, by having the two separate you can leave the video window stationary while being able to move the interface window wherever you want. Do note that while this step is mainly useful for the green box capture method (which it makes much easier), you may want to do it anyways depending on how you like it.

This one is more of a personal preference, and you may choose to leave it out if you wish. I think it makes the stream look less tacky overall. These two checkboxes control the white text [On Screen Display] that shows up when you hit certain keystrokes and whenever VLC loads a file. If your files aren't well named then there is no reason to show them on the stream.

This screen has six changes, to get to it "show all" settings (bottom left) and then click on "Video". The first one is optional, but is meant to prevent a common problem in capturing video from VLC. Sometimes the OS doesn't do video overlay correctly so when you capture or even just take a screenshot with the keyboard you'll just get a black screen. Even if you don't have that problem, since "Video Overlay" doesn't really make a noticeable difference in performance it is fine if you disable it anyways.

The second makes sure the video window stays above any other windows around. This is good for either capture method since no matter what, if you put something on top of the window it will be captured as well, and you don't want to accidentally stream an Instant Message Window or something that happens to pop up while you're not paying attention.

The third and fourth are your video resolution. There's more info about resolutions in the FME section, but basically you should set it to the same resolution as SCFH DSF regardless of capture method so that there is no upscaling or downscaling to degrade the video quality. These setting make the greenbox method very easy to use.

Finally, the fifth and sixth are the coordinates on your screen where the VLC window is set to popup. There is a bug in the some versions of VLC that makes it so that the default is (0, 0) instead of (-1, -1) (the default makes it so that the video window opens up at the same location as last time you ran the program). These settings only work if the video is not embedded in the interface. To set the same coordinates in SCFH DSF add 8 to the X-coordinate and 30 to the Y-coordinate. These settings, along with the last setting pretty much make it so you'll never have to touch SCFH DSF again after you set it up using the greenbox method. return to top


Installing FME

FME is distributed freely by Adobe. They do however require you to log into the site to download it. Either way, they don't verify it in any way so you can easily make a fake account, grab one from BugMeNot, or use the one in this example.

You can make your own account if you like spam, can't get the other login's to work, or just want to have some fun. It doesn't really matter which you do, it's not like the file is registered under your name or anything. Adobe only adds in this step so that they have more people to send spam to. Once you get passed this step you will finally get to a download page where you can download either an MSI file for windows or a DMG file for Mac. The actual installation is really straight forward. return to top

Configuring FME

You'll want to set the video input device to SCFH DSF, make sure that you've installed SCFH DSF first or it won't show up in the drop down, you may have to reinstall it with administrator privileges and then restart FME. You can use Either H.264 of VP6 for the encoding format. H.264 produces higher quality video due to better compression rates, but it eats up more CPU which can cause your stream to act choppy which you may mistake for lag. For this reason it's wise to monitor your CPU and Bandwidth usage. In case you do have trouble or you just don't want to hog resources on your computer then opt for VP6 instead. The difference in quality isn't that large. You'll always want your Frame rate to be lower than 25. Most videos are encoded at 24 fps anyways. The input resolution should be the same as what you have set in SCFH, but if it's not exactly the same then FME will just pad the video with black bars to make it fit. Make sure that the video output is the same as the video input so that there won't be any downscaling. The last important item in this section is the video bit rate. Depending on your bandwidth, where you're streaming to, and what you're streaming you'll have different values.

You do not want your upload to exceed your bandwidth otherwise you'll get lag on your stream because the network simply can't take it. Along the same lines if your network is doing lousy then you may want to drop the bit rate as a stable low quality stream is more watchable than an unstable high quality stream. If you're streaming something really low quality then putting it on a high quality stream will not enhance the quality, and along those same lines if you're streaming something really graphics intensive then you may want to drop your bandwidth to give your CPU more breathing room. Because everything has to be encoded, then increasing these settings not only affects the amount of bandwidth consumed but also processing power.

You may have to manually enable "stereo mix" or "what you hear" depending on your sound card. Some sound cards do not have the functionality either due to drivers (fixable by changing drivers), or due to changes in manufacturing (not fixable). In this case you have a couple options short of buying another sound card. You can use a program to loopback the audio for you such as VAC (Virtual Audio Cable), or you can physically connect a cable to manually loopback audio from an output to an input. The next important items are the sample rate and bit rate. Again, like with video, these both affect both your bandwidth and your CPU usage so be careful when choosing the settings. It's important to keep an eye on the bandwidth; a sum is shown at the bottom of this section that includes both video and audio bit rate (total bit rate of your stream). Also, note that the volume bar here is the same one as the one you'll find in the windows sound menu for the device.

The preview options are useful for debugging your stream, but otherwise they're a waste of CPU, and it's best to keep them disabled. The 'FMS URL' is the Flash Media Server URL. In other words, the 'FMS URL' is the URL to the server and channel that you want to stream to. The format for this URL varies from server to server, but it is always in RTMP protocol. Livestream has two simple RTMP URL formats that both work, you just fill in the channel name, user name, and password. Other streaming sites have less intuitive URLs that you have to grab from their site somehow.

rtmp://[channel name]/username=[user name]/password=[password]/isAutoLive=true/autoRecord=false

rtmp://[channel name]/username=[user name]/password=[password]/isAutoLive=true/autoRecord=false

The 'Backup URL' field should only ever be filled in if you're wanting to stream to two channels at the same time which uses up twice as much bandwidth and shouldn't really be necessary. The 'Stream' field is usually used together with the 'FMS URL' field to authenticate the connection, except with Livestream where it's just supposed to say "Livestream". The connect button allows you to connect and disconnect from the server (this is useful if you need to reset your connection). You'll want to turn on Auto Adjust and set it to drop frames. This will help maintain the quality of your connection.

Some streaming sites have limitations on their streams. Livestream is the worst offender as their streams are limited to 500 Kbps (video + audio) and their fps is limited to 25. If you try to stream to Livestream at something higher than this then the server will simply not accept your stream and you'll get e-mailed to drop your bit rate. return to top


FME is normally only used for streaming your webcam out onto the internet, so we need to use a secondary program to act as a capture driver so we can grab the desktop instead. SCFH is basically just that, a virtual webcam that captures part of your desktop. SCFH DSF Stands for something like 'Screen Capture Direct Show Filter'.

Installing SCFH DSF

In order to download SCFH DSF you will need to go to this moonspeak website. The image to the right shows which file to download.

Inside the archive you'll find the following files. If you're running a 64bit OS then run the install64.bat file, if you don't know what a 64bit OS is then you are probably not running one. If you're just not sure then just run the normal install.bat file.

First Run and Familiarization

Once you run the application you should see a window with Process ID's and application names that looks like this. If you already have FME open then it should be one of the programs listed. Note that you can also use SCFH DSF to capture video for other programs, but for this you'll want to use Flash Media Encoder.

After selecting an application to link SCFH DSF to (for this session) you will see a window that looks like this (left). Here is also an overview of what all of the buttons do (right).

A really good thing to know about is the layout window. It is opened by clicking on the layout button. It gives you a live preview of the capture in action (at a lower frame rate, don't be alarmed). It's good for making sure that you're capturing what you want to capture without having to open the streaming site. return to top

Video Capture

Snap Method

Now, there are essentially two ways go about capturing video for your stream with SCFH DSF. Each one has its pros and cons. I'll start by covering the "snap method" as it is easier to do and what most people start off with.

The way to use this method is remarkably simple. You just need to click on the button in SCFH DSF that says "Drag here." and drag the mouse onto the object you wish to capture (as illustrated on the image to the left). Using this capture method you can move around the object freely about your desktop without needing to recapture it each time, just be careful about putting it underneath other objects as it will capture whatever you cover it with. This capture method also automatically resizes the captured image so that it fits the resolution and aspect ratio that your other application wants (In this case the resolution and aspect ratio you filled in on the FME menu).

There are three basic things you should know about the snap method as they can unexpectedly present themselves as problems if you're not paying attention. The first of these involves realizing that the snap method can be used to capture objects of all sorts of crazy sizes. It's not that simple though as there are things that will get captured and things that will not get captured using this method. Look at the image to the right. There are a couple of things to note. First, the sides of the program that are not part of the picture ARE captured. Second, the image has been stretched out vertically to compensate for the extra stuff being captured.

In this image I have checked the "keep aspect ratio" checkbox in SCFH DSF. While this does indeed fix our aspect ratio problem, it still keeps the extra stuff on the sides of the image. Either way if the object you're capturing does not have extra junk on the sides, and happens to be in a longer ratio, then the black bars added on the top and bottom as padding actually can look quite nice. If you do happen to be capturing junk from around the object you want to snap onto then you may want to consider trying the other capture method.

The second problem with this capture method is the way that it deals with an object being resized. Look at the image on the right. The object being captured has been resized to a smaller more horizontal size (current size) from a larger more boxy size (translucent object). As you can see, the capture went from being perfect to being off center and the wrong size. At this point one would need to recapture the object. This can be a hassle with objects that are prone to changing size by themselves as you will need to recapture every time the size changes.

The third problem is an extension of this one. One would imagine that if the program has trouble keeping focus on an object that has changed size, then it would also have trouble with an object that disappears and reappears. Some programs do this also, VLC for example will close the video object and regenerate it between videos because it has no way of knowing ahead of time what size the new video will be (even if you set VLC to not resize). This can become a streaming nightmare if you have lots of short videos that you would just like to throw onto a playlist. Either way, the snapping method is still really neat, useful, quick, and easy to set up so do give it a try before jumping onto the other capture method. return to top

Green Box Method

This capture method requires more effort to set up initially and isn't as flexible as the other method, but it is overall more fruitful in my opinion at least. Depending on your streaming style you may prefer this method or the other.

This method is very much similar to the way Procaster's video capture engine works. Basically you type in a resolution where it says "Size" and click on the "Area Selection" button then move the green box that appears to the area you want to capture and double click. This can be a little tricky though as getting the box in the spot you want it just right can be hard and then sometimes it will shift a pixel as you're double-clicking (which can be hard to notice in the layout window). Some downsides to this method are that if you decide to move your captured object then you must recapture the object, which takes noticeably more time with this method, the same goes with resizing the object, though if your object closes and reopens then you'll still be capturing the same place.

You might be wondering how this method could be considered better in any way. Well there are a couple ways, for example, unlike with the snap method SCFH DSF will remember the place it was last capturing when you close it and open it. This means that if you set your capture object to open in the same place each time then you don't have to set it up every time you start up the program. Furthermore, you can actually add your positions/resolutions to the drop down list so that next time you just have to choose from there and hit "Apply". The best thing is that you can manually write in the position values (for the top left corner of the capture) and the resolution values.

The Windows 7 skin normally has '8 pixels' on the left edge and '30 pixels' on the top edge for all of its windows. So if you have a program start up in the '0, 0' coordinate then you would type in 8 for the X value, 30 for the Y value. Then just set the proper size/aspect ratio of your capture and hit apply. Next time you start up SCFH DSF it will immediately be ready to capture where you need it to. Of course you still have to be careful not to cover it, move it, resize it, and so on. Many programs allow you to set options for "Stay On Top", "Default Position", and "Default Size". If you set all those then you'll practically never have to touch the settings on SCFH DSF ever again. return to top