About Me and the Technology - a FAQ of Sorts Current Gear List and Configuration
I get a lot of IM's and emails asking me how I pull these broadcasts off, why I do them, etc. Rather than answer them all individually, I figure I might as well just give everybody a run down right here.

A while back, I picked up an EVDO (EVolution Data Optimized) card for my primary internet connection at home. I live way out in the middle of nowhere, and I don't have - nor will I ever have - DSL or cable. There is one 802.11 wireless provider in the area, but the closest tower is 6 miles away, and blocked by trees. Sattelite is available, but it's not appropriate for my needs for a variety of reasons, including the lack of support for IPSec VPN tunnels, spotty reliability, and restrictive Fair Access Policy (FAP) limits. So needing something a little more reliable (and faster), I contacted Embarq (my local phone provider) and ordered up EVDO service.

The service uses the cellular network to carry data at broadband speeds. In my case, it's EVDO rev 0 and the infrastructure is actually owned and maintained by Sprint. Embarq simply resells it. Speeds are dependent on a variety of factors including (but not limited to)distance from the tower, weather conditions, and congestion. Here at the house, it's usually around 1Mbit down, and 100kbit up. It's about as fast as a slow DSL connection.

With my new internet connection all set up and working, it quickly occured to me that I had broadband internet access pretty much anywhere I could get a signal on the Sprint network. The wheels in my head started turning, and I thought "You know what would be cool? Broadcasting live video from my car". It just kind of took off from there. I'm still amazed at how many bored people will actually watch me run errands, or BBQ out back. ;-)

Enough with the history lesson.

Broadcasting live video to hundreds of people simultaneously while mobile is a bit of a challenge. There isn't much bandwidth to work with, and what little is available varies a lot. The stream needs to be at the lowest bitrate possible, while maintaining a reasonable picture and audio quality. Making the process even more difficult, is the fact that there's only enough bandwidth on the EVDO connection to support one viewer. It isn't much fun restricting access to one lonely viewer, so it's obvious that we need to get creative.

Enter: Windows Media Services

The basic idea, is to stream the video to a publicly accessible server on the internet with a lot of bandwidth. We want clients to connect to that server, rather than directly to my laptop. To do this, Windows Media Services was installed on a dedicated Windows 2003 Enterprise Edition server I lease. This is what you guys are actually connecting to. On my laptop, I'm running Windows Media Encoder 9 series. This is the software that takes the audio/video signal from my cameras, encodes it, and sends it to the server. This way, I only need enough bandwidth to send *one* stream out. Once it gets to my server, it can be re-broadcast to as many people as I'd like there to be.

For a while, I was using a Microsoft USB webcam for the video. It was cheap, and it worked. Recently though, some limitations of this approach have started to surface. A webcam like this is designed to be...well...a webcam. You stick it on your laptop, and use it to talk to your friends, or what have you. It has a narrow field of view and is very problematic when used outdoors. This really came to a head recently, while I was doing a broadcast driving east into the rising sun. The camera would not automatically adjust the exposure and as a result, the picture was completely washed out. I had the same problem when I returned home later in the day, this time driving west into the setting sun. Having to limit broadcasts to the noon day sun, or north/south routes kinda sucks, you know? The camera has other problems. It's difficult to mount in a vehicle, and the focus must be manually adjusted. Remember, it's intended to be used by a person sitting next to their computer.

To remedy this, I decided that I would be better served with an actual video camera. A real video camera will automatically adjust it's focus, exposure levels, etc. The image quality is superior, as well. An easy way to do this, is to use a modern digital camcorder. It can be connected to the laptop via firewire and accessible to any Windows application capable of capturing video (like the Windows Media Encoder). I have such a camera, but it's an expensive one, and I'm not too crazy about leaving it in my car, or disconnecting it when my wife wants to take home movies, or what have you. I had an old Panasonic camcorder laying around, so I decided to use that.

The challenge inherent in using an old analog camera, is that it can't be directly plugged into my laptop. To remedy this, I needed a device that would accept analog audio/video inputs, digitize them and send them to the computer over the USB port, where it would be seen by Windows Media Encoder. A quick trip to Best Buy, and I found the solution in a Pinnacle DVC100 for about $50. Problem solved. It's actually marketed and sold to consumers as a way to transfer home movies onto DVD. It comes with a bunch of cheesy software to this end, which I promptly discarded. ;-)

That's pretty much it, short of going into the actual configuration parameters for the various components of the solution.

Laptop: Lenovo (IBM) T60
EVDO Card: Novatel v620
Camera: Panasonic Palmcorder PV-D300D
Analog Video Capture: Pinnacle DVC100
Server: Windows Server 2003 Enterprise Edition
Client-side Encoder: Windows Media Encoder 9 Series
Server-side Streaming: Windows Media Services
Audio/Video Codec: Windows Media 9
Video Bitrate: variable (~28kbit avg, ~140kbit peak)
Audio Bitrate: 10kbit mono
 
 
   
 
   

©Copyright 2007