Please help me stop my baby from crying because kodi keeps buffering

Gutless2615@ttrpg.network to Selfhosted@lemmy.world – 102 points –

The toddler loves having Kodi full of all their faves but I haven’t been able to iron out all the buffering I’m getting streaming from my mini-pc NFS mounted shares to the pi4 libreelec hooked up via Ethernet in the living room. Everything is wired, so I wouldn’t think that would be an issue but here I am about to put down a couple hundred dollars for a Synology router that looks like the monolith from 2001. Is this going to do the trick, you think? Is there another router recommended to keep a distributed little homelab (any 10tb spread between various usb hdd, raspberry pi’s and mini PCs all hosting a variety of containers and services) running smoothly? Budget I’m hoping to keep under 300 and lower the better but happy toddler and buttery smooth streaming over lan is the priority.

97

I'm not sure about how this works in kodi but in jellyfin the client might request a different resolution which causes the server to try and reencode the provided file on the fly. In my case my server isn't fast enough for this which leads to constant buffering

Likely, This is it. It transcodes and hence it has to buffer because the server isn't strong enough. Best is to use a gpu like intel a380 as described in jellyfin's doc.

No no transcoding happening on kodi, it’s just playing it straight over the lan. That said I do have jellyfin set up on a machine that can handle transcoding for a number of clients. I gave considered switching to Kodi +Jellyfin and seeing if that’s better.

Installing the Jellyfin add on into kodi takes a few minutes. Nothing much to consider, just try it and see if that changes anything.

I have a similar setup (rpi with OSMC, media hosted on file server) and prefer using Jellyfin as the source for all clients, as it keeps track of watched status across everything. It's not perfect, but better than without Jellyfin.

I havent used kodi in a long time, since swapping to jellyfin. I personally found kodi would always buffer sometimes, far more than it should ever need to. With jellyfin, same server, no buffer

There's no backend server to do the transcoding in this case. Kodi can access raw NFS/SMB file shares the same as accessing local storage, so it's just reading the file over the network, the same as if you were playing it in VLC on your PC.

Kodi doesn't do any transcoding. It just mounts the NFS share and plays the file.

Leave Kodi behind in 2010 and switch over to Jellyfin for better results.

That's the correct answer.

All that kodi hassle killed my brain. Nowadays I have a jellyfin server and a wifi6 router streams everything to a roku device I bought for 11€. Never saw some buffering again.

FWIW I have jellyfin as well already, it’s also on the machine serving the nfs shares. I would expect streaming over lan to always be a lighter load then sending a transcoding request through the internet and back to the machine four feet away, but I could be wrong. I am always curious though what people are using as jellyfin clients for their TVs. How are you actually getting jellyfin into your living room? I had hoped to use a dedicated pi4, and I’ve already gone down the route of trying to boot to a light desktop with an auto loading chrome kiosk window to my jellyfin server, but those results were less than ideal too.

Why would your Jellyfin traffic need to go over the Internet if it's on your local network? You should be able to install the Jellyfin app on your smart TV/Roku/etc or use the web client from a computer, point it at the Jellyfin local IP address, and view it over your LAN.

And at best reroute the traffic before going outside

Yeah, a lot of routers support custom DNS routes, so just set your device to use your router for DNS and set routes to forward traffic to your NAS. Boom, problem solved and you still get to use HTTPS inside your house.

Traffic for a local Jellyfin server should definitely not be going over the internet. Also any reasonably modern client should be able to direct play most media without transcoding.

As for my own Jellyfin setup, one TV has an Nvidia shield plugged in and is using the standard Android TV client. The other is a Samsung smart TV onto which I have side-loaded the Jellyfin Tizen app.

You know once I expose a service to the internet and get a nice easy to remember url I practically forget that I can still access locally. I should check that out.

There are a few options there.

As someone else mentioned if you're using IPv6 then it doesn't matter, you're already routing internally even if you're using the public DNS name, no extra work required.

All the rest are for IPv4.

If you're not behind CGNAT some routers/gateways are also smart enough with their routing to recognise when they need to route back to their own external IP and will loop back locally instead of making any hops out to the internet. Again, if this is the case for you then no additional work is required other than perhaps running a traceroute to confirm.

Another option is to add a local DNS entry for the name you're using to resolve to a local IP address instead of your public address. The complexity (or even possibility) of this is going to vary considerably with your setup. If you're running your own local DNS e.g. pihole or similar then it's trivial. This is how mine is set up.

If all your clients are going to be on PCs (or devices you have more than the typical manufacturer allowed modicum of control over) then you can do something kind of like the previous, just with all your local hosts files.

If none of the above are options, then you'll unfortunately have to fall back on using a local name/address, which means a slightly different client setup for devices you use exclusively in your home versus ones you might use elsewhere.

