I have a Hauppauge WinTV-quadHD PCI-e card in a Linux host that I want to make available to PLEX server on a different physical host.
What software/daemon do I need to install on the tuner host in order to have the PLEX server host see the tuner card?
Thanks.
There is no Plex supported way of doing that, so, the official answer is none.
PCI-e card isn’t meant to be a net capable IPTV tuner like the HDHR are.
However, you may research stand-in software hacks - TVheadend and Plex proxies.
Search results https://www.google.com/search?q=tvheadend+plex+proxy
Thanks, that was what I needed. I got tvheadend and tvhproxy working such that PLEX now sees my OTA streams.
Still have a few niggles to work out (containerize, convert PLEX vm to a container, figure out why library updates pause the stream on my Mac but not on my Shield) but I’m happy with how it works on my dev boxes.
Trying to stream the same channel from two different devices makes the second client crash. Expected or should I report it as a bug? Something to my “weird” proxied setup?
Fun stuff.
Btw, if I move the card to the same physical box that runs PLEX media server will it work by default?
@reece146 said:
Thanks
Welcome.
Trying to stream the same channel from two different devices makes the second client crash. Expected or should I report it as a bug? Something to my “weird” proxied setup?
I’m on mobile at moment so won’t research, but each client likely grabs new tuner. I’ve no idea your device capabilities. Tvheadend might be locking.
@reece146 said:
Btw, if I move the card to the same physical box that runs PLEX media server will it work by default?
Should. No tvheadend, No tvhproxy needed
Thats the way most internal devices work.
Oh, in addition to my post regarding ‘should’ work with Plex on same machine as the tuner card.
You mention VM and containerization. I’ve no real-world Plex experience with that, but from all that I read, VM/dockers/etc may have trouble getting to the baremetal stuff needed. I know there are articles where Plex says they don’t support hardware acceleration for transcoding when on VM/docker, not so much a Plex limitation as the virtualization engine - it wouldn’t surprise me if there are similar challenges with talking to the tuner through the vm/container abstraction layer.
Just to add another 2 more to this:
- search for “vtuner” in the dvblinux context, which allows remote DVB devices to be added to the device tree locally.
- Minisatip should work if you are a community tuner beta user
However, if this works now with TVH and a proxy solution. leave it like this.
I migrated the old Plex server from a Centos 7 VM to a docker container on a different host running Alpine Linux. This Alpine host is the one with the PCI tuner.
I’m starting to question if this card is truly supported by Plex (Hauppauge WinTV-QuadHD).
I’m using the official Plex container ( https://github.com/oskarirauta/alpine-plex ) and everything seems to work fine once it is set up but it does not detect the local hardware that is installed. I migrated all my previous settings, libraries w/ meta data, etc., etc. From the client end you can’t tell anything has changed really. It’s a little peppier (more below).
I would have written this off as a newbie “docker thing” with PCI cards but I created a tvheadend container from scratch on the same host using the same technique and that works. The tvheadend container sees the hardware without issue.
I don’t know if anyone here has interest or familiarity with this type of set up. The ‘docker run’ commands for both are below if you want to put an eyeball on it. Maybe there’s a silly typo that I’m not seeing - been staring at this for a few evenings now.
FWIW, Plex seems appreciably snappier as a container than as a VM (both hosts hw identical except for the tuner card: Q9505s, 16GB RAM, same Samsung SSD). The only other difference is libvirt is on ubuntu 16.04, docker is on Alpine 3.7.
docker run --name media \
-p 32400:32400 \
--device=/dev/dvb/adapter0/dvr0:/dev/dvb/adapter0/dvr0 \
--device=/dev/dvb/adapter0/frontend0:/dev/dvb/adapter0/frontend0 \
--device=/dev/dvb/adapter0/net0:/dev/dvb/adapter0/net0 \
--device=/dev/dvb/adapter1/dvr0:/dev/dvb/adapter1/dvr0 \
--device=/dev/dvb/adapter1/frontend0:/dev/dvb/adapter1/frontend0 \
--device=/dev/dvb/adapter1/net0:/dev/dvb/adapter1/net0 \
--device=/dev/dvb/adapter2/dvr0:/dev/dvb/adapter2/dvr0 \
--device=/dev/dvb/adapter2/frontend0:/dev/dvb/adapter2/frontend0 \
--device=/dev/dvb/adapter2/net0:/dev/dvb/adapter2/net0 \
--device=/dev/dvb/adapter3/dvr0:/dev/dvb/adapter3/dvr0 \
--device=/dev/dvb/adapter3/frontend0:/dev/dvb/adapter3/frontend0 \
--device=/dev/dvb/adapter3/net0:/dev/dvb/adapter3/net0 \
--volume=/Volumes/plex_config:/config \
--volume=/Volumes/plex_transcode:/transcode \
--volume=/Volumes/Media/PLEX:/Volumes/Media/PLEX \
-i -t oskarirauta/alpine-plex:plexpass
docker run --rm --name tvheadend -p 9981-9982:9981-9982/tcp \
--device=/dev/dvb/adapter0/dvr0:/dev/dvb/adapter0/dvr0 \
--device=/dev/dvb/adapter0/net0:/dev/dvb/adapter0/net0 \
--device=/dev/dvb/adapter0/frontend0:/dev/dvb/adapter0/frontend0 \
--device=/dev/dvb/adapter1/dvr0:/dev/dvb/adapter1/dvr0 \
--device=/dev/dvb/adapter1/net0:/dev/dvb/adapter1/net0 \
--device=/dev/dvb/adapter1/frontend0:/dev/dvb/adapter1/frontend0 \
--device=/dev/dvb/adapter2/dvr0:/dev/dvb/adapter2/dvr0 \
--device=/dev/dvb/adapter2/net0:/dev/dvb/adapter2/net0 \
--device=/dev/dvb/adapter2/frontend0:/dev/dvb/adapter2/frontend0 \
--device=/dev/dvb/adapter3/dvr0:/dev/dvb/adapter3/dvr0 \
--device=/dev/dvb/adapter3/net0:/dev/dvb/adapter3/net0 \
--device=/dev/dvb/adapter3/frontend0:/dev/dvb/adapter3/frontend0 \
-i -t alpine_tvheadend
Any observations or ideas appreciated.
According to their Supported Tuners DVR Page, it says Linux compatibility is based on Ubuntu 16.04.2 LTS.
@reece146 said:
I migrated the old Plex server from a Centos 7 VM to a docker container on a different host running Alpine Linux. This Alpine host is the one with the PCI tuner.
I’m starting to question if this card is truly supported by Plex (Hauppauge WinTV-QuadHD).
I’m using the official Plex container ( https://github.com/oskarirauta/alpine-plex ) and everything seems to work fine once it is set up but it does not detect the local hardware that is installed. I migrated all my previous settings, libraries w/ meta data, etc., etc. From the client end you can’t tell anything has changed really. It’s a little peppier (more below).
I would have written this off as a newbie “docker thing” with PCI cards but I created a tvheadend container from scratch on the same host using the same technique and that works. The tvheadend container sees the hardware without issue.
I don’t know if anyone here has interest or familiarity with this type of set up. The ‘docker run’ commands for both are below if you want to put an eyeball on it. Maybe there’s a silly typo that I’m not seeing - been staring at this for a few evenings now.
FWIW, Plex seems appreciably snappier as a container than as a VM (both hosts hw identical except for the tuner card: Q9505s, 16GB RAM, same Samsung SSD). The only other difference is libvirt is on ubuntu 16.04, docker is on Alpine 3.7.
docker run --name media \
-p 32400:32400 \
--device=/dev/dvb/adapter0/dvr0:/dev/dvb/adapter0/dvr0 \
--device=/dev/dvb/adapter0/frontend0:/dev/dvb/adapter0/frontend0 \
--device=/dev/dvb/adapter0/net0:/dev/dvb/adapter0/net0 \
--device=/dev/dvb/adapter1/dvr0:/dev/dvb/adapter1/dvr0 \
--device=/dev/dvb/adapter1/frontend0:/dev/dvb/adapter1/frontend0 \
--device=/dev/dvb/adapter1/net0:/dev/dvb/adapter1/net0 \
--device=/dev/dvb/adapter2/dvr0:/dev/dvb/adapter2/dvr0 \
--device=/dev/dvb/adapter2/frontend0:/dev/dvb/adapter2/frontend0 \
--device=/dev/dvb/adapter2/net0:/dev/dvb/adapter2/net0 \
--device=/dev/dvb/adapter3/dvr0:/dev/dvb/adapter3/dvr0 \
--device=/dev/dvb/adapter3/frontend0:/dev/dvb/adapter3/frontend0 \
--device=/dev/dvb/adapter3/net0:/dev/dvb/adapter3/net0 \
--volume=/Volumes/plex_config:/config \
--volume=/Volumes/plex_transcode:/transcode \
--volume=/Volumes/Media/PLEX:/Volumes/Media/PLEX \
-i -t oskarirauta/alpine-plex:plexpass
docker run --rm --name tvheadend -p 9981-9982:9981-9982/tcp \
--device=/dev/dvb/adapter0/dvr0:/dev/dvb/adapter0/dvr0 \
--device=/dev/dvb/adapter0/net0:/dev/dvb/adapter0/net0 \
--device=/dev/dvb/adapter0/frontend0:/dev/dvb/adapter0/frontend0 \
--device=/dev/dvb/adapter1/dvr0:/dev/dvb/adapter1/dvr0 \
--device=/dev/dvb/adapter1/net0:/dev/dvb/adapter1/net0 \
--device=/dev/dvb/adapter1/frontend0:/dev/dvb/adapter1/frontend0 \
--device=/dev/dvb/adapter2/dvr0:/dev/dvb/adapter2/dvr0 \
--device=/dev/dvb/adapter2/net0:/dev/dvb/adapter2/net0 \
--device=/dev/dvb/adapter2/frontend0:/dev/dvb/adapter2/frontend0 \
--device=/dev/dvb/adapter3/dvr0:/dev/dvb/adapter3/dvr0 \
--device=/dev/dvb/adapter3/net0:/dev/dvb/adapter3/net0 \
--device=/dev/dvb/adapter3/frontend0:/dev/dvb/adapter3/frontend0 \
-i -t alpine_tvheadend
Any observations or ideas appreciated.
Yeah, was wondering about that or if it was just an attempt to simplify support.
I tried the Ubuntu 16.04 based container and got this warning which makes a lot of sense:
Preparing to unpack /tmp/plexmediaserver.deb ...
Unpacking plexmediaserver (1.12.1.4885-1046ba85f) ...
Setting up plexmediaserver (1.12.1.4885-1046ba85f) ...
##################################################################
# NOTE: Your system does not have udev installed. Without udev #
# you won't be able to use DVBLogic's TVButler for DVR #
# or for LiveTV #
# #
# Please install udev and reinstall Plex Media Server to #
# to enable TV Butler support in Plex Media Server. #
# #
# To install udev run: sudo apt-get install udev #
# #
##################################################################
I’ll futz with trying to get udev going in the container and see if that leads me anywhere.