Some Computer News

Over the last couple days, I’ve acquired a whole bunch of TV shows with the HEVC codec. Not really a problem, but a lot of devices, like a Roku or Fire TV thing, can’t play it directly. That means it has to be transcoded. I use VAAPI in Jellyfin to trancode, but it doesn’t really work with HEVC. I found out the drivers that Debian provides are version 18.something, and I need at least version 20.1 for VAAPI to transcode HEVC video on an AMD graphics card. Those drivers are available in the testing repositories, but the dependency requirements are a little too complicated to make installing them worthwhile. I also put together a VM with Ubuntu 20.10, which has those drivers as standard, but it failed to boot up when I had the GPU passed though to it. The LTS version worked, but like Debian, the drivers are too old. Hopefully the newer drivers make it to Debian’s stable repos sooner rather than later. In the meantime, I’m fine for two reasons: First, I usually watch stuff through Kodi on a computer, which means I can direct play everything; second, my CPU can handle transcoding a couple streams at once, so it’s not a huge problem.

In other news, I ordered a new laptop today. I was eyeing a few during the black Friday week things a couple weeks ago, but decided against it. Today, I was at my parents’ house taking care of some school work. I had my Surface Book (first gen) hooked up to a 1080p monitor for some extra work space. I had Excel, Word, about a dozen Firefox tabs open while playing music on Spotify. It felt a little sluggish and not as responsive as it should be. In fact, when I scrolled though my RSS feeds, the music skipped when it was loading images. CPU usage was 80-95% when watching a 1080p Youtube video with the other stuff open in the background. This isn’t something I do often, and this semester is coming to an end, but I still have two more to go, and it is nice to take my work with me if I want to.

The touch screen on the Surface has also been broken since the summer. It sometimes experiences phantom touches along the bottom inch of the screen. That’s disappointing, but livable. I don’t really use the touchscreen. More unforgivable though, is the stylus situation. It won’t work along the edges of the screen, even after repeated calibrations, rendering it useless. I bought an iPad and Apple Pencil in September to pick up this slack, but I haven’t used it much. I haven’t felt the need to take notes in my classes. It feels like I kind of wasted the money on that, but eBay shows that I should be able to sell the stuff for almost as much as I paid for it if I want.

These issues got me looking for laptops this afternoon. I first turned to Slickdeals to see if there were any good deals out there today. First, I found an HP Pavilion that seemed like a good deal. It had a Ryzen 4700U CPU, 8GB RAM 128 GB NVMe SSD and a 1080p display for $450. Someone left a comment comparing it to a similar Dell. The Dell seemed like a better deal, with a better charging system, two M.2 slots, and 1x 8GB RAM stick (making the upgrade to 16GB easier). I found out from another Slickdeals post that there was 12% off Dell stuff with a sign up at a third-party site. I did that and was ready to order a 15″ Inspiron 5000 for about $500. I read and watched a few reviews, and decided the display and build quality would be too big a step down from the Surface, so I moved on.

I gave Best Buy a look and set my only criteria to an AMD processor and a 1080p display. Another HP popped up, but this time it was an Envy x360 (that means the screen flips all the way around). This one was equipped with a Ryzen 4500U, 256GB NVMe SSD and 8GB RAM for $629 new. I learned in the Best Buy questions and through some research that the RAM and SSD are able to be upgraded, and it’s compatible with an active stylus, like the Surface pen. The upgradability is a must-have for me, and the stylus compatibility is a huge plus. I waffled for a couple hours, but decided to buy an excellent condition open-box one for about $570. It should be in by December 22 they say, but of course I’m hoping it arrives earlier. The AMD processor bests more expensive Intels and has pretty good integrated graphics. I should be able to run some games at 1080p medium settings. It totally murders the i5 6300U in the Surface Book (11,286 passmark score vs. 3,269). The Verge called the 13″ version the best sub-$1000 laptop. I think I’ll probably keep the 256GB SSD for now, but I’ll definitely be upgrading to 16GB RAM as soon as possible. I’m really looking forward to it, and I’ll update when it comes in.

