Watch all your home entertainment (including live and recorded TV!) using a computer as a set top box.


During 2009, I became quite interested in the concept of the “home theater computer.” I was motivated by our growing collection of multimedia on our home server – movies, music, and home video – the growing availability of online entertainment services – Netflix, Hulu, and other services. I wanted to combine these computer delivered entertainment sources with traditional television services – we used Dish network. In other words, I wanted a totally IP based distributed entertainment platform.

setup

The existing multimedia distribution over the network wasn’t difficult. There were many pieces of hardware – from Media Center Extenders, to Roku, to the PlayStation 3 – and many pieces of software – XBMC, Windows Media Center, and more – that took care of distribution and playback. The challenge was a network television distribution platform. I’d first have to start receiving TV on my computer. After researching for a while, I realized that it wasn’t very feasible to get the Dish signal onto my computer. The only solutions for it were ‘hacks’ – with external IR blasters to change the channel. I could however receive HDTV OTA broadcasts (ATSC/QAM) signals, so I purchased a dual HDTV tuner card. Connecting this tuner to a basic RadioShack antenna allowed me to receive local channels in excellent HD quality.

I then installed the MythTV package on my server. It would not recognize my TV tuner card, despite the same hardware working very well in Windows Media Center. I don’t remember exactly what tweaks I made to MythTV configuration files and to Ubuntu/Linux driver configs, but eventually, it picked up the card. I was able to watch live TV on my server, which had both the frontend and backend packages installed. I also mounted network drives on my media server, so it was able to see and share these media files. I was also able to record live TV and play it back. I didn’t configure the Windows Media Center remote I had, however, as that required significant command line configuration of LIRC.

I then installed the MythTV frontend package on another computer. Some how, despite extensive fiddling around, I could not get it to connect to the back end. I believe it was because I actually installed the whole package and tried to change the settings on the frontend to connect to the server’s backend. Instead, it constantly connected to the local computer’s database. At the time, I had relatively limited knowledge of linux and I did not understand well the software architecture of MythTV. I tried installing MythTV on Windows, but the implementation is even less mature on that platform. After a dozen hours a day for a week trying to get it to work, I gave up trying to complete the project.

The concept continued to linger on my mind. Because of my lack of experience with Linux, and my lack of programming knowledge at the time, I wasn’t able to complete the configuration. But the architecture and it’s implementation seemed totally viable, and filled with advantages. I envisioned a home where every TV had a computer built into it, running MythTV like software. The consumer would purchase a ‘home media hub’ box – basically a server with many TV tuner cards and a large pool of storage – and wire their TV to the network. Then they could start watching TV right away, without worrying about setting up additional hardware like a cable box. The TV could cut out the tuners, which often go unused. And the overall experience would be much better, and media source agnostic. In the nearer term, I envisioned placing a small computer, much like Intel’s NUC platform, next to each TV as a media source.

pc

Although I abandoned the system, I continued to look for alternatives. DVR systems became better, allowing remote playing of their content onto other devices via the Dish Slingbox app. Online media became even better with the advent of Hulu Plus and other services. AppleTV’s AirPlay allowed wirelesss mirroring of your Mac and iPad display to your TV. Chromecast promised a similar feature set, except more broadly compatible.

More unexpectedly for me has been Dish’s Hopper/Joey system. This system has a “Hopper,” which functions as the server, with 3 tuners and a large HDD. This unit has HDMI out to connect to a TV directly. Then there are the “Joeys” which are basically thin clients with HDMI out and no tuners. They connect to the Hopper and use one tuner’s steam to deliver content. There can be multiple Hoppers to add more tuners to the network. The system is completely IP based. You can connect it via Ethernet, as we have done, or it can create it’s own network with MoCA – IP over coaxial. We discovered this rather by accident when I saw that the coaxial cable was not even plugged into the Joey, and we then understood the system is entirely IP based.

Even more exciting is that Dish has promised a PS3 and PS4 “Virtual Joey” app so you don’t even need their hardware any more! They are also integrating the app into many Smart TVs. They also offer Dish on Demand on mobile devices – a slightly different service. I’m quite surprise Dish is actually being so innovative – I thought that they’d be the ones holding onto the old model of leasing expensive proprietary hardware. I think the next big innovation is going to be a common OS or software platform for these apps to be developed. Right now, every TV manufacturer and media box manufacturer, like Roku, has their own architecture and hardware constraints to obey, making software development difficult. A common software platform would likely solve this. Perhaps if a major manufacturer adopted Android on TVs? They’d have to make the hardware upgradable somehow.