What is the best backend software to use for a Free-To-Air satellite TV system?

If you use a program like Kodi to watch live or recorded television, you’re probably already familiar with the backend/fronted model. To put is simply, the backend is a server that communicates with the tuners, such as a tuner card or USB-connected tuner, or even a network tuner such as a HDHomeRun. The backend system can sit anywhere on the local network and communicates with one or many frontends. The backend handles streaming live programming, or recording it for viewing at a later time. In contrast, the frontend is run on a computer that often connects to a television set via a HDMI cable. It displays live or recorded programming, and usually gives the user a way to schedule programs for recording and perform some other administrative tasks. Some tasks can be performed from either the backend or frontend, some from the backend only, and some from the frontend only. But generally speaking, the frontend is what the user most commonly interacts with after the initial configuration is finished.

But remember, it is the backend that performs the crucial task of communicating with the tuners, which includes sending any control commands that might be necessary. So, for example, if you have any switches (DiSEqC or 22kHz tone) between the tuner and your LNB’s, the backend will control them. If you have a USALS or DiSEqC controlled motor, the backend will need to deal with that as well.

Unfortunately not all backends are equal when it comes to dealing with Free-To-Air satellite. For one thing, Free-To-Air in North America differs from the variety used in Europe and some other parts of the world. For a decent explanation of the differences, there is a Wikipedia article on Free-To-Air – just skip to the section on North America and read that entire section.

Most of the configuration information that you find online for backend software is intended for European users and other users outside of North America. So setting up a backend system on this side of the Atlantic can be a bit tricky, even if you do pick good software for the purpose.

Note that it is usually possible to run a backend and a frontend on the same computer – you don’t need two computers for the purpose, and if the backend computer has a HDMI output and is in a location close enough to your TV that you can connect a HDMI cable between the two, there’s generally no reason not to run a frontend program on the same system as the backend. Some software installers set up a backend and frontend by default.

In my time attempting to set up a working backend, I have gone through three pieces of software – MythTV (Mythbuntu), MediaPortal, and TVHeadEnd. MediaPortal runs under Windows and the other two under Linux. If you really want to avoid Linux for some reason, then MediaPortal is an okay choice, but it has several limitations that particularly affect North American users.

The biggest problem with MediaPortal is that it has a very different way of controlling DiSEqC and 22kHz tone switches, and in my experience, it doesn’t do either very well (especially DiSEqC switches). As long as I connected an LNB directly to a tuner, MediaPortal for the most part worked great. But if you have more LNBs than tuners and you want to use them all, and you have to try to use a DiSEqC or tone switch, then you might find that everything falls apart.

Under MediaPortal, with TBS tuner cards you need to install some non-official drivers if you want DiSEqC switching to work at all. And the way they enable control of 22kHz tone switches assumes that anything connected to the “tone off” side is a C-band LNB, and anything connected to the “tone on” side is a Ku-band LNB. There are weird and wonderful ways to work around this but the point is that you can’t just say that when you want to select a particular LNB, the tone needs to be on or off, as the case may be.

I also found that even if I avoided using 22kHz switches, I could not tune Ku-band frequencies except by lying to the program and assigning them equivalent C-band frequencies. I suspect this was partly caused by the non-official drivers, so the end result was that I could have either used DiSEqC switching or tone switching, but not both.

And getting it to scan in channels in the first place had been a real problem. I quote from the Wikipedia article I mentioned above:

Because many of these broadcasts are essentially point-to-point transmissions, the originators often do not follow any international standards when setting various identification fields in the data stream. This causes issues with receivers and software designed for use in other parts of the world, as they may assume that if a channel contains the same ID information as another channel, those are duplicate channels. This may be a valid assumption in other parts of the world, but is almost never valid for North American FTA signals. When such an assumption is made, during a “blind scan” the receiver or software will often fail to correctly insert one or more channels into its database, or it may overwrite previously scanned valid channels (including other channels on the same satellite) with invalid information picked up from another, more recently scanned channel. If the end user does not understand what is happening, they may assume that the receiver cannot receive certain channels or that it is defective, yet if the correct data for those channels can be manually entered, those channels may become receivable. This problem can be mitigated if receivers can be set to ignore channels that appear to be duplicates during a “blind scan”, except when such channels are on exactly the same satellite and same transponder frequency (as might occur if the user rescans a previously-scanned satellite).

MediaPortal is a VERY Euro-centric program, and it has the exact issue mentioned above. So it might scan one transponder correctly, but then overwrite the channels it scanned with other channels from a completely different satellite and/or frequency. So, you wind up having to enter a LOT of channels manually. I’m not saying that no other software has this issue, because there are a few other programs that behave the same way, but it was definitely a huge issue in MediaPortal.

So, every program has its weird quirks, but MediaPortal seemed to have more than its share of them. In the end, there were two things that really put me off about it. One was that it ran under Windows – for several reasons I need not go into here, I much prefer running Linux on a server, even though I am not a Linux expert by any stretch of the imagination. And, that I could never count on it to record reliably – for reasons I was never able to determine, it would sometimes fail to record a scheduled recording, or only record a short bit of a program and then just quit. Of course when that happens, the first thought everyone has is that it’s a hardware problem, but that same hardware worked just fine with TVHeadEnd.

On the plus side, I will say that the MediaPortal forums were among the most helpful I have ever seen. If you don’t plan on using DiSEqC or tone switching, or mind using workarounds, and you don’t have the issue of it stopping recordings in mid-program (which no one had a good answer for), then it appears that you can get an answer to almost any question you might have. It might not be an answer you particularly like, but at least it may provide some sort of a workaround to get you going again. I don’t want to oversell them, but there is a night and day difference in the attitude toward less experienced users in the MediaPortal forum vs. just about any forum for a piece of Linux-based software I’ve ever encountered. If you hate dealing with “Linux snobs” and people whose idea of “help” is telling you to read man pages and/or use Google, then stick with MediaPortal, because perhaps in time they will work out some of these issues and come up with some software that doesn’t cause so many problems for us North Americans.

Prior to trying MediaPortal I had tried Mythbuntu, which is a Linux distribution that includes MythTV, and saves you the trouble of installing the MythTV packages and supporting software. You just install Mythbuntu on your backend and you are supposedly good to go, with both the backend and frontend available. I actually have some experience with Mythbuntu, having used it with a HDHomeRun in the past to receive over-the-air television. So I thought setting up a new Mythbuntu installation would be a piece of cake. Boy, was I wrong.

One of the HUGE design flaws of Mythbuntu is that it appears that the backend and frontend versions must always match. That is, you can’t run version 0.25 on the backend and 0.27 on the frontend and expect it to work. Either the two will outright refuse to talk to each other, or only parts of the program will work. This is a problem because people rarely upgrade all their computers and devices at once. And if your distribution’s repository only offers a particular version of the frontend that doesn’t match what you are running on the backend, you might be kind of screwed, at least until you can figure out how to match up the versions again.

So I had to drop back a couple versions of Mythbuntu to match what my frontends were running, and I’m not sure if that caused me problems or not, but the end result was that I could never get Mythbuntu to actually work. When it did a scan it would appear to find some (but not all) the satellite signals that were up there, but there was no way it would play any of them. You could click all day and just nothing. That, coupled with some information I read in various forum threads as I was trying to figure out the crux of the problem, led me to think I was pursuing a fool’s errand. The impression I got was that MythTV USED to work for receiving satellite programming at some time in the past, but something is broken now so that in recent versions it doesn’t work anymore. Another issue was that even when people had been able to get it to work, it would not receive certain high-bitrate signals such as 4:2:2 format signals.