If you set up ipv6 on the jellyfin server, you’ll be connected locally to your server because with ipv6 even if you use a domain name, if the server is in your lan it’ll connect locally to it.

Using the local address for the jellyfin instance solved things. I have no idea why whatever jellyfin is doing via jellycon is somehow more performant than just streaming via smb or nfs in vanilla kodi but 🤷‍♂️. Good pull.

There are dedicated Jellyfin clients but I mainly just use the web client that is part of the server 90% of the time.

I use the Jellyfin for Kodi addon. It's quite easy to set up and it sounds like you pretty much have everything you need already. Not sure if it could fix your issue but it works great for me.

I use Chromecast to watch jellyfin on my TV. My host PC is hardwired, and obviously the Chromecast is through WiFi

We’re a googleless house as much as possible. I did consider going down the chrome cast route but it’s less than ideal on iOS.

Transcoding reduces bandwidth usage significantly

Also video traffic doesn't pull that much by todays standards

EASY KILLER

I DON'T SEE ANY JELLYFIN DISTROS

"JUST ENOUGH OS FOR JELLYFIN?" no

Though jellyfin/emby as the back end works really well

Kodi/LibreELEC is awesome for all the different stuff you can add in

EDIT for typos

You can install it anywhere. You just run the container with you media directories passed though. They have lots of documentation

It is way easier than Kodi

Oh yeah I am on board with jellyfin and emby all the way 100%

Kodi/LibreELEC is just the full suite, especially with home assistant. Use the addon and enjoy one interface for every single piece of media, cutting out each apps "eye candy" and clutter, and enjoy your tunes with visualizers!

Add-ons for everything

Moonlight for game streaming, tied into my whole home remote control and home assistant for ease of use for everyone in the family.

It's all pretty slick.

Once you get it setup just make a backup and roll that out on the other machines needed.

Kodi/LibreELEC + JellyCon add-on works great!

Before you buy anything, put some of the same content that buffers on a USB stick or powered drive and play it directly from the pi4. Also connect via ethernet to your router from another PC and check your dl speed from the NFS share.

Oh brilliant. Thanks. Yes. This only tends to happen on larger files, 5gb mkvs or multi audio track deals etc. I was also concerned it’s just a pi4 bottleneck, but that’s fixable too with more hardware. Just need to figure out what to get.

I'd lean towards the pi being the problem, but you can test the network throughput with iperf, and would want to test the videos outside of Kodi on the pi, so you could also check top and see what the processing looks like.

If I remember my pi 4 hardware decoding specs correctly, I believe h.264, MPEG 2, and VC1, and some support for HEVC. If I had to guess, you may have some codecs that aren't handled by hardware acceleration, and instead just CPU.

My best rec would be to use either a dedicated stream box (like a fire stick, Nvidia shield, etc) which has better codec support, or pick up like a little Intel n100 based system, which will handle a drastically wider set of codecs with full acceleration support.

Right now I've got a Roku and a Google TV Chromecast, and I've been trying with various environments on an old Lenovo m910q so I can find my favorite fit of UI/distro. The Roku and Chromecast never stutter, and I don't do transcoding for inside the home. Works with 4K HDR HEVC no problem.

Edit: Autocorrect annoyances.

Thanks, really appreciate the thoughtful response. I have an intel n100 NUC actually on the network. It used to be the jellyfin machine but has shifted to other duties. I probably should have tried to throw that in and reconfigure things but I just went with the OSMC Vero box which should tick all the necessary hardware boxes to at least free that from being the problem. Bonus: I get to add the pi4 back to the homelab stack.

If it turns out to be a Pi bottleneck, you can just re-encode the videos with a lower quality and h.264 codec.

Are you by any chance using flat Ethernet cables? Those are not to spec and are vulnerable to radio noise. Friends don’t let friends buy and use flat Ethernet cables.

Woah really?? I am actually…

Your setup sounds much too complex and misses key information and troubleshooting steps. The flat cables are kind of the cherry on top.

You need to start laying out which devices grab which stuff from where and which cables, switches, routers and panels you are using.

Otherwise people wont be able to help you. A new router isnt going to help you at all.

Example: I run plex on a terra miniserver, stream to my phones and computers over wifi (the server is connected via cat7 wired networking with a tested gigabit connection). I also stream to a libreelec-pi in another room which is also on wifi and has issues sometimes. That is why I‘m gonna wire the connection later this month so that is no issue. I also have an appletv in the livingroom which is connected by wire and has no buffering. There are 3 gigabit switches and a fritz!box also connected but they‘re all gigabit as well: Between PCs and the main router, appletv and the main router and the server and the main router.

