in

andy vt's tools & blog

Automating lazy

This Blog

Syndication

andy vt's blog

Media Center needs a Media Broker

I have two media centers; a main one in the living room, and another one in the basement that I mostly use for development but occasionally I'll watch a show or a movie down there if the other one is in use.  Both have a single tuner, but I can't really take advantage of this to resolve recording conflicts because it's such a pain to manage each one individually.  When a conflict occurs, and I care, I have to go (either physically or through an RDP session) to the other PC and schedule the recording.  I started thinking about figuring out a way to automate a resolution, and it hit me what Media Center really needs is a centralized broker to manage EPG and recording requests, and could also act as a broker for other media as well (you can fake this somewhat today by "watching" network shares in WMP, but as far as I know you can't do this with pictures).

I drew this picture in paint (I know it's ugly, but bear with me) to explain what I mean .  The red arrows represent the initial requests for media, all of these requests go through the broker who looks up the item and serves back a response which would include things like the descriptive metadata and a url (or something like a url) where the media is located so the client could consume the content directly by connecting to the source.  In this model the Broker would function as a middle man who facilitates the consumption of media.  I've drawn the Broker as a separate box, but that separation is only logical; there's no reason that the Broker software and database couldn't reside on the same hardware as one of the PC's.

Hopefully I've explained the concept, but let me give a tangible example:

A user requests that a show is recorded - all of the EPG data for all the tuners would reside (and it should be able to resolve multiple EPG, if for example you have one STB TV Tuner and one basic cable tuner) on the broker, it would consult the database to determine which tuner had availability for the time slot and send a message back to the requesting machine with all the information it needed to contact the PC that would record the show (some level of transactional support would have to be built in here).  The same process would be followed for Live TV requests as they are essentially the same thing.  The Broker could even have some intelligence built in to move recording requests from one PC to another if a request for a channel that was only available on the STB tuner was made, during a time slot already assigned to that PC.

This would be a great Ultimate Extra.

Published Feb 15 2007, 08:24 PM by babgvant
Filed under:

Comments

 

randyharris said:

I was really hoping that Vista was going to offer this feature. I've never owned a Tivo (still have my ReplayTV) but I'm pretty sure that a mult-Tivo household has this functions built in today.

Inexcusable that it isn't a function of VistaMCE in my opinion. It just tells me that the extender model is what MSFT wants us to use. And that's not a bad way to go with the upcoming Pica v2 extenders. So I won't get too worked up about it. I'll just plan on getting a very powerful VistaMCE "Server" that can handle say three simultaneous recordings, doling out 2 recordings and say music. Shouldn't be too bad really.

What really interests me right now is seeing the Dish Networks and DirecTV integrated offerings for MCE. Given that the likelyhook of DTbox working with CableCard, I'm putting my faith in a satellite solution now.

Randy at www.MacSeven.com

February 15, 2007 10:42 PM
 

babgvant said:

I don't think anyone has a model like this, MS has the best client/server experience that I've seen from any other vendor.  The problem is that if you want have multiple machines sharing a pool of content you have to use their "mainframe" model where all of the work is done in one location and the thin clients (extenders) just consume from the centralized location.

Using a distributed model where clients participate up to their capabilities, provides for a much more flexible (and scalable) solution.  With the rest of the computing world going to a distributed/p2p model (bit torrent for e.g.); I hope that MS does the same.

With the exception of full fidelity Live TV, it wouldn't be that difficult to build an application that did this, the problem is that it would replace WMC.

February 16, 2007 7:11 AM
 

ddman said:

I don't know if I'm oversimplifying the problem, but is there a way to have a conflict on PC1 trigger a request to PC2 to schedule the show that won't be recorded?  If PC2 has no conflict, it will record.  

Obviously it would be ideal to either have one PC doing all the work or having multiple PCs doing the work with the "broker" doing all of the organizing and delegating. However, similar to the way that YAC can communicate from PC1 to PC2 and trigger a message box, can you remotely trigger a recording request (like RemoteRecord)?

Or, and I realize this is coming close to replacing WMC like you said, but creating a web-interface, or external schedule program that reads the guide from WMC but would read scheduled recordings from both PC1 and PC2.

For now, I have one PC doing all the work, but it would be nice to be able to add another and have some sort of integration.  Very interesting concept.

February 16, 2007 8:17 AM
 

babgvant said:

The short answer is, I don't see why not...

The hardest thing (I don't know how to do this yet) will be detecting conflicts programmatically.  Once you have a conflict creating the click-to-record xml document and sending it to all of the machines in your environment until one gives a positive response wouldn't be complex at all.  Building in reschedule logic if the priority show can be recorded on a different box (it's on a local or basic cable channel) and the conflict can on the PC with a STB, would be more complex.  I need to do more research into the transactional capabilities of click-to-record.

February 16, 2007 8:56 AM
 

babgvant said:

Right now I'm just thinking [out loud] about how I want to approach this problem, but I do plan to try to address it when I get some time.

February 16, 2007 9:05 AM
 

JeepsterJ said:

Random thought: When I see these things, I'm constantly amazed out how far ahead ReplayTV was in its day.  Commercial Skipping, remote recording and conflict resolution/brokering was built-in. Of course the implementation was not as sophisticated as what has been created with ShowAnalyzer/Dtb or are describing here.  But then again, this was done with 64mb. :)

I think you're onto a great idea.  Are you planning on pitching this idea to someone on the MCE team at MSFT, or perhaps building it yourself?

February 16, 2007 9:59 AM
 

babgvant said:

I'm going to try to build the recording conflict brokering when I get some time.  

The bigger picture stuff would be a waste of time for anyone other than MS to build, unless they release the source for softsled.

February 16, 2007 10:54 AM
 

onlydarksets said:

MythTV does this, although it's a slightly different approach.  There are a number of different roles each PC can play, including Master Backend (tuner, and PC controls it and tuners on other PCs), "Slave" Backend (tuner, but PC doesn't control what is recorded), and Frontend (this is what makes the requests).  So, the frontend and backend are separate, and the backend can be centralized or distributed.

February 16, 2007 4:42 PM
 

jelwood said:

If the broker is built, then you could "share recorded TV" to get really close to your origional vision.  The 360 would still only connect to one machine, however, you would at least see all your recorded shows on every machine.

The only real "problems" left would be live TV, you would still be sharing one tuner with the 360 and one machine, while the other machine has a tuner to itself.  The other problem is the shows that are still recoding on the "non-360" machine wouldn't show up in the list until they have finished recording (I haven't tried this with Vista, but with MCE2005 that's how it worked).

February 16, 2007 4:44 PM
 

babgvant said:

Everything but Live TV can be built today, but it's kludgey because each PC needs to maintain it's own index of the content.  

February 16, 2007 6:31 PM
 

babgvant said:

February 27, 2007 10:21 AM
@2008 andy vt
Powered by Community Server (Non-Commercial Edition), by Telligent Systems