Hardware transcoding with QNAP models TVS-x73 and TVS-x63

Putting driver libraries into a QNAP is a lot harder than regular Linux. QTS (Qnap’s linux platform) is stricter than dealing with Fedora or Ubuntu.

If you’ve mastered doing it on Fedora / Ubuntu, then you can attempt QNAP. All the binaries must be custom built (cross compiled)

I am not a programmer so I have no idea what that means. Sounds fun though! Just an idea.

A few users want to use their Ceton tuners so I thought it might be a viable option.

If you want the support, you’re better served by asking the Ceton support staff. It’s their product and their source code. They should be able to port to QNAP

Yeah… Ceton support “staff.” They went belly up in early 2015 as far as everyone knows. Although, they do (I think) still support ATX Networks UCrypt QAM to IP units which have up to 10 of the 6 tuner PCIe cards in them. “Different firmware” is what Ceton told me back in 2014. They didn’t elaborate on the differences.

Ceton posted the Linux drivers (card and tuning resolver) for the folks who want to tinker with them in the Linux environment. But no support is provided.

Then you’re completely on your own.

Time to download and learn the QNAP SDK ! :slight_smile:

@ChuckPA said:
Then you’re completely on your own.

Time to download and learn the QNAP SDK ! :slight_smile:

Lol! Thanks Chuck! Hey… If I can somehow grasp the basics of the Linux kernel, I would do it in a heartbeat to help my fellow Plexers! I’m thinking though that we have a few in the community that do understand this stuff and could probably take an in-depth look at it to see if it’s possible.

@kd6icz said:
Yeah… Ceton support “staff.” They went belly up in early 2015 as far as everyone knows. Although, they do (I think) still support ATX Networks UCrypt QAM to IP units which have up to 10 of the 6 tuner PCIe cards in them. “Different firmware” is what Ceton told me back in 2014. They didn’t elaborate on the differences.

Ceton posted the Linux drivers (card and tuning resolver) for the folks who want to tinker with them in the Linux environment. But no support is provided.

Mmm … ok, I guess I don’t mind you hijacking this thread!

I don’t think you quite understand what your asking.

Does that card even fit in the card bay any of the QNAP devices?

It sounds like your asking Plex to add support for an “out of tree” driver that isn’t supported by the vendor. Managing an out of tree kernel module is hard enough but an unsupported and potentially obsolete one is way beyond what can reasonably be expected.

You can ask questions about how to build the kernel module for QNAP, but anyone that does know enough about that will probably not want to buy into a potentially never ending conversation about things that someone doing this should either already know or work out for themselves. Basically there’s too many moving parts, so to speak, to be drawn into that conversation and still have a life.

And don’t forget Plex has very limited tuner support, even for in kernel tree or vendor supported tuner devices, so asking for something like this to be supported is probably not going to get very far.

I haven’t even considered looking at Plex DVR for that very reason.

Those of us who do hardware ports to platforms for work don’t do it as our hobby usually. I’ve done ports for new hardware but never for legacy, defunct vendor, hardware. There is no ROI or future growth in it. I have too much to do with upcoming hardware and, as raven-au implied, there is way too much to teach and the conversation on “Linux device driver development” would be ongoing for months. It takes months to learn in a hands-on environment. Over the internet via a forum is not practical

You know…? As I’ve said before, I’m just here as a very invested user, to try and help with making Plex the best media software out there. Most of the time all I can offer is a alternate perspective.

More times than not I get a response that is, at the very least, sarcastic. Sometimes worse. It’s not going to take the wind out of my sail! I’ll still be here trying to do my part in opening up eyes to new concepts.

We have a lot of WMC users here. Many of them own Ceton cards. I own one that I haven’t used in a couple of years. So, even though it might sound like a waste of time and effort, it would actually be very beneficial!

All I was asking was if it was possible to make them work on the Linux platform with what tools are readily available today.

@kd6icz said:

@ChuckPA said:
Then you’re completely on your own.

Time to download and learn the QNAP SDK ! :slight_smile:

Lol! Thanks Chuck! Hey… If I can somehow grasp the basics of the Linux kernel, I would do it in a heartbeat to help my fellow Plexers! I’m thinking though that we have a few in the community that do understand this stuff and could probably take an in-depth look at it to see if it’s possible.

Sure but there are even more difficulties than just building the kernel module.

Is the published kernel module source GPL licensed (or a compatible licence), if not then it can’t be distributed by anyone.

Then there’s Plex DVR itself.

The kernel module only provides an interface to the tuner hardware, other user space software is usually needed to provide an interface for external users to do things.

