Back in February I started thinking about what was the biggest missing piece of an all PC based Media Center solution. I got thinking about this again after a recent post by Charlie Owen about how they could better document Microsoft's approach to the "Connected Home". It's a great idea, but the scenarios listed are very telling in that he completely left off the multiple WMC home.
As much as I want to rant about how that doesn't make sense, that's not the point of this post. The big thing that I couldn't do with the Media Broker idea was streaming tv content (live or recorded). After some research this doesn't seem like a huge problem. I've narrowed it down to two approaches.
- Windows Media Format: The same guys who provided a managed wrapper around DirectShow started doing the same thing with the Windows Media Format interfaces. I've got a working sample that transcodes dvr-ms to wmv for broadcast, but because I'm targeting local network broadcast it would be more practical (unless you've got a quad core) to just stream the MPEG data using the library. Fortunately MS provided access to most of the WMF interfaces in the WM ASF Writer DirectShow filter so it should be possible to do this. Unfortunately I haven't been able to get it to work. The biggest issue is setting the audio media type in the ASF profile. If I ignore audio and just write the video (which does work without complaint), the file won't playback. This is probably a codec issue, the SDK tells me to retrieve the codec info from the source header and write it to the target, but there isn't any codec info in the DVR-MS file. The main benefit of this solution is everything necessary (except the glue) is on every Windows machine, and it could be free. Assuming I can get it working, I'm hoping that the MC SDK could work with this solution easily.
- Third Party Streaming: This is definitely the easiest approach. Elecard sells a couple filters that make this very easy, they even include a sample that can stream MPGs with AC3 audio in their SDK. Some minor modifications should make it work for DVR-MS files. The major drawback here is that I doubt that it could be free. There are other issues, the main one is client graph construction (I don't know how to force MC to create the necessary graph).
Right now I'm just messing around; but I am curious what the different perspectives are out there on how useful something like this would be.