Linux Downtime – Episode 68

Hello and welcome to episode 68 of Linux downtime. I'm Joe. I'm Gary. And I'm Alex. Good to talk to you both again. Alex, you're moonlighting from Self-hosted Show again. Yeah, we're going to have to stop this or I'll have to double my fee. Yeah, yeah. Well, people can check you out at Self-hosted.Show anyway. So the reason I've asked you, Alex, to join us today is I have a problem. I need to solve my home media situation. Now, I did actually, coincidentally, talk about this with Chris on Self-hosted while you were away. But I've had more time over the last few months to think about it. So the bottom line is I've got an aging now, which has a cellar on that's passively called, uses hard danny power, but is very low power in terms of compute. And it's just, it's old. It's crusty. I'm going to replace it with 9th gen i5 with 16 gigs of RAM. So quite the upgrade. But I was thinking, why don't I double up the NAS and the TV box? So at the moment, the TV box I've got is an old, I think 2012 Mac Mini running Linux, just as Ubuntu plugged into a 1080p monitor and some speakers. And so that just talks to the NAS and stream staff of iPlayer and all the rest of it. And it does a stellar job at 1080p, but I'm moving soon, hopefully, and I'm going to have space for a big 4K TV. And so I'm thinking, why don't I consolidate them into this one box? But everything I've tried in terms of media playback has just not quite cut the mustard with this 4K TV off the x86 box. And there has to be a way that I can just use one machine to solve both problems here. So Alex, you are somewhat of not an expert necessarily, but someone who talks about it a lot at least. So don't say Plex do not say to me Plex, because I'm not having it. I'm not. I'm on the Jellyfin train now, boy. Well, I know, but Plex is very popular still. So you are satisfied with Jellyfin then? Yeah, so over and self-hosted, we did Jellyfin January as a challenge. Honestly, I didn't expect it to go very well. You know, I've been all in on Plex for as long as I've been into Linux, so what, 15 years or whatever. And I kind of expected to do this, this Jellyfin January challenge and be like, yeah, it's not quite ready yet. And there's a few bugs that are showstoppers, but I loved it. So I'm running a normal Linux server stack with a bunch of containers for my Media Server applications. And then for my front-end clients, I've got a pair of Nvidia shields on both of my main TVs. And I've had one of my Nvidia shields since 2015, and it still sees regular updates. It runs all of the apps I could ever need, including WireGuard, which is important for me living in America, because I can use that to connect into my family's house in England and get residential IP address to stream iPlayer. So for me, it does iPlayer. It does, you know, all the main streaming services, like Prime Video and Netflix and all the high-ticket stuff, as well as Cody and Jellyfin. You know, it just does everything. And it does this at 4K flawlessly without any stuttering and all that. Considering it's from 2015, it still feels faster than most new devices you'd buy off the shelf today. It's got the Tegra GPU in it, which I think is the same one as is in the Switch. You know, it's a video game, GPU, capable of video games, and so video playback for it's like, pfft, yeah, whatever. What's your setup, Curry? I have a NAS machine that's just running ZFS over a couple of drives, and I'm using MB to farm it out to TVs and phones and stuff. So typically, the TV setups are either Chromecast or I have a smart TV that has an app for MB as well. So I know everybody moved off of MB because it went proprietary and stuff like that, but like, there's the whole cost of changing stuff like that you have to deal with that I haven't wanted to pay yet. And I did their lifetime membership thing back when they were still up in Source. I've just been sticking with that for now. But at some point, I do plan to move to Jellyfin because Jellyfin was a fork of MB when they went proprietary, which is my understanding. So it shouldn't be too much different, but the reason I didn't jump ship right away was like, there wasn't clients for everything, that kind of stuff. So it's just like, I'm just going to wait and see how everything settles out kind of thing. That's always what does it. It's the clients. And I've talked about Jellyfin January. That's what I expected to be a problem. Last time I tried an Android TV Jellyfin client, which was probably a year ago, maybe a little more, a little less. It just wasn't there. It was plenty compared to the Plex client. But they did a big update for Jellyfin on the Android TV side of 0.15. And that one for me, the only bug in it that bothers me because I have an OLED TV is that when I pause some media, it just freezes on the screen and will stay there until the end of time. Oh no. Whereas what I really want is a screen saver that dims after 10 minutes or whatever. That's the only thing really wrong with it. Otherwise, Jellyfin's performance is great. The clients on iOS and Android are really good too. I love the server side, all the metrics and stuff they've been adding lately too. Like in the Plex world, you have Tal Tule to monitor streams and stuff like who's been watching, what's been transcoded, et cetera. And that's all now built into the Jellyfin server just natively. And I'm sure if that was before or after the fork. Yes, it does. And it works surprisingly well. Does that require something like TV head end or something in the back? I'm using mine with an HD home run. Oh yeah. The Quadro one and it just works. The only thing that requires a bit of finessing is the XML based TV guide stuff. So yeah, that's always a pain. I mean, if you've been in this scene for a while, you're probably used to that, particularly with TV head end. You're probably used to finagling that kind of stuff anyway. But for me, Plex's live TV integration is still the gold standard. Jellyfin's catching up rapidly though. I have to give that a look. I've been continuing to install it on side by side because that should be fine. Yeah. They're just running different ports. And so it's on my to-do list. There's something I haven't done yet. So what about this idea of using the server as the client, all in one machine? Am I just barking up the wrong tree here? A few years ago, when I first got into Linux, I got into PCI pass through in a big way. And I was running arch on the server to make that happen. And we're talking like 2014, 15, 16 era. Things have come a long way since then. But what I had this vision of was like a Kodi dedicated VM with a dedicated 20, 30-pound GPU in the system that I then passed through to Kodi and then it used the HDMI output on that graphics card to feed my TV so that my host remained separate. I could then put my storage in a VM. I think I was running unread back then, not just normal Linux. And I wanted to keep it separate. I wanted a VM for Kodi per TV and I'd run HDMI cables all over the place and yada yada yada. I personally don't like that approach. The all in one hyper converged box anymore. Forget the pass through stuff because you could just as well install a desktop. Yeah, I've no problem installing a desktop on top of the NAS. Yeah, you don't need to over complicate it, right? But what I wanted to do back then was create three or four clients in one box. Right. But the nice thing about having the shield or a Roku or a Chromecast or insert any other small little streaming box is that they are designed to do one thing. Not all of them do it well, but some of them do it really well. And if you take the server down and tinker with it and what have you, you know, your wife can still watch Netflix or whatever, you know, I player and for me, just separating the client and the server was like unlocking it all made a huge difference. So I always advise people if you can just buy a small client box for the TV and just be done with it. Even a Google TV, you know, they're, they're pretty cheap and they have all that and they even have a remote, which makes things even handier, right? Because if you're using like, just a general Chromecast, you don't never know, you know, you got to control by your phone and stuff. So yeah, those new ones with a little white remotes are absolutely fantastic. I bought one for each member of my family that streamed Plex from me, mostly because when I visited their house last summer, they were all fighting around with their phones. I'm like, this is just, I, as a visitor to your house, I just want a remote on the coffee table. I can pick up and point at the TV and have it do its thing. And that's another thing about building itself, Joe, is you're going to have to figure out how to control it. Well, so at the moment, right, I have this little Mac mini and we sit on a sofa in front of what is basically the TV. It's just a 1080p monitor and speakers. And I control it with one of those Logitech keyboard and trackpad combos. Well, at least you're not going to lose that down the side of the sofa. Yeah, exactly. And there's something really nice about being able to have a proper PC there. And I think that makes me a bit weird because most people want just a TV, but I like the fact that I can just close VLC or close the browser tab that's running iPlayer and then just talk to people in Telegram, let's say, or do whatever. I can SSH into my servers from the TV. And I do really like the idea of having a proper Linux desktop as my TV. And maybe that's just because I want to be a hipster or something. I don't know. You heard it here first, folks. Joe admitting he's a bit weird. You've met me so you know this. True enough. I was thinking it sounds more like a web TV from back in the day, but you know, whatever. I mean, I used to do that. I used to use my first kind of media center incarnation was Windows Media Center. That was the first stab at a 10 foot, you know, the sofa based interface, the 10 foot interface was Windows Media Center of all things. But the TV that I bought, it was a high sense TV that I bought for about 300 pounds. And it's like 55 inch 4k. It's not brilliant. The blacks aren't very black, but it's fine. And I think it will be fine to just use a keyboard and trackpad with it. And the thing is that I've tested this with Zabuntu and VLC and up to 1080p content works fine. It doesn't look great, but it works fine. But for K content, that's when you start to get weird skipping and I've tried in Gennarmon. It's a little bit better. I've tried the latest CODI, which has the HDR support that was only released a month or so ago. And that is great, but it's not perfect for 4K content. And it's just that the little skipped frame here and there and just the weirdness, weird haloing around people's heads and stuff that just makes me think, well, do I just stick with 1080p content then and just not worry about 4K? What's the CPU in that, Mac Mini? I'm not talking about the Mac Mini here, the Mac Mini I only ever do 1080p with. I'm talking about this 9600K machine that's going to be the NAS slash TV box that I've tested all this stuff with and it's almost good enough. And if I just stick to 1080p, it won't be a problem. But you see, this is the other problem. I've now discovered that iPlayer, for example, when you're watching live TV on that, streams at not even 720p, it's like old-school standard definition. And on a 27-inch 1080p screen, it's fine, but on a 4K screen, it just looks awful. Yeah, you really notice it. So that's where you're going to start wanting to look into something like the HD Home Run that I mentioned, which is a network-based TV tuner. You connect the antenna from your, you know, your roof or whatever into the back of this box and then it has an ethernet port on the back. And then it spits out the TV stream over a network. Right. And so when the World Cup was on last year, you know, so those that don't know, I am a greater to America about five years ago, so I'm still very much British at heart. You know, I like my Gary Lineker commentary and when the football's on, I've got to have the right commentators. I can't be having this American rubbish talking about soccer. And so I streamed the World Cup from England and I did it using an HD Home Run into Plex with fully HD 1080i interlaced content coming straight across the Atlantic. I seem to recall you posting a photo of you watching it in an airport at some point. Oh, yeah, yeah, yeah. I was on my way to, I think, reinvent in Vegas for AWS reinvent. And I was sat in the middle of an airport streaming Plex for England watching the football live. It was pretty cool, actually. It was one of those moments where you think, yes, self-hosting is better than not. And every and far between, so I'm going to take the W. Once again, let me just try and convince you that it's possible. And I want you to tell me this is possible. Would it be ridiculous for me to say, run a Jellyfin server container and then a Jellyfin client on the same machine and just stream it internally? No, I don't think so. So this I-5 9th gen, actually, I've standardized on 8th 9th gen for all of my systems in this house. And the reason I did that was because of QuickSync, which is the media encoding engine built into pretty much every modern Intel CPU since about 4th or 5th gen. It really came into its own around the 6th gen. So by the time we're at the 8th, I think that's the HD 630 graphics that's in there. And so what that'll do is it'll use hardware transcoding and you can, you can transcode. I mean, just for you and your wife, it's plenty. But in my testing, I've been able to do anywhere up to like 15 or 20 1080p concurrent transcodes all at once before it starts to run out of juice. It really is remarkable. And the best thing about it is it uses about 4 or 5 watts to do it. So if I did that, could I then just stream it to a browser in 4K? I mean, talking about streaming, it's weird to talk about that because it's within the same machine that you're doing it. Could I play it from a container on the same machine in a browser? You could. It strikes me as a bit bloody weird though. Like, why wouldn't you just navigate to your folder structure with your, you know, sexy Logitech keyboard and load it in VLC? I mean, to be honest with you, it sounds like that's a solution looking for a problem. Well, no, the point being that VLC will not play back 4K content properly. Well, that's the thing you got to solve because I would bet you if you were to stick there, I say it windows on that box and it's still the Intel GPU driver, it would play back that 4K content just fine on that CPU. So you're telling me it's a software problem? Or a driver problem, really? Yeah, because when you said originally that it was stuttering, I thought you meant that, you know, old Mac Mini, and when you said it was the i5 that was stuttering, I was like, oh, well, that doesn't seem right because I use that CPU all day every day for the last couple of years and it's not slow. Yeah, exactly. And it's got the quick sync on it. So how do I unlock that in VLC? I suppose it's the question. If I could do that, that'd be amazing. Not that we're getting to like full troubleshooting here, but like, is it a disk ioproble too? No, this is played off an NVMe drive in my tests. So wow, it's definitely not that. Well, I have an iO issue on my machine and the NVMe is way slower than it should be. Yeah, but you're on Debian though, so. Well, yeah, but I mean, an app get upgrade on a thread ripper shouldn't take an hour because that's how long it takes. Yeah, it really strikes me as, I don't know what the Ubuntu's driver stack looks like. You mentioned you tried it on GNOME as well and it was doing the same thing. Yeah, could you try it on just a completely different distro and see if it's the same problem? What base are you using as Ubuntu? Yeah, I just installed GNOME on top of the Ubuntu. And I've tried ARCH actually and had pretty much the same experience, but that was only briefly and I don't really want to run an ARCH NAS quite frankly. I want to run an Ubuntu LTS NAS. Yeah. So the thing you might want to look into is what codecs the troublesome files are because it could just be maybe an x265 file that isn't able to do any kind of hardware acceleration. Maybe the audio track isn't supported for whatever reason. There's an app called Tida, T-D-A-R-R, which can automate all sorts of fun stuff like removing Dolby Atmos surround tracks and down mixing them to stereo and that kind of stuff. And not only would you save a ton of space doing that, you'll also reduce the load on your system. So you might find you'll be able to accelerate that T-D-A process with the quick sync GPU. So it's not going to chew through a ton of your energy bill, but you might find that just simply re-encoding some of that media or stripping it down a little bit automated might solve your issue as well. Well, that's kind of what I was thinking of doing on the fly with Jolefin because that's effectively what it would be doing in that container, right? Yeah, absolutely. So there's just two different ways to solve that particular problem, either just do it properly or just have a ridiculous hack and have it done on the fly every time. Well, the advantage of doing it on the fly every time is you could watch it from your phone or your tablet or your fancy M1 MacBook Air that you love to talk about so much. Oh, yeah, I love talking about that. Yeah. But the advantage of doing it properly, so to speak, with Tida or handbrake or whatever, it's all just FFFmpeg under the hood anyway, is that it's done once and it's done properly and it'll always play back on that system perfectly, hopefully. But coming back to the Jolefin thing, it really is nice to just be able to pick any client device and never have to worry about always this media compatible. It figures it out and it creates the FFFmpeg string for you. And if you actually go into the Jolefin logs and look at what it's doing, there's all sorts of magic going on to figure out what the correct codecs are. And it's kind of crazy, actually. Jolefin should be able to transcode on the fly too. So if you're having a problem with that content, you can maybe bring it down to 2K and then that way you're not going to get 1080p on your TV and then instead you'll get 2K because Jolefin should be able to transcode it on the fly. There's usually a little bit of startup cost for that. It's like old-school buffering. But then you might get better results with that that way too. With QuickSync, you'll find that the buffering when you click play is minimal. We're talking five seconds or less. Five seconds is still a bit annoying though. A say five seconds or less in reality, it's a lot less. Most of the time. Okay. You see that on Netflix sometimes too. You know, you hit the thing and it's like, oh, there it goes. It's a little annoying, but then it's fine. Well, I think what's interesting about Netflix is they actually do a whole bunch of pre-encoded stuff and they have like whole media ingestion farms that then create, you know, 20 different versions of the file and then they kind of dynamically switch between them based on your connection profiles. Yeah, that and they've got point of presence is everywhere that has stuff cached. So it's, you know, just last mile to you and everything. You could just subscribe to Netflix, Joe. Yeah. But the problem with that is Netflix in the browser looks terrible because you get terrible resolution and bit rate. I wouldn't know because I watch it on Nvidia Shield and it just works too. Just works, TM. Yeah. Maybe I'll just buy an Apple TV and an iPhone and just totally go to the Apple room. Okay, so for the trolls in the audience, like an Apple TV is not a good set top box, but at least for me, simply because it can't run wire guard and you can't do any kind of remotely fancy shenanigans with it. The minute you want to step outside the wall garden, it's not a good time. Shock horror with an Apple device. Well, thank you very much for joining us, Alex. You've given me more to think about than I've come into this with, which is not what I wanted to happen. So I wanted firm solutions, but as usual, there's about 50 ways to do anything with solutions easy, run jelly fin and then run a browser connecting to said jelly fin. Just make sure you do reverse proxy so that you're not faffing around with ports though. Please just for me. Okay. I'll do my best. There is a good reason for that because if you have an unsecured jelly fin URL, all your clients will complain. So if you have a TLS backed, you know, through traffic or whatever you do for your letting encrypt stuff, makes it a lot easier on all the clients. It's worth the five minutes to configure it. Another point of that too is I had to set mine up behind TLS so to work with the Chromecast because Chromecast won't work without TLS anymore. Right. Well, my head is spinning now, so we're better get out of here. All right, Kylie. We'll be back in a couple of weeks, but until then I've been Joe. I've been Gary and I've been Alex. See you later. Bye. Bye. Bye., bye.