I don’t know how it is designed myself but I’m pretty sure that Plex would need to write code to interface to the device management software sub-system to do things like, live TV playback, schedule recording, etc.

That means talking to the management sub-system of the tuner software to request these functions and the tuner management sub-system carries them out for Plex.

So, at the very least, you need either the vendor tuner management software ported and installed on the QNAP or GPLed management software you can be built and package for the QNAP.

And if you did have this only Plex themselves can write the code to interface to the vendor sub-system.

Unfortunately, I don’t think this is doable by community members even if there was someone with relevant experience, and who owned one of these devices, and the needed software was available with appropriate licensing.

Ian

@raven-au said:

@kd6icz said:

@ChuckPA said:
Then you’re completely on your own.

Time to download and learn the QNAP SDK ! :slight_smile:

Lol! Thanks Chuck! Hey… If I can somehow grasp the basics of the Linux kernel, I would do it in a heartbeat to help my fellow Plexers! I’m thinking though that we have a few in the community that do understand this stuff and could probably take an in-depth look at it to see if it’s possible.

Sure but there are even more difficulties than just building the kernel module.

Is the published kernel module source GPL licensed (or a compatible licence), if not then it can’t be distributed by anyone.

Then there’s Plex DVR itself.

The kernel module only provides an interface to the tuner hardware, other user space software is usually needed to provide an interface for external users to do things.

I don’t know how it is designed myself but I’m pretty sure that Plex would need to write code to interface to the device management software sub-system to do things like, live TV playback, schedule recording, etc.

I don’t think it’s quite this complicated. It’s just a cable TV tuner card. All it does is de modulate QAM RF signal and convert it to IP. All Plex does it tell it what channel to tune and the card tunes it providing the video via IP.

All of the live TV and DVR function is existing in PMS already.

As far as any licensing? It appears Ceton has published everything they have and said “have fun!”

You don’t quite get it yet.

Making the tuner card appear as a device , whether via /dev or via an IP so it can be controlled is the ‘trick’.
Once that is accomplished, next the control language protocol (XML ? something else?) must be known.
PMS would need be configured to support this.
PMS currently supports selected tuners via IP and some USB devices. Please see the DVR and Live TV forum for further details.

@ChuckPA said:
You don’t quite get it yet.

Making the tuner card appear as a device , whether via /dev or via an IP so it can be controlled is the ‘trick’.
Once that is accomplished, next the control language protocol (XML ? something else?) must be known.
PMS would need be configured to support this.
PMS currently supports selected tuners via IP and some USB devices. Please see the DVR and Live TV forum for further details.

I get it Chuck. I was just clarifying that the card has zero to do with Live TV or DVR function. Explaining what the actual card function is. Hardware that bridges QAM to IP x6.

I’m very aware of what the current tuner support is. I’ve been using DVR since the very first day it came out. I’m running a HDHR Prime (currently the only cable tuner supported) with a QNAP 251+ for my DVR. It works very well for the most part. Has a hiccup from time to time that requires a reboot.

However, it would be nice to increase from 3 tuners to 6 tuners without adding another Prime and CableCARD. Going to an internal card would be nice too.

Since I saw the TVS-x82 series have two PCIe expansion slots I thought I would propose the idea.

Does it do that in Windows with driver software or can it do it all by itself? (QAM -> IP-anything is, by definition, a tuner)

Since you know of the devices currently supported, does this device have the same communication protocols over IP?

If you have enough power in your x82, you can of course add it. Without the QNAP kernel & library support, I have zero idea what it will do.

This really is a discussion to take up in the QNAP forum (where all the real QNAP kernel hack guys are)

Ceton put all their stock in Windows Media Center. Everything they produced was to work with WMC. As you know, Microsoft killed WMC.

From my understanding, Ceton never wrote BDA drivers. So that’s the simple reason it can’t be used with Plex DVR in a Windows based server. The only other drivers they released was for Linux. That was why I thought I would ask you, the obvious expert in the world of Linux, what would be involved in making it work.

I see what your saying. It would be better suited for QNAP to integrate the hardware into QTS. It would be a cleaner handoff. Like I said, I think Ceton does still support this particular card because it’s used in so many hospitality installations.

I’ll see if they have any suggestions. Thanks for the feedback.

@Cornstick said:

I don’t think it’s quite this complicated. It’s just a cable TV tuner card. All it does is de modulate QAM RF signal and convert it to IP. All Plex does it tell it what channel to tune and the card tunes it providing the video via IP.

