Thursday, April 16, 2009

My HTPC experience part 2: the software

Part one of the series dealt with the hardware and the construction of the home theater PC. Part two, as the title indicates, covers the software. In my opinion the software is the far more interesting and controversial part of an HTPC. One can relentlessly debate the merits of various software and approaches.

Criteria

For my HTPC, I had a few criteria as follows:

1. Integrated EPG or guide. Anyone with a DVR is familiar with this feature.
2. Favorites or season passes. Tell the computer to record a show and it does!
3. Support for many video inputs: ATSC, QAM, NTSC, and firewire at a minimum
4. Network streaming from the HTPC to “client” computers. The interface on the client 5. computer should be identical or nearly identical to the host or server machine.
5. Support for the Windows Media Center remote control
6. Support for extenders

Hassle Free

What an oxymoron. Hassle free and HTPC go together like oil and water. While not a requirement discretely listed above, I wanted something that was easy to configure and low maintenance. At the same time, I wanted something that was tweakable and could be customized should I get bored with the vanilla or default setup.

The Candidates

I looked at the candidates – BeyondTV (formerly SnapStream), Media Center, and even some free Linux-based options. I immediately dismissed the Linux based options because of their lack of hardware support and the perceived amount of time necessary to configure the software. After scouring forums and gathering information, I decided to give a relatively obscure application known as SageTV a shot. As a bonus, it had a free 15-day trial. Installation was easy and configuration almost as easy.

SageTV

A sensible wizard guides you through the process. I had the software fully configured, including channels lineups, in less than 30 minutes. It even asked if I wanted to emulate the Media Center remote – sweet! Once SageTV was successfully running on the server, I endeavored to employ use of its robust video streaming capability. SageTV had two options for client computers, PlaceShifter and SageTV Client. The web site was very murky about the difference, so I tried PlaceShifter first. It did not work well on my older laptop which lacked the horsepower to play back high definition streamed video. Undeterred I tried the client. It didn’t fare much better. After considerable tweaking of video codecs, I did get the client working. Amazingly, it functioned identically to the SageTV software on the HTPC but over the network. After additional research I discovered some key differences between PlaceShifter and the SageTV Client. PlaceShifter uses a different licensing scheme whereby licenses are obtained only when a PlaceShifter computer connects to the server. A SageTV Client license, however, functions like most software licenses, meaning it’s good only on one machine. A second key difference is PlaceShifter’s nifty ability to transcode video on the fly to meet throughput constrains. Thus, if one is in a hotel, one can connect back to home and watch recorded television, confident that the video is being dynamically transcoded to fit within the throughput available. SageTV Client, however, has no such transcoding abilities. In yet another contrast, the SageTV Client is more tweakable with codecs, rendering, and performance. I settled on the SageTV Client as PlaceShifter did not provide adequate playback in what was the typical case for me, LAN (wireless) usage. SageTV also has a reasonably priced extender available ($200) which one can use to hook up a television of other display device to get full SageTV capabilities.

I found the software that fit the bill and I was willing to pay for it… and I did!!!

QAM setup

Once my computer was stable (see part one), I set my mind to getting QAM tuning working. Wow, this was the one part of the software that fell drastically short. The QAM channels were detected via a scan with no problem. However, once detected, they had no guide data. It was up to the user to navigate cryptic and technical menus to map the QAM channels so that guide (EPG) data could be utilized. Tragically, I was forced to make a spreadsheet mapping logical channels to physical stations and station call letters! This was very painful, error prone, and I had to repeat the process a number of times before all was correct. This definitely violated the constraint that the software needed to be easier to configure. Furthering the frustration, I could think of countless ways the software could have done this with little to no effort on my part.

SageMC & commercial skipping

After some time, I had a stable and useful setup. Naturally, I was not satisfied and began to tinker. I discovered a skin or theme called SageMC which greatly enhanced the user interface. I also discovered that with a small application commercial skipping was possible. I setup SageMC in a flash. The commercial skipping was more involved and required some research before I settled on a program called comskip and an accompanying program called comskip monitor. Comskip monitor watches a directory or set of directories for specified file types. When it sees a new file has been created, it begins analyzing the file for commercials. While I did only a little research into the algorithms necessary for such a feat, I was amazed at the complexity of something which, on the surface, seems so simple. Turns out it’s incredibly difficult to reliably detect commercials. I downloaded comskip monitor and ran setup.bat. A web page came up with a wizard. The first page had me configure the directory to monitor. The second page had me setup the file extensions – it was preconfigured with my extension already! I stuck with the preconfigured defaults on the rest of the pages and selected finish. Unbeknownst to me, a service was created which monitors the folder(s) and launches the compskip executable whenever a new video file is created. The output of the commercial skipping executable is a small EDCL file which contains the alleged time stamp of the commercials within the video file. SageMC reads this file and shows the gaps in the time bar! It even does one better, it automatically skips, during playback, the sections designated as commercials! After some testing, it is surprisingly reliable and quite good at detecting commercials. To boot, it can analyze the file as it’s recorded and doesn’t use more than half the CPU in doing so, leaving plenty of processor cycles for the other duties of the HTPC.

1 comment:

  1. I finally hooked an old computer up to the TV. Mostly using iTunes shared from another computer and Hulu.

    ReplyDelete