It’s really neither much too nor very complex at all. I have a home lab stack of mini PCs and raspberry pi’s in my office hooked up to a switch to my router. Among the stack is an intel nuc with a few attached usb hdd, sharing those drives via NFS and Samba and hosting Jellyfin. The same machine serves jellyfin to my other devices and a few family members over the internet. That machine is more than capable for the task. In order to get that media to the living room I have a raspberry pi 4 running libreelec also hard wired to the Ethernet also to the same switch (running through a cable window in the wall). No, I had not heard of the issues with flat Ethernet cables that are otherwise advertised as cat 7 compatible, because I have (some) of the machines networked with flat Ethernet cables. Those are getting replaced.

For the most part the pi4 libreelec machine handles content fine. But I have a number of multichannel audio, hd not-quite-4k animated movies that do routinely cause buffering issues. It seems most likely upon review and after the comments in this thread that it was a simple bottleneck at the pi4. The same content plays unstuttwring on other more equipped machines on the network. I do think the router is on its way out though and deserves an upgrade but that looks to be an optional next step. I’m replacing the pi as a media machine for now.

Understood!

I meant much too complex to grasp without more context, sorry if that came out wrong.

I didnt think of the pi being potentially used for high resolution/audio quality footage. My pi runs on a 720p tv so the internal gpu has a lot less to do than yours so I guess its possible that was the problem.

Good luck

Flat cables can be conformant and they still have twisted pairs. Cables just have to meet the physical properties set by the standard.

Sure they might exist but the ones you buy off of That Website never are.

Just run a sustained load over the cable in both directions and/or use testing tools. Even if the cables were okay, something is sincerely wrong with that setup and its not the pi as they work very well.

Your router doesn't handle LAN traffic so an upgrade shouldn't make any difference, unless you have multiple VLANs and are passing traffic between them and don't have a Layer 3 switch in use to handle inter-VLAN routing.

I would probably start with an iperf test for download bandwidth to the Pi from the server. If that looks OK then I would benchmark the NFS share for read speed on the Pi, make sure that's not doing something weird.

If that all looks good then I would probably suspect that Kodi either isn't using hardware acceleration properly, or the specific media codec is not supported by the Pi for hardware acceleration.

I gave up on kodi. Jellyfin works better, presumably because it transcodes better.

Haven't used Kodi but am running Jellyfin via the official docker image on a Raspberry Pi 4. Even there transcoding works reasonably well for one user at a time, admittedly didn't try with several users at the same time so far.

Just mentioning the docker image because I used to install it without docker directly via the repository and I never got transcoding to work on the same hardware.

can you run something like iperf3 or openspeedtest between the server and client to prove its a network throughput issue?

do you have a network switch you can add to avoid switching through your router (if it is indeed bad?)

Have you ensured you arent unknowingly using wifi at either end?

That is a complex setup. What's wrong with Jellyfin?

Also doing media streaming from a RPI is not going to work well. Go with a old minipc as they are cheaper anyway

? Not particularly. I have an intel mini pc hosting jellyfin and a few drives via nfs and samba in one room along with the rest of my homelab. In the living room I need to get that media to the tv so I’m using a pi4 running libreelec atm to connect to those shares.

Change the baby for a dog. You're welcome.

Instructions unclear. Baby is now a werewolf and howls loudly when Kodi is buffering.

My bad, I apologize. Put it in the freezer for now and I'll shout out when I have clear instructions in a codeberg repo.

What quality is the content? I have a pi4 running OSMC, kode front end and things are buttery smooth. All content is 1080p or lower as the pi can't handle 4k

Network is a 1gb switch from the mini pc running NFS and homeplugs to get the network from a bedroom to the living room.

Do you experience buffering if you watch on a pc / laptop on VLC via network? This will tell you if it’s network speed related or hardware power related. I would assume the pi is not quite powerful enough. I am using a device called a Vero 4k+ and it works wonderfully. But my network setup sounds similar to yours, I just have an smb share on my pc and I added it as a source in kodi.

I don’t, super helpful. So I’m guessing this is a pi bottleneck. Just ordered the Vera V so we’ll see! Fingers crossed for happy toddler.

Nice, should be a nice upgrade! Been debating getting the V for av1 support, but I’m also just holding off hoping Apple TV will support it soon.

My first thought was also that it’s a Pi bottleneck. I have a 4b, and I don’t think I would really trust it to handle some of the higher-quality streaming. Maybe just barely.

Any luck with the vero?

Otw but after replacing the flat Ethernet cable (no change), and while waiting for the vero I switched to connecting to jellyfin / jellycon via its local address instead of its external one (🤦‍♂️) and zero buffering silky smooth everything. I don’t understand why but holding my breath for now while I wait for the vero when I can retire this unit at least to the office tv where it doesn’t have the responsibility of always performing for the family.