I am only willing to beat my head against a brick wall for just so long, so that’s why I moved on to MediaPortal. I’m not saying that no one could ever get MythTV to work in this application, but it appeared that other people who seemed much more familiar with Linux than I had tried and failed. I got the distinct impression that no one in North America has been able to use a recent version of Mythbuntu for this purpose with satisfactory results, or at least not anyone who was willing to speak up in the various forums.

The real winner of the three is TVHeadEnd. Now, TVHeadEnd is a bit different than the other two in that as the name implies, it is backend software only – there is no specific TVHeadEnd frontend. I believe that most TVHeadEnd users use Kodi as their frontend software, although there are undoubtedly other choices.

I covered some aspects of TVHeadEnd configuration in my Review of the TBS MOI+ DVB S/S2 Satellite TV Linux Server (see the section on Configuring TVHeadEnd) but I just want to emphasize one point – many of the options in TVHeadEnd are not exposed until they are needed. So if you just install the software and start looking for things such as “Where do I tell it what type of LNB I have?” or “How do I specify that I am using a DiSEqC switch and/or 22kHz tone switch?”, you won’t see those options until you have set other options that expose those settings. The aforementioned review shows examples of this.

Because of that, some users think that TVHeadEnd doesn’t support DVB-S/S2 satellite tuners very well, when the truth is that it does a much better job of it than either Mythbuntu or MediaPortal. I’ve never seen TVHeadEnd fail to record a scheduled program unless there was some obvious reason, such as no available tuner due to a scheduling conflict, or a problem with an LNB or DiSEqC switch. or the program starting in the afternoon right in the middle of a solar outage period.

Where TVHeadEnd does fall down a bit is in scanning satellites and transponders. What you are probably going to find is that you will need to add a few of your desired transponders manually, and maybe even the occasional channel or two. Once you have used TVHeadEnd a few times, this all becomes fairly intuitive, but it can really confuse new users. On the plus side, it appears that TVHeadEnd is still under active development, so some of the things that were confusing in earlier versions are less so in more recent ones, and sometimes new functionality is added. For example, in my review mentioned above, I wrote:

I should mention that TVHeadEnd does have one glaring deficiency – if you don’t have schedule data available for a particular channel, then to the best of my knowledge you cannot set up a recurring recording on that channel. You can tell it to record once at a specific time on a specific channel, but without schedule data there is no way to specify that you want to record that same channel at the same time every day or every week.

And while that was true for the version of TVHeadEnd included with the TBS MOI+ that I received for review, it’s something that has been addressed in newer versions of TVHeadEnd.

Now you can specify the duration of recordings and day(s) of the week to record.

Now you can specify the duration of recordings and day(s) of the week to record.

(Note that for most channels you should be able to obtain free schedule data. Don’t subscribe to a pay service for schedule data, just follow these hints to set up your program guide in TVHeadEnd).

I am not saying that any of these programs are perfect, but once you get past the initial hurdle of getting your mind wrapped around how TVHeadEnd operates, it all clicks into place. And of the three, TVHeadEnd has so far proven to be the most trouble free and the most reliable of the bunch.

One downside of using any Linux-based backend is that you may need to install drivers, either to get your tuner to work at all, or to get it to work at peak efficiency. And if you are used to installing drivers in Windows, where it’s more or less a point-and-click type of operation, you may find that the procedure for doing it under Linux is a bit off-putting. For certain tuner brands, it is not very difficult if you can follow instructions (for example, this page explains how to do a TBS driver install under Ubuntu 11.10, 12.04, 12.10 and 13.04 (TBS6921 and other)). But not everyone finds it easy; sometimes there are entire forum threads about driver installation. If you’ve never touched Linux before in your life, then you may want to seek help from an experienced Linux user. Make sure you watch how it’s done and take notes, because you will likely need to do it again if you ever upgrade the Linux kernel on your system (and Ubuntu loves to push kernel updates every so often, so don’t just blindly accept a software update 10 minutes before you have something scheduled to record!). This bash script can help simplify the task of rebuilding the TBS drivers after a kernel update.

