I am having some trouble getting my USB tuner to work properly. I've been working on this for awhile, and I've tried a lot of solutions. Over the course of working on this, I've seen some symptoms I don't understand. I'll try to present what I've tried, and what problems I am running into as concisely as possible.
My goal is to run plex (and later on, jellyfin, but let's not worry about that for now) with a simple USB tuner hooked up to cable. The tuner is a hauppauge WINTV HVR 955Q. I was able to do this successfully when my server was running windows on bare metal. When I tried to do the same thing with an ubuntu server VM (4GB ram 2 cores), everything seemed to go smoothly, except the video came through degraded. There were defects similar to what you would expect using an antenna on a cloudy day or with a bad cable. Below is a shot from Spider man 2, someone just ran past the camera.
VM CPU and RAM usage never climbed above 55%, overall server IO delay never got above 8%, normally staying between 0-4 %. This doesn't look like it is a pure performance issue. Pre-recorded videos stream fine, so the problem is likely in how the tuner is interacting with the OS/plex itself. I figured it might be a problem with plex, so I tried TVheadend in a similar VM, and encountered the same issues. I figured it might be the tuner, but some experiments I did seem to disprove that.
I moved the USB tuner to my laptop, and there was no issue. Perfect, clear video. I then booted windows on my server using a "Windows to Go" USB stick, again, perfect video. I booted and installed plex on a live ubuntu USB running on my server, and there was no video degradation. It seems as though issues are only occurring inside of a VM, on bare metal everything runs smoothly. I have come to the conclusion that virtualized hardware might not be fast enough. If someone else has another explanation and/or possible solution, I would love to hear it. This is my root problem. In pursuing a solution to this problem, I encountered another problem, detailed below. If I can fix this problem, I don't need to fix the other one.
Since the issue appeared to be with virtualized hardware, I thought it might be wise to try running plex in an LXC. I installed plex on an LXC with ubuntu 20.04 LTS (Hauppauge drivers don't work with 22 yet), but then I couldn't get plex to detect the tuner. I think there may be something wrong with the pass through.
I tried both of these procedures, and the USB tuner was visible inside the LXC with lsusb, but I am not certain it worked properly.
https://medium.com/@konpat/usb-passthrough-to-an-lxc-proxmox-15482674f11d
https://forum.proxmox.com/threads/passthrough-usb-from-host-to-lxc.23856/
Both yeilded the same result. Inside the container, lsusb yields the following:
Running lsusb in the host yields this:
This in combination with plex not seeing the tuner at all has me convinced there is an issue with the tuner pass-through.
I'd appreciate any advice y'all can give me, or anything to try invesigate.
My goal is to run plex (and later on, jellyfin, but let's not worry about that for now) with a simple USB tuner hooked up to cable. The tuner is a hauppauge WINTV HVR 955Q. I was able to do this successfully when my server was running windows on bare metal. When I tried to do the same thing with an ubuntu server VM (4GB ram 2 cores), everything seemed to go smoothly, except the video came through degraded. There were defects similar to what you would expect using an antenna on a cloudy day or with a bad cable. Below is a shot from Spider man 2, someone just ran past the camera.
VM CPU and RAM usage never climbed above 55%, overall server IO delay never got above 8%, normally staying between 0-4 %. This doesn't look like it is a pure performance issue. Pre-recorded videos stream fine, so the problem is likely in how the tuner is interacting with the OS/plex itself. I figured it might be a problem with plex, so I tried TVheadend in a similar VM, and encountered the same issues. I figured it might be the tuner, but some experiments I did seem to disprove that.
I moved the USB tuner to my laptop, and there was no issue. Perfect, clear video. I then booted windows on my server using a "Windows to Go" USB stick, again, perfect video. I booted and installed plex on a live ubuntu USB running on my server, and there was no video degradation. It seems as though issues are only occurring inside of a VM, on bare metal everything runs smoothly. I have come to the conclusion that virtualized hardware might not be fast enough. If someone else has another explanation and/or possible solution, I would love to hear it. This is my root problem. In pursuing a solution to this problem, I encountered another problem, detailed below. If I can fix this problem, I don't need to fix the other one.
Since the issue appeared to be with virtualized hardware, I thought it might be wise to try running plex in an LXC. I installed plex on an LXC with ubuntu 20.04 LTS (Hauppauge drivers don't work with 22 yet), but then I couldn't get plex to detect the tuner. I think there may be something wrong with the pass through.
I tried both of these procedures, and the USB tuner was visible inside the LXC with lsusb, but I am not certain it worked properly.
https://medium.com/@konpat/usb-passthrough-to-an-lxc-proxmox-15482674f11d
https://forum.proxmox.com/threads/passthrough-usb-from-host-to-lxc.23856/
Both yeilded the same result. Inside the container, lsusb yields the following:
Code:
Bus 002 Device 005: ID 2040:b123 Hauppauge
Running lsusb in the host yields this:
Code:
Bus 002 Device 005: ID 2040:b123 Hauppauge WinTV-HVR-955Q
This in combination with plex not seeing the tuner at all has me convinced there is an issue with the tuner pass-through.
I'd appreciate any advice y'all can give me, or anything to try invesigate.