You might be right, as I said I don’t know for sure but somehow I think it isn’t as simple as that either.

What your saying assumes there is a “standard” interface but I suspect they are all different at the device level which is probably what’s presented via the device file that would become available by loading the kernel module.

But, again, I could be wrong, that happens all the time, :wink:

All of the live TV and DVR function is existing in PMS already.

You don’t know that for sure, only the Plex DVR developers know how they interface to tuners and that’s not available to community members, AFAIK.

So adding support for “any” tuner probably isn’t doable by community members.

I have a dvblogic supported tuner and a licence for the dvblogic software which is available as a QNAP qpkg (and installs the needed kernel modules at boot time).

But based on the fact that it isn’t included in the supported Plex tuners list I’m not even going to try it.
I’m pretty much certain it won’t be recognised by Plex.

As far as any licensing? It appears Ceton has published everything they have and said “have fun!”

So maybe that part isn’t a problem but that sentiment would need to be stated clearly in writing in the source distribution for it to be usable. From a business POV licensing is very important and from a personal POV no-one should be willing to risk using software that is not provided with an appropriate licence.

In any case there’s still no way to write the needed Plex interface code for it to recognize and use the card.
Like I said, I’m pretty sure this can’t be done, at least by community members alone.

@raven-au said:

The truth is I use my TVS-463 primarily for work related stuff, I have a TS-453 Pro for my Plex server and the hardware transcoding works very well indeed on it.

But, in time, the TVS-463 will be upgraded and the TS-453 Pro retired and I will be hoping to replace it with the TVS-463 for personal use.

Hopefully there will be progress on the NAS Radeon GPU hardware transcoding by the time that happens.

Btw, thanks for taking the effort to discuss this with me.

Ian

If you don’t have the Radeon card yet, I would probably recommend getting one of the Nvidia GTX series. With the upcoming 4.3.4 release, QNAP has said they will support both Nvidia & AMD for GPU passthrough for VS, but ONLY Nvidia for GPU passthrough for things like QTS, HD Station, etc. which I am assuming will also mean Plex.

It is also an OR scenario… you can have GPU passthrough to VS OR to QTS basically, but not both simultaneous. My assumption is this is due to different driver/kernel requirements. VS leverages KVM’s VFIO model, where QTS would be using the /dev/dri functionality.

@MwC_Trexx

If VS isn’t running, /dev/dri should be otherwise available shouldn’t it? Exclusivity is only when the device is ‘open’ via one of the two paths.

@MwC_Trexx said:

If you don’t have the Radeon card yet, I would probably recommend getting one of the Nvidia GTX series. With the upcoming 4.3.4 release, QNAP has said they will support both Nvidia & AMD for GPU passthrough for VS, but ONLY Nvidia for GPU passthrough for things like QTS, HD Station, etc. which I am assuming will also mean Plex.

I’m sorry I don’t understand this.
Presumably VS means Virtualization Station and your talking about graphics passthrough use for it.

Are you saying that if there are PCIe slots in the NAS you can add in a graphics card which overrides the on-board graphics?

I didn’t think you could even get graphics cards for these PCIe slots.

In any case the TVS-463 and the other models referred to in the subject have on-board Radeon graphics so there’s no issue with getting a Radeon graphics card, the device already have Radeon graphics. And I would like Plex to be able to use hardware transcoding with it as it does with the Intel based on-board graphics of a good number of other QNAP NAS models.

It is also an OR scenario… you can have GPU passthrough to VS OR to QTS basically, but not both simultaneous. My assumption is this is due to different driver/kernel requirements. VS leverages KVM’s VFIO model, where QTS would be using the /dev/dri functionality.

I hadn’t considered these limitations but they must be present for the existing Plex hardware transcoding implementation (and unavoidable) that use the Intel GPU so that probably doesn’t change the scope of what I’d like to be able to do.

Ian

@ChuckPA said:
@MwC_Trexx

If VS isn’t running, /dev/dri should be otherwise available shouldn’t it? Exclusivity is only when the device is ‘open’ via one of the two paths.

Since 4.3.4 isn’t released yes, I am purely speculating here but my believe would be the the VFIO would require exclusive HW control vs. /dev/dri control.

Qnap has already published via a youtube video that it will be one or the other (VM or QTS) but not simultaneous. They didn’t specify if a reboot would be required when changing between the 2 options.

Just to clarify as well, since I mixed some use cases in here, this is only in reference to GPU Passthrough usage (i.e. separate GPU installation in PCIe slot), not the embedded GPU’s in some AMD models (i.e x73/x63).

Sorry for confusion and getting off topic.