Also, you need to be aware of the limitations of various tuners. Some older DVB-S tuners cannot receive DVB-S2 signals, and some DVB-S2 cards cannot receive 16APSK signals (if you really want to receive one of the handful of 16APSK signals on North American satellites, and you are considering the purchase of a TBS tuner card, it is strongly recommended that you purchase one of the “professional” grade models). Some tuner brands do not support their tuners with updated drivers, meaning that people may recommend you use some unofficial driver from a questionable source. Or, if you want to use more than one tuner card from the same manufacturer or of the same model in the same backend system, you may find that’s impossible because the driver programmers apparently never anticipated that someone might like their tuners enough to want to buy a second one (I guess that lets you know what they think of their product). The may be certain tuner models that will not work at all under Linux (you can find lists of DVB-S2 tuners known to work in Linux by following the links on this page, but just because a particular tuner isn’t mentioned does not necessarily mean it won’t work – it may just be that no one ever bothered to add it to the page). Problems caused by tuners or by tuner drivers will likely affect any backend software you might choose to use.

With TBS tuner cards in particular, you need to be careful that they are not sharing interrupts (IRQs) with other hardware devices in your system. Also, if you have a newer model TBS card and find that it will not scan muxes to find channels, try this. If you find that many of your recordings have bad timing information, and it’s not due to a weak signal, it is sometimes possible to fix that by changing a setting in TVHeadEnd.

If you start asking around about which tuner you should purchase, please keep in mind that the “Linux snobs” (the type that will only point you to man pages and Google when you need help) may prefer a particular piece of hardware, but only because they’ve had enough Linux experience to work around any issues they encounter. Just because they could get a particular tuner to sing and dance doesn’t mean that you can, unless you have a similar level of Linux experience. If you ask in a Linux forum which tuner is best, and make a purchasing decision based on the responses you receive, and you are relatively inexperienced with Linux (or you are simply not a Linux devotee), there is a real good chance that you that you will not be happy with your purchase. One tip, no matter how much they may be recommended by a particular user or group of users, avoid older PCI cards – any tuner cards you purchase now should be PCIe (note the “e”) cards.

Unfortunately, not all PCIe tuner cards are compatible with all motherboards. I’ve had good luck with a MSI motherboard (specifically the model B85M-G43, although I’m sure many other models will work equally well), but when I had tried using the same tuner card in a particular Gigabyte motherboard it would not work. A real Linux expert perhaps could have figured out the reason why, but since I’m not a Linux expert it was a lot easier to just try a different motherboard. Had I known about this thread in the TBS forum, I might have tried the suggestion there to see if I could get it to work.

There are also USB-connected external tuners, and while some users have had no problems using these, several others have reported problems with overheating leading to premature failure. Also, with certain USB-connected tuners there is an extra step of installing firmware, in addition to the drivers, at least when using Linux as the operating system. I’ve never used a USB-connected tuner, but if you decide to try one, I’d at least keep it in a well-ventilated place.

Now, I don’t mean to say that the backend choices I have mentioned above are your only three options. There are, in fact, other programs that that can act as a backend program, but I just haven’t tried them. The TBS MOI+ that I reviewed offered a choice of TVHeadEnd or VDR. I did look at VDR once, for all of about half an hour, but could not figure out how to do anything in it and just generally didn’t care for it much. Perhaps if I’d had clear instructions on how to proceed, I might have liked it more, but I got the feeling that it’s a program that very few people in North America use. Which doesn’t necessarily make it good or bad, it just means that when you have problems, there are going to be a lot fewer people around that might be able to help you. If you prefer running Windows rather than Linux, but don’t care for MediaPortal, NextPVR is another somewhat popular choice, but I have no personal experience with it so I cannot offer any opinion on it.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.