I've given this a legitimate shot two times, both self-hosting and via a professional host and both times on I have massive streaming problems on a 1 gig connection.
It, on paper, has competitive features to Plex but Plex streams almost as reliably as Netflix does.
I self-host Jellyfin on an old HP ProDesk PC that came from an office selling unneeded equipment. It's connected to my consumer wifi router/switch switch via Ethernet, and I stream videos on my TV via the Jellyfin client on a Roku Stick (which itself is connected to my network via wifi). Jellyfin streams great on my setup.
I know that's not very helpful in improving performance in your specific situation, but I just wanted to add my anecdata that Jellyfin doesn't require beefy hardware or above-average networking to run well. Sorry that I don't have much insight as to what was causing the performance issues in your setup.
I have a lifetime Plex Pass, but I switched to Jellyfin years ago and never looked back. Well, I did switch to iOS at some point and the best app for it at the time was still in Testflight, but the ecosystem is a lot better now.
For those complaining about Jellyfin's performance, which I've not encountered, you should remember that hardware transcoding in Plex is paywalled.
(Made the initial switch after they added their streaming services to the dashboard, amongst other corporate decisions I don't want in a media server I host myself)
I have Intel NUC (i7 8559U) for Jellyfin server and 1gig connection. No shuttering issue in my home network, it run flawless in HTML5 Player, Jellyfin's ExoPlayer and MX Player Pro.
Likely the issue is the transcoding process, you would need look into that. It could be the CPU is not transcoding quickly enough, I/O bandwidth issue (CPU to hard drive or vice versa), QuickSync are not enabled in Intel CPU. Newer video codecs (HEVC/AV1), audio codecs, 10-bit, higher resolutions are a big factor in transcoding.
I run it on my laptop, and when I want to watch a new episode of a TV show, or a movie, I search for it on 1337x.to, find the mp4 with the most seeders, copy the magnet link, paste it into Transmission and then press enter. Within half an hour, the file is in the folder where Jellyfin knows to look for it. Then I open Jellyfin on my phone and watch the content in bed.
This works for me because I've never cared about hoarding a library of TV shows and movies that I've already seen. I just download what I want when I want it.
So instead of me having to go to find the magnet, and paste it in, this application monitors my shows, and when a new episode pops up, it picks up a release based on my criteria (quality, language, etc), sends it to qBittorrent, waits for the download, and puts it in a folder.
Radarr for movies, Bazarr for subs, Sonarr (mentioned above) for shows, and Prowlarr for search indexing.
Yeah, I've heard of it and it looks great. But it also means I need to maintain a media server (which costs me time and money, and is also a potential liability in terms of copyright mafia and script kiddies who find a vulnerability in it and end up on my network). One day I'll get around to building a proper setup, with automated deploys, isolated networking and secure hosting... but for now the least work is just downloading files one at a time when I need them, and otherwise just watching Netflix.
Frankly the motivation that will finally make me build this is that my mom is complaining about the streaming service fragmentation... each of her favorite shows is on a different service with its own $20/month subscription, and that's on top of the $100/month for cable. For now she's just password sharing, but when that stops working I'll get around to setting this up for her so I can manage it remotely. Or maybe by then the services will figure out they'd be better off just streaming everything free on the internet and splicing ads into the streams. You know, like TV...
No so. You could run it on your laptop just like you do with your other process. Sonarr would simply automate what you have been doing manually. No media server necessary.
I use stremio on phone or table when I need to relax, mainly since I have a thing with checking old videos from archive.org but you can actually use it for torrents as well.
I run Jellyfin on my home server, and this has been a problem for me as well. Even within my home network I'll have occasional stuttering while watching movies, despite the fact that I'm using a dedicated server with 128gb of RAM and 12 CPUs, with a 10 gigabit network card in a 10 gigabit switch, and I'll still get stuttering.
I've debated moving to Plex but I'm broadly against running proprietary software on a server (for reasons I cannot honestly articulate terribly well).
During transcoding, but I'm having a hell of a time disabling that. I've looked around for a configuration to just broadly disable transcoding, since pretty much everything I use to play JellyFin is libavcodec or ffmpeg based anyway and can happily decode stuff client side.
It depends on the client's (the one you are streaming to) range of codec support. If you are streaming to the TV that your TV don't have specific codecs that it can decode, then it will transcode to the TV specification. If the file is in AVC (2.654) but the audio codec is not supported by the TV, then Jellyfin will transcode it. If you are watching the stream via the browser (HTML5 player), it have a limited range of codec it can support hence the transcoding. If your source file are in HEVC/AV1, browsers don't have a way to decode it. Jellyfin's ExoPlayer also don't a way to decode HEVC/AV1 and limited range of audio codecs.
If you want DirectPlay, then it best to use the external player for it. You have to set it up in the setting in Jellyfin to use the external player. For Android, Jellyfin can DirectPlay to MX Player Pro. I use Jellyfin in my Android tablet and set MX Player Pro as external player, it works flawless without shuttering.
Also I learn that it is best to enable QuickSync if you have Intel. With QS, it can transcode effectively this way.
Edit I saw your reply to other commenter. Browsers ("web-native") does not support MKV, unfortunately. If you want to run it in the browser without transcoding, the file need to be in MP4.
Use the Desktop app or mobile app. Chrome/edge don't support the codecs needed, and jellyfin transcodes. The desktop app is chromium, but with the right video codecs enabled, on it. It's pretty nice.
I'm not certain, but I think it will avoid transcoding for certain "Web-native" formats that your client device can already play. For example, if you download an mp4 then you should be able to watch it on your iPhone without Jellyfin needing to transcode it.
Every file on my server is a raw blu-ray rip using an MKV container. I don't compress or transcode anything myself, everything is a raw rip from MakeMKV. I suppose I could write an ffmpeg batch job to convert them to MP4 if I wanted, but MKV is really convenient since it'll keep all the subtitle and multiple audio tracks within the file instead of a bunch of SRT files floating around.
Also, while a majority of blu-rays are h264, a non-zero number are encoded with VC-1 or Mpeg2, which as far as I'm aware are definitely not "web-native".
I really wish there was just a checkbox that I could click, or a setting in a config file I could change, that would just avoid transcoding and just send the file.
Apparently the overarching goal of Jellyfin is to always be able to "direct play" (no transcoding), but whether or not that's possible depends on each file and the client device. They have a comprehensive table of which formats require transcoding on which devices: https://jellyfin.org/docs/general/clients/codec-support/
Apple TV 4K (129 USD) + Infuse (10 USD/yr) is the perfect player for me. The only con is that it does not support anything atmos other than Dolby Digital Plus, but my setup is 5.1 only, so I don't mind.
Honestly, that sounds quite weird to me. I've been remotely running my instance with only 100Mb/s connection and it hasn't even struggled running 4K film. All this on a budget i3 9100. And I'm quite sure it should be able to run on even slower hardware if need be.
I misused the word "dedicated"; the server is actually used for lots of stuff. What I meant is that I didn't repurpose an old desktop or anything, it's an actual rack mounted server.
I run NixOS on there with a bunch of different services, though the only thing that comes anywhere near mattering resource-wise is JellyFin when it's transcoding.
A setup that I can now heartily recommend (after using it for 6 months) is Apple TV 4k and the Infuse media app[0]
It's able to find your movies and series on Samba shares (and probably other types of locations, too) and categorize, find subtitles, adjust audio and so on.
This assumes you've already got your media somewhere of course (like a file server on your LAN), but I bet 99% of the HN crowd has a home server anyway. And if you use torrents, you can dump the media there.
+1 for the Apple TV mention. I gave up and ordered one to use Infuse, might try out Swiftfin first though, for my Jellyfin setup. It’s always trade offs with the official Jellyfin clients, can’t get everything working 100% of the time with the same setup. I have an Android TV and keep having to switch between LibVLC and ExoPlayer depending on what I’m watching, not to mention the numerous bugs and clunkiness. Like for some reason I can’t wrap my head around, ExoPlayer Jellyfin can’t play ASS and has to transcode the whole file while ExoPlayer Plex can. When you seek before waiting for a previous seek to finish and start playing you end up with a broken stream where the local progress bar and time doesn’t correspond to what’s actually shown on screen. After trying Infuse on my phone, it seems exactly the kind of “just works” I’m looking for.
If you're pirating content, you should retain complete control and security over your setup. How does Infuse enforce its yearly license cost? There must be some telemetry at the very least, which is exactly the issue that got Plex into this situation and why people would do well to avoid it (unless of course you're just watching your own legal copies of media).
It's apple only (tvos, ios, and macos). The yearly subscription is for enabling formats and resolutions, I believe. They don't have a server part. They just scan your sources (smb shares, cloud drives, plex, jellyfin, emby,...) and present a library. My setup is Jellyfin (old Mac Mini with ubuntu server) + Infuse on Apple TV as the player.
Used this with my Roku to stream movies locally, and it worked OK for the most part, but on more than one occasion it had a hard time with larger video files, often causing audio sync issues, weird freezing, or subtitle failures. I tried both the Jellyfin app and the Emby app on Roku with similar results; not sure if it's Jellyfin or the Roku app.
I've since switched back to Plex which streams flawlessly on my local area network.
I tried Jellyfin vs Plex, I forget why, but it’s like how I wound up buying a Subaru because on paper it looked like it checked all the boxes. It does technically check all the boxes but it’s still unpleasant to drive in a myriad of little ways, just like Jellyfin. Checking boxes doesn’t add up to a pleasant user experience.
As far as UI/UX is concerned their tvOS app is in a really rough shape. The web UI has a fairly reasonable program guide (edit: for Live TV), while the app doesn't. Also navigation in the app doesn't feel polished at all unfortunately.
I think the Apps are inconsistent, some of the newer Apple ones are great, the computer ones are first tier, but some of the multiple TV OSes are lagging.
I wish there was an open hardware option that was a target for devs to support for projects like Jellyfin but also funded them when you bought it.