Anyone can sign up for an account at a video streaming site like UStream.tv or Justin.tv and start streaming themselves to the world, but making a show look clean and professional takes a lot of work, know-how, and experience.
That's why I thought I'd take you through some of the lessons I've learned while shooting over 200 episodes of my web TV show about Starcraft II, the Day9 Daily.
This guide should get you past most of the common problems, but be prepared for some detours along the way. Just remember: Don't be too hard on yourself, and have fun.
The three ingredients of webcasting
Any successful live webcast has three main components: A screen capture program, a video encoder and an Internet site that will stream your feed out to your viewers.
First you'll need to capture the audio and video that you want everyone to see. For the Day Daily, I want my viewers to see what's on my computer screen and hear what comes out of my speakers, so I use a screen capture app called VH Screen Capture Driver.
VH Screen Capture takes that audio and video and feeds it to my video encoder app (Flash Media Live Encoder), which compresses the audio/video so it's easier to stream over the Internet. Finally, this encoded version of the show is sent to a website that can distribute it. Let's start with the screen capture app.
How to capture your screen
For this tutorial, we're going to stick with VH Screen Capture, although a number of screen capture programs are available. Start by downloading and installing VH Screen Capture, then watch the above video for instructions on how to set it up. Be careful not to install the 64-bit version, as that version currently does not work properly in this setup.
If you open VH Screen Capture and do not see the "Video compression" and "Audio compression" boxes, you probably don't have your microphone properly installed. Also, the options that you have under video and audio compression will depend on the codec pack you've installed (I use the K-Lite Codec Pack), as well as on the output file type that you've selected (I use .avi).
When you're adjusting your bit-rate settings, you should keep an eye on your frame rate, also known as frames per second (FPS), higher FPS means smoother video. While the screen capture lets you set the desired FPS, the actual number is displayed in the program in the bottom right corner once you hit record.
When your settings are too high for your computer to handle, the actual FPS will drop below your desired FPS. If this happens, try changing the type of video and audio compression, the bit rate, or the FPS to a level that your computer can handle.
The right settings for you will depend on your computer's capabilities and your specific show. Each compression type has a different tradeoff between the computing power required and the quality per byte. However, you generally want to tend toward higher bit rate and lower compression in your screen capture program, because we'll be able to better tweak and compress the video in the next step with the video encoder app.
For our show, we use the H.264 codec, which gives some of the best quality per byte (1000KBps for a 30-FPS, 854-by-480-pixel stream is pretty good) but will also use most of your computing power.
Getting audio to work properly will depend heavily on your sound card. The important steps are to ensure your microphone is set to play back through your speakers (so your audience can hear both your PC sounds and your mic sounds), to ensure that nothing you want to hear is muted, and to enable a setting called "Stereo Mix" if available. These settings can be found in Windows in the Control Panel under "Sound."
Make sure to write down your frames per second from this section, using a different FPS for the steps in the next section causes ghosting and other undesired effects. Also, remember your audio sample rate (we use 44100 KBps). Finally, remember the width and height of the recording window (often 854 by 480 or 1280 by 720 pixels).
Encoding live video
The next step uses Flash Media Live Encoder, so you'll need to download that. This program receives the video from VH Screen Capture, encodes it into the streaming video that all of your viewers receive, and sends it to the distributor.
First, we'll need to get a Flash Media Encoder XML file from your streaming website. Here's how we do it with ustream.tv:
- Log into your ustream.tv account (Register for one if you haven't already).
- Click Manage Your Show, and open the Settings tab.
- Select Advanced settings at the bottom.
- Click the Download the Flash Media Encoder XML file button and save the file.
- Ensure that the ustream broadcast console is closed, then launch Flash Media Live Encoder.
- Go to File, Open Profile and select the file that you downloaded.
- Press Broadcast Now on ustream and it should find your stream from Flash Media Live Encoder.
If you see that Flash Media Live Encoder is using too much CPU power, try clicking on the wrench as shown in the video, setting the profile to Baseline instead of Main, and play around with the Level setting. The Baseline profile uses less computing power but gives less quality per byte. This means that the same bit rate will not look as nice, but it will be easier on your computer.
The Level setting should be related to the video width and height. For 360p video you can use 3.0, for 480p use 3.1 and for 720p try for around 4.1. Keyframes are uncompressed frames, which means they lower your quality since other frames will need to be compressed more to make up for them. They do serve useful purposes (such as allowing viewers to easily skip around in the saved video), so don't turn them off entirely.
While I do not recommend using Auto-adjust, it may be necessary for your setup if it has a hard time handling your video feed. Checking the Drop Frames box will make the video appear to stutter or jump forward from time to time, while checking Degrade Quality will dynamically lower the resolution of the video as necessary. The latter option is my personal preference, since it's less jarring for the viewer than skipping frames.
Streaming the show
To complete this part, you will need to register or open an account with a video broadcasting site such as ustream.tv, justin.tv or livestream.com. This guide will be for ustream.tv. These sites will read in the data coming from your computer and send a copy of it to anyone who wants to watch. Follow the video tutorial on how to go live with your show once you have an account set up.
When choosing settings here, the most important number to watch is Total Video + Audio Rate. If this number ends up being any higher than 1200 KBps, you will likely have viewers complaining that the video is lagging, skipping frames or jumping.
This might be a problem with the streaming site that you use, but more often your viewers simply do not have enough bandwidth to download all of the data from the stream in real time, which causes the player to freeze and skip over missed frames. If you see complaints like this, just lower your Total Video and Audio Rate until your viewers are okay.
Tips and tricks
If you've followed me up to this step, your computer might be crying for help and your frame rate might be dropping lower than you'd like. Here's how to tweak your configuration.
First, make sure to turn off anything that you don't need, especially anything using a lot of CPU power. If you use Windows, open the Task Manager, browse through the applications and processes shown, and kill the ones you don't need. Here are a few examples of items to watch out for:
Windows Aero Interface: Disable this by right clicking your desktop, selecting Personalise, and then picking an option under the Basic and High Contrast Themes.
Antivirus software: Just ensure that no active scan will be running while you're live.
Anything that uses Flash: Online videos, games, ads and so on. Don't kill your Flash Media Encoder or your ustream window, of course.
Next, you'll need to tweak a few settings in the programs you're using to do your webcast. For example, each app you're using has its own video preview, turn all of them off.
If you still see issues, you can assign different processes to different processors, particularly useful if you have a quad-core processor like a high-end Intel Core i5 or i7. This setting is called Processor Affinity.
A common misconception is that a quad-core processor will automatically do better at a task than a single-core one. In practice, you will often see core 1 running at 100 percent usage, while cores 3 and 4 are just hanging out idly. You can fix this by explicitly assigning programs to run on a given core as shown in the video. Please note that a quad-core computer will often have eight "CPUs" listed.
This happens because your processor can run more than one thread. If you assign one process to two different cores, it'll run slower than if you leave it on the same core, so always assign affinity in pairs of 0 and 1, 2 and 3, 4 and 5, etc.
You'll need some decent gear to make your show shine. This is what we use.
Intel Core i7 Processor: A dual- or quad-core processor is required if you want to do H.264 encoding (recommended for high quality) and plan to have two of the cores dedicated to this task.
If your computer needs to do anything other than encode video from your camera, a quad-core is strongly encouraged to prevent frame drops. I use an Intel i7 920 overclocked to 3.2GHz (about equivalent to an i7 950). If you're in an enclosed space where heat may be an issue, I don't recommend overclocking your computer, since it will run hotter.
Blue Snowball Microphone: This is great upgrade from the default mic that came with your computer, mostly because it's designed so you don't need to have it right in front of your face for it to clearly pick up your voice. It uses a USB interface, which makes it fairly simple to integrate into your setup.
Microsoft LifeCam Cinema: This is a 720p HD webcam with some nice features like 16:9 video, autofocus and light adjustment.
Westcott uLite 3-Light video lighting kit: This is an inexpensive three piece lighting kit with two soft boxes and a backlight. This may not be the best out there, but it will allow you to use standard three point lighting at a fraction of the cost of higher-end kits. I replaced the default bulbs with common 120W ones to reduce the temperature.
Alternately, you can save a few bucks by going to the store and getting a normal desk lamp instead of the soft boxes. Soft boxes add a natural feel to the lighting, but they cost more. Whatever you choose to do with your lighting, you don't want to depend exclusively on daylight or the light from your monitor. You'll find that since many cameras have an auto-adjust feature, your show will have a different look from day to day (or minute to minute, with a computer monitor).