TV is Working, More or Less

So I’ve gotten the TV working on the new system. It’s kind of a convoluted set up, but it works just about perfectly so far. I have coaxial cable coming into the office from the ONT in the basement, and that goes into a Ceton InfiniTV 6 Eth cable card TV tuner. The tuner is connected by ethernet to the Cisco switch and in turn to an ethernet port on the server. To my surprise, the tuner was plug and play with the switch. I was expecting to have to adjust some settings, but it worked right out of the box.

The tuner is accessed directly by a Windows 10 VM running a piece of software called cetonproxy. This makes the Ceton tuner appear to be an HDHomerun to other programs. It’s a Windows-only thing right now unfortunately, so I have 3 cores and 5GB of memory dedicated to a VM just to run this little utility. I’ve never used a container, but this seems like a good use case for one. I don’t know if it’s feasible to run Windows stuff inside a container, but I’ll have to do a little research.

After cetonproxy works its magic, the tuner is usable as an HDHomerun on everything. I initially wanted Jellyfin to handle all the TV tuning stuff, but it turned out the Jellyfin plugin for Kodi doesn’t really do live TV. It lets you watch channels, but there’s no guide or access to recordings, so it’s kind of useless in my opinion. This meant I had to use NextPVR to do my TV tuning.

I generally like NPVR, and I’ve been using it as my TV solution for about a year and a half. It does everything I need a PVR package to do, but it always felt a little bit rough around the edges to me. That’s probably because it’s developed largely by one person, and he can only do so much. It’s closed source, so no one else can contribute. I personally feel like the developer could have a much more robust package if he open-sourced it, but whatever. In the fall, he released a huge update to the program, and created a version for Linux.

After a couple false starts, I had the Linux version installed. The documentation for NPVR v5 is very sparse, and almost nonexistent for the Linux version. The web interface that’s now used to control the program seems to include fewer settings than the old set up, and the descriptions of the settings are very brief. This is something that could be vastly improved in an open source project. I’ll be researching to see if tvheadend can replace NPVR for me.

Yesterday, I recorded a bunch of shows. NPVR, and I assume most other PVR programs, record shows to a .ts file. I’m not sure what kind of encoding these files use, but it results in huge file sizes. A two hour-ish recording of the move Tangled resulted in a ~15GB file. That’s not a whole lot smaller than a similar-length Blu-Ray rip with multiple DTS and AC3 audio tracks. Handily, NPVR includes an option to automatically re-encode recordings after they finish. There is a choice between CPU and VAAPI (graphics card) encoding. Since I had the GPU set up for Jellyfin, I figured that would be the thing to use. I set it, and it didn’t work. I got some help from a rather brusque forum member. Turns out the developer omitted a line or two of code that is needed when selecting the VAAPI option. Again, something that probably wouldn’t happen in an open source project. So for now, VAAPI is useless. Additionally, either VAAPI sucks or my GPU (an RX480 4GB) does, because it can only process one of those .ts files at half speed, which means it takes 10 minutes to encode 5 minutes of video. I’m very disappointed because my RTX 2080 Super, which I know is a significantly better GPU, can plow through a 2 hour Blu-Ray rip in 20 minutes or so using NVENC. The CPU encoding option is much faster, at double speed, meaning a 5 minute video would take 2.5 minutes to encode. This uses 20 virtual cores though. I’ll have to see how it works with multiple simultaneous encoding jobs. I only have 32 cores to give, and the rest of the VMs need some too. For now though, I don’t have a choice.

Another fly in the ointment is Jellyfin and its NPVR plugin, which allows Jellyfin to use NPVR as a backend for TV services. I had it going in a test when I was using the old PCI tuner, but since I set up and then removed the tuners on Jellyfin, I can’t get it working again. There’s an update to Jellyfin out that I’ll probably install next week, so we’ll see if that fixes it. That successful test also used an older version of NPVR, which might have something to do with it. I don’t want to use the old version though. Overall, I’m satisfied. I get TV on my TVs, so I guess I can’t complain too much.