Networked DVR

tvheadend

For the last two years or so, I have been playing around with different OTA (Over-the-Air) DVR solutions.

A Long Time Ago…

A long time ago, we cut off Dish Network and returned their DVR after it kept breaking. In lieu of that, we got a rooftop antenna and I built my own DVR using a SiliconDust HD Homerun and Windows Media Center. That setup actually ran for quite a few years.

Post Windows Media Center

Somewhere along the line, Windows Media Center got axed by Microsoft and my DVR machine started to break down. I switched over to using different OTT services like Hulu, Sling TV and Playstation Vue. The services ranged from mediocre to excellent – and they had different limitations and different costs to go with them. Sling TV was the cheapest, but didn’t have a DVR when I was trying it out. Playstation Vue had a DVR but was very pricey.

Tablo

Tablo

In late 2016, I picked up a Tablo to try out as a networked DVR solution. I liked Tablo for the most part but it has some issues. The biggest being that it is unstable – even after a year of updates, the thing is unstable. The thing reboots randomly when the OTA signal wavers. The thing reboots when touched (I am not joking, I moved it an inch or two over to put something else on the shelf and it rebooted). I have to stand the thing up on its side because it generates so much heat and the case is not ventilated. The interface for the Tablo is decent and it has some nice touches like the “Premiere” listing. The way I was using the Tablo was to have it record, then I used a script to pull the recordings off the Tablo for consumption into Plex – why? Because watching stuff using the Tablo sometimes caused it to, yes, reboot.

Plex

I gave Plex DVR a good try. And for a while it was actually working really good. But, as the beta continued (and has now entered into GA), the DVR portion of Plex continued to get worse and worse. TV shows would randomly stop recording, or silently not record. I had to deal with limitations of Plex clients not able to de-interlace video, even though other software on clients could.

I really do like Plex in general, it is a great way to manage my media and I continue to use it for my music collection and for the longest time I was using it for viewing my DVR recordings from the Tablo.

The work flow was this:

  1. Schedule recording on Tablo.
  2. Schedule cronjob to run surlatablo every hour to pull recordings from the Tablo to the Plex server.
  3. Watch shows on any Plex client.

There are a few drawbacks to this setup.

  1. The pull process took between 10-15 minutes, so if I really wanted to watch an episode after it recorded, I couldn’t.
  2. The Tablo downsamples all Dolby Digital 5.1 audio to stereo, this hurts for a guy who has a full home theater setup.
  3. The Tablo applies extra compression to the video content, bringing 15-18Mbps video down to around 10Mbps.
  4. surlatablo worked for the most part, but randomly would get wedged and partially pull recordings from the Tablo.
  5. The MP4 or ts file that comes from the Tablo would lose audio sync if the OTA signal degraded.

Even with these drawbacks, I had this flow working for a long time and it did what I needed to.

Post Plex and Tablo

Home TV

I had been looking at how I could repurpose the two SiliconDust HD Homeruns I had (the original from seven years ago and the Extend from late 2016). I found tvheadend and was messing around with it on a Raspberry pi for a long while. I got it up and running, but I had issues getting channels and the EPG working correctly. The other thing I couldn’t figure out was getting the recordings to be named in the Plex naming convention for indexing in Plex or Infuse naming convention for use with Infuse on my Apple TV.

For one weekend, I sat down and figured it all out, I will write up how to do it in a separate post. But, it did take some figuring out and is definitely not a turn-key solution like the Tablo. But, so far, it has been stable and has been working without issue.

The workflow here looks like:

  1. tvheadend runs on its own server where I schedule recordings via the web interface or the tvhClient on the Apple TV or my iOS devices.
  2. tvheadend records to an attached harddrive.
  3. The recordings are shared via SMB.
  4. I watch the recordings via Infuse Pro 5 on my Apple TV, iPhone or iPad Air (I can even download the recordings to my iPhone and iPad Air for offline viewing).

Home TV 2

The biggest benefit is the ability to record the raw MPEG-2 data from the antenna, complete with Dolby Digital 5.1 audio. Infuse 5 de-interlaces video fine, though I found that the pilot of Star Trek: Discovery had some jerky playback during some pans – though the video played fine in MrMC. There is no comparison between the 15-18Mbps video and the 10Mbps video coming off the Tablo.

Six Months Later

I have been running the tvheadend setup for six months now. I replaced the two old HD Homeruns with a single four-tuner HD Homerun Quatro about two months into the switch and it has been running smooth since. The Quatro, with its new tuners has been performing well with tvheadend and bringing in the signal from the TV towers some 40-miles away.

tvheadend has turned out to be a stable set-and-forget solution for a whole-home networked DVR. There are some minor drawbacks to the setup:

  • While the raw MPEG-2 recordings are awesome in quality, they take up a lot of storage compared to the MPEG-4 transcoded recordings that the Tablo produced.
  • There’s not a tight integration between the front-end (Infuse or MrMC) and the backend (tvheadend). The tvhClient is nice, but it is not as feature rich as Infuse.
  • Because there is no integration between front-end and back-end useful things like preview frames for scrubbing through a recording aren’t available.
  • Also, Infuse needs to scan the SMB share when it starts to pick up new recordings and then go through a process of pulling down metadata information. This takes time before a video shows up in the library for viewing.
  • Setting up tvheadend can be quite a task.

But, given all these drawbacks, having a stable reliable networked DVR is priceless. And, tvheadend is open source, so it is free to use. There are ways to get EPG data free (scrapping), but I pay the minimal fee for Schedules Direct ($25/year currently).