Streaming Live TV has been a dream of mine. I'd love to have access to streaming TV from anywhere - wouldn't you? Well, last week I redeemed 170,000 Sony points to get a Sony VAIO RA920G PC running Microsoft's Media Center Edition 2005 operating system. I was curious if I could figure out a way to "stream" my home PC's multimedia content, including My Videos (.AVI, .Divx, etc), as well as stream live TV to my PC at work by accessing the TV tuner capture card. Imagine being able to remotely control your home television, change channels, and view the content at work! Now that would be cool... And so I began my investigation and research.
First, let me point out that apparently, I am not the only one desiring the ability to stream MCE 2005's content. I've read several forum posts stating the same thing. The general consensus is that Microsoft didn't put streaming capabilities into MCE 2005 as to avoid running afoul of the DMCA/RIAA/MPAA and getting tangled up in copyright issues. Why does Hollywood always have to ruin all the fun? It's not like my home broadband connection has the bandwidth to stream to hundreds of users. In fact, I had issues having enough upstream bandwidth on my home cable connection to stream to just ONE PC - I will get into that bandwidth issue in a minute.
In my initial research, I could not find any software that would stream video files or access a TV tuner card and stream that. I wanted something that could also transcode on the fly so I could reduce the video quality if need be for slower Internet connections. I was about to give up and all seemed lost when I came upon VideoLAN, which has a multimedia player that also acts as a streaming server with transcoding capabilities. Best of all, this streaming software is open-source and runs on Linux, Mac, Windows, and more! Could this be it? I frantically read the home page, quickly searched for the download link and installed the software. I first tried streaming a file on the LAN rather than the Internet (WAN). From VLC media player I opened an episode of Smallville that I had recorded and encoded as an .AVI file.
Fig 1. VLC Media Player - Smallville TV show streaming
I went into the Stream Settings screen (See Fig. 2 below) and set the file to stream using UDP on port 1234 to the IP address of a 2nd PC. I could have used either multicast (for multiple PCs) or unicast to stream the video. For my first test I didn't want to get greedy by trying to stream to multiple PCs so I chose the unicast option.
Fig 2. Streaming Output Window
Next, on this 2nd PC I installed the VLC media player. Then I simply clicked on Open Network Stream, chose UDP port 1234 (the default) and clicked OK as shown in this Fig 3. streaming TV screenshot: Fig 3. Network Streaming Window
Almost immediately the popular Smallville TV show started playing on this 2nd PC. Good stuff! Next, I attempted to duplicate these results using the Internet. I had one PC setup to use one broadband connection (T1 line) and another PC setup to use a different Internet broadband connection (2nd T1 line). I then repeated the above steps and once again was able to see Smallville play. The quality was actually quite good, but it did have some artifacts and break-ups due to Internet congestion. I decided to reduce the quality of the video from 1024kbps to 512kbps and the artifacts and "hiccups" all but disappeared! Even with the transcoder reducing the video quality, the video quality was pretty good.
VLC media player has some other tricks up its sleeve. You can stream a DVD across a network connection. Yeah, that's right, you read that correctly. Stream a DVD using an IP network! Now this I had to try. Once again I repeated the above steps, except instead of opening a file, VLC has a menu option to open a DVD. I inserted my wedding DVD, because if I inserted a commercial DVD and used VLC media player's libdvdcss library to read the commerical DVD I might run afoul of the DMCA since this library has the capability of disregarding the DVD's region/zone. All regions are supported without any constraint, which is probably against the DMCA (Digital Millenium Copyright Act). And since I don't want any trouble with the DMCA, I'll just use my own DVD thank you very much. (Shhhh.. it does work with commerical DVDs but I didn't tell you that.)
In any event, I was able to stream the DVD across two broadband Internet connections with very good video and audio quality. I did once again have to reduce the kbps from 1024 to 512 or 384kbps to prevent congestion though, which slightly degraded the quality. But hey, I was watching a DVD across the Internet. Is that cool or what? Now for the really fun part. I wanted to see if I could stream my home MCE 2005 PC's video content, DVDs, etc. and of course "Live TV" across my cable broadband connection. I decided to start simple with a video since I knew that would be easiest. I used Remote Desktop to access my home PC and execute the VLC player. I opened a video file on my home PC and set it to stream the video to a public IP address of a PC at work mapped outside of our corporate firewall. This time, no video came through. Hmmm. What's going on here. I switched back to the Remote Desktop window to troubleshoot and I was disconnected. I tried reconnecting - no dice. I thought maybe the PC locked up, so I tried pinging the IP address if my other home PC. No pingage. Hmmm, that's strange. I tried pinging the home router, once again, no dice. Finally I tried to call my home's Vonage line and ask my wife to reboot all the equipment and I couldn't get through. Oh no!
* Home PC - dead
* Internet - dead.
* Phone line (Vonage) - dead
* Me, when my wife finds out I killed the Internet connection and Vonage line - dead.
Long story short, my wife rebooted the equipment and the Internet still stayed offline for at least 3 hours. When I got home and attempted my experiment again (this time Remote Desktop-ing to my Work PC) I noticed once again the Remote Desktop connection was broken once I started streaming. In fact, I noticed my cable modem traffic lights were SOLID indicating heavy traffic. As soon as I clicked the Stop button on VLC player, the activity returned to normal. "Hmmm, seems like the VLC player is a bandwidth hog," I thought to myself, "let's try reducing the kbps of the video to 128kbps". Once again though the cable modem's lights went crazy. Worse, a few moments later the Internet was knocked completely offline again! Had I just crashed Charter's broadband connection, again? Of course, it could just be my cable modem that I locked up, but resetting the cable modem didn't seem to help. This time it took 30 minutes for the cable modem to re-establish a connection. So what have we learned here? Well,if you want to attempt to crash a cable modem's network, go download VLC player and stream to an outside IP address.
In any event, I tried the lowest video setting and still I couldn't get it to work. It appears my 3MB broadband connection isn't up to par with a symmetric 1.544MB T1 line. The issue is the damn upload/upstream cap that cable providers place on each subscriber. Last I tested, I only get 256kbps upstream - which actually should have been enough to stream, so I am at a loss as to why this didn't work. Alas, I did not get to the point where I could attempt to stream live TV from my home PC to my work PC. I will mention that VLC media player has another option called "Open Capture Device" which supposedly works with MPEG encoder cards. Since I believe my "live TV" goes through the Sony's MPEG encoder card in theory I can open this capture device and stream the live TV feed --- if only I had a better upstream Internet connection. I'll have to play around with it some more, but it's tricky since it knocks my Vonage line offline which my wife uses during the day. I'm also still working on the WAF (Wife Acceptance Factor) of her liking the Vonage VoIP phone line which does go down when I test stuff (among other reasons) as well as the WAF factor of having a Media Center PC in our living room. By the way, I'm going to post a review of Microsoft's MCE 2005 along with some VoIP capabilities in the next week or so, so stay tuned for that.
It's been awhile since I posted about VLC's streaming capabilities and I wanted to update this post to point out two other good streaming solutions. The first streaming solution is from Orb Networks, a free software download that installs on a Windows PC and can stream your music (mp3) files, your video files (.avi, DivX, .wmv, etc.), as well as view your Pictures remotely. If you have Windows Media Center Edition it can even stream your recorded TV programs to your laptop, PDA, or even some smart phones. You can also use their web interface to schedule a recording of a TV show. Another solution is from SlingMedia called the Slingbox. It's a standalone box that resembles a Toblerone candy bar and has video and audio inputs/outputs to connect to your TV cable or satellite set-top box as well as an Ethernet connection to stream your video content over the Internet using their Sling Media Player.