To me it looks like you don't have enough power, either on the Pi4 side to decode, or the mini-pc to encode.

Appreciate the solicited technical advice, less so the unsolicited parenting advice, thanks! You’ll be shocked to hear that hyperbole exists, I’m sure. I’m just trying to watch the Aristocats with the kiddo without them wondering why the screen stops mid song, stranger.

Before getting all crazy and changing the setup why don’t you try Wi-Fi. Yes Wi-Fi. Your cable might only be 100mbit and your WiFi may be faster.

Wi-Fi 5 can theoretically transmit data at speeds of up to 3.5 Gbps. And obviously WiFi 6 and 7 are even faster.

The Pi4 USB controller and network adapter share bandwidth. Do you have any devices on the USB port that could be causing collisions? I really can’t think of anything in that kind of scenario that would cause that sort of issue unless somehow you were using USB for video out…

I have a similar setup but my nfs server is not a mini pc.

You could try diagnosing if it's the network or if your mini pc is too busy (maybe out of disk i/o?).

If that's too hard, temporarly stop all other programs on the mini pc. Does it help?

Does streaming something from the internet to kodi work without freezes? If it's ok, then network is likely not the issue

Last but not least, does playing the same video from an USB stick work smoothly? If not, maybe the quality is too high or the video is x265

Kodi on my 2015 Nvidia Shield doesn't stutter for me playing back 30GB+ 4k files on a 1Gb network from an ancient (2012) AMD Athlon TrueNAS box. It could be network related, but you can test this from another machine (laptop, desktop, etc) or by using local playback on the pi. I have cheap network hardware, and have never needed better. All this is to say Kodi mounting NFS shouldn't need much bandwidth or high end gear. Perhaps the issue is on the playback side. Good luck!

Edit: and an

Thanks! Super helpful data point. I don’t have the same buffering issues streaming the same video to my desktop over nfs, so I’m leaning towards it being a pi4 bottleneck. Just plopped down for a Vera V so fingers crossed that’s the issue.

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
CGNAT Carrier-Grade NAT
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
HTTPS HTTP over SSL
IP Internet Protocol
NAS Network-Attached Storage
NAT Network Address Translation
NFS Network File System, a Unix-based file-sharing protocol known for performance and efficiency
NUC Next Unit of Computing brand of Intel small computers
RPi Raspberry Pi brand of SBC
SBC Single-Board Computer
SMB Server Message Block protocol for file and printer sharing; Windows-native
SSL Secure Sockets Layer, for transparent encryption

9 acronyms in this thread; the most compressed thread commented on today has 9 acronyms.

[Thread #918 for this sub, first seen 12th Aug 2024, 12:35] [FAQ] [Full list] [Contact] [Source code]

All these answers are wrong you want Stremio.

In my living room, buffering happens when the connection is only WiFi, but you are on ethernet already (which solves that for me).

pi4 libreelec

Have you considered getting one of these small Chinese "Android TV" boxes?

Please do not buy cheap no brand android tv boxes unless you know how to verify they are not running malware out of the box. This is a known problem and shouldn’t be recommended.

unless you know how to verify they are not running malware out of the box.

So why don't you tell us how to verify that?

Have you tried reading to your kid instead

Well maybe don't post about how your kid crys when they can't watch TV. And maybe you should have solicited advice from your pediatrician.

Your poor kid

I'm going to assume you don't have kids.

Unless you've had kids you don't understand that it is practically impossible to complete even the most basic tasks unless your child is distracted.

Staying on top of household duties while managing a child is challenging enough, but then add on work, study, and every other responsibility.

I've never met a single parent who shares your opinion.

I do have a young child, and where does op state they are a single parent. Yes throwing screens in front of kids is the easiest way for you to ignore them and do what you have to do, but it's not recommended and it's bad for their development.

I didn't mean OP was a single-parent. I meant I haven't met any parents.

In any case, are you telling me you haven't ever let your kid watch TV because you were too busy?

Nope, no tv, no phone, no tablet

How old?

7 months, crawling and standing they can't be left alone for more than a few seconds or they will pull themselves up and fall.

Just get a tablet and run VLC. Hardware transcoding is a privilege, not a necessity.

It’s not doing hardware transcoding afaik. This is the equivalent of running VLC, right? It’s kodi we’re not talking about jellyfin transcoding.

VLC will just do network transfer and decode on the software side without issue.

Jellyfin will default to hardware decoding.

Right. The architecture we’re talking about right now is a NFS hosted share going to a Kodi instance, not a jellyfin instance sharing to Kodi. Kodi does not transcode. It handles things similarly to VLC afaik.