VLC and the Presidential Inauguration

I meant to post this a long time ago but just didn't get around to it. So, as usual, it is way too late to think, but I have the time and the energy to get it done. I have been using VLC (Video Lan Client) for years now. It is a media player that can play just about anything on any platform. What most people don't know about VLC is that it is a great application for streaming video or audio in a variety of formats. Better yet, it can stream multiple streams using different protocols at the same time.

Lets go back about 18 months ago to the first time I really gave VLC a look in regards to streaming. I spent some time one day with our middle school Applied Computer Technologies teacher experimenting with VLC's streaming capabilities. We slapped a really high quality DVD (an IMAX DVD about the earth or something like that) into his laptop and set up a multicast stream within his school. We used a 239.x.x.x address. We then pointed about forty other computers running VLC to that address from all over the building. Every computer looked like it was playing the DVD locally (I believe I was sending out a 3MB stream). We were so impressed that we figured we would try something a bit different. I stopped the stream and then configured VLC to send both a multicast stream and an http stream. All forty of the computers from before started the video again just as if it never stopped. I then drove to my office that is located a few miles away and is also on a different network segment. I fired up VLC on my desktop computer and entered in the IP address of the http stream that had been set up and in a matter of a few seconds the high quality DVD started playing on my computer as if it was playing locally as well.

Fast forward to February of 2009, about a week before the presidential inauguration. I suddenly began getting emails and phone calls from teachers and other staff asking what we were going to do to get the inauguration into classrooms. This question came up because we don't have cable or local TV in any of our schools except the high school. The cable company has a franchise agreement with the city that says they will provide cable to all of the schools but we don't have the last mile connections and the cable company won't do that part of the install. So.... many of our teachers were planning on just firing up their computers and grabbing the stream from CNN or one of the sites on the Internet that would be streaming the inauguration. Our network administrator didn't like that idea and also didn't think it would work with bazillions of people from all over the world hammering the Internet services.

Remembering the success of my streaming attempts from earlier, Bob our network administrator took the ball and ran with it. He ran down to the local Circuit City (20 miles away and now out of business) and bought a Hauppauge video capture card and installed it into one of the new desktop computers that had just came into the shop. Mind you, this computer was a basic desktop machine. He ran it up to the high school and hooked it up to the cable TV connection and tuned in CNN. Things got a bit hairy here as VLC didn't want to talk to the Hauppauge card directly. After some tinkering he decided to just capture the inauguration to a file on the hard drive. A cool part about VLC is it can read a file that is open for writing, so Bob just pointed VLC to the file that was being captured by the Hauppauge card. This is where it gets really fun.

Bob configured VLC to stream a single http stream on a single IP address. Then he and Josh, one of our technicians took four of the new computers and placed one in each of our remote sites. These sites are connected to the main campus via 100MB fiber links. At each of these sites they configured VLC to grab the http stream from the high school and then restream it as a mulitcast stream within each building. Two more of the new computers were placed in the technology office to provide the stream for our main campus that houses the high school, an elementary school, our alternative programs facility and the district office. Each of those two computers setup in the tech office were set to grab the stream and then restream an http stream on different IP addresses. There are so many different network segments on the main campus that they just pointed all the machines at one of the two http streams in the tech office.

After all the computers were setup to stream and restream, an email was sent out to staff with instructions on how to configure VLC to grab the stream and watch it via their projectors on the big screen. Even most of the high school teachers who had cable, used their computers to watch the inauguration. When all was said and done, we had hundreds of computers grabbing the original stream from the high school and projecting it via LCD projectors onto big screens in each classroom. Only one minor glitch was found and it was fixed in a couple of minutes. So, an open source piece of software, VLC, with the ingenuity of our tech staff, made it possible for nearly 4000 students and 400 staff members to watch the inauguration live even though they didn't have access to a cable channel. 

Do you have a favorite use for VLC, or a success story that you would like the world to know about? Post it up in the comments on this blog.

What's the difference between a multicast stream and an http Stream?

Multicast streaming is a one-to-many relationship between the machine doing the streaming (server) and the clients receiving the stream. With a multicast stream, the server streams to a multicast IP address on the network, and clients receive the stream by subscribing to the IP address. All clients receive the same stream and do not have control of content playback. Because there is only one stream from the server regardless of the number of clients receiving the stream, a multicast stream requires the same amount of bandwidth as a single stream containing the same content. Using a multicast stream preserves network bandwidth and can be useful for low bandwidth local area networks. Just a note: generally multicast packets are not routed by the routers on your network unless you configure them to do so. Given this fact, multicast streams usually only work on the same network segment where the server resides.

HTTP streaming is a one-to-one relationship between the machine doing the streaming (server) and the clients receiving the stream. Each client that connects to the server to receive the stream generates another copy of the stream. This approach to streaming works great if you have high bandwidth connections to the server but falters quickly if your bandwidth isn't large enough to handle all of the stream requests. The difference between multicast and http streaming is that when doing a multicast stream only one stream is sent out on the network while with http the number of streams equals the number of clients trying to access the stream.

 

VLC WAN Diagram for
Inauguration day

WAN Diagram of VLC configuration

 Click on image to enlarge

Trackback URL for this post:

http://orwinconsulting.com/trackback/45
Randy Orwin
User offline. Last seen 22 hours 3 min ago. Offline
Joined: 03/06/2007
Glad to help!
Hello David, I am glad that you found something that you can take back to your schools. That is why we do these labs. People need to know what is available in the open source arena that can have a powerful impact on teaching and learning.
David Hay (not verified)
We're looking at this as well
A few of our high schools are interested in doing this for morning announcements and live events, such as Remembrance Day Ceremonies, that would normally require assembling the students in the gym. I'll pass along this post to them to show that others have done this successfully. Thanks.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p>
  • Lines and paragraphs break automatically.