They don't list Infuse on there, but it's pretty great in its support of pretty much everything. The Apple TV has certainly surprised me by being an excellent platform for in-home streaming.
Jellyfin is a fork of Emby. Emby used to be open source, when it went closed source Jellyfin was formed off of it.
AV1 playback works on devices that support it. You'll need server-side transcoding for devices that don't. Jellyfin can do this by shelling out to FFMPEG, which can optionally use hardware accelerated codecs if they're available to it. So basically, "it depends", but Jellyfin itself supports AV1 media.
My media center is a laptop with a broken screen, running Arch Linux and Kodi. Kodi has a web interface that you can stream to. Why might I want to add Jellyfin?
Because you can give your friends a login, they can log in from anywhere, and watch your content.
Same for you. You can log in from anywhere and do that. Kodi is more of a local thing, I find the two compliment each other very well.
There are native apps for jellyfin as well. Loaded up and hit play.
I guess you can probably do this with Kodi but it hasn't been designed from the ground up for this use case.
Same here. I never could figure out why I'd want to use anything else. Plex, Jellyfin, Emby, whatever. Nothing beats the simplicity of a couple of terrabytes on a local drive, or if you want to get fancy, a NFS share.
Honestly, Kodi is even a little more heavyweight than I need, but I've been using it since long before the XBMC->Kodi name change and have been happy with it.
The most useful part of Jellyfin is on-the fly transcoding to whatever bit rate I want at any particular time, no matter where I might be. I've watched stuff off my server on a train with terrible connectivity by setting it to 360p. If you only watch at home, then it's probably not that useful to you. I also like all the library features and tracking my per episode watch history for shows.
Jellyfin is pretty good, and I've been using it in place of Plex for the last few years. However, I feel like there are some underlying limitations that I just can't get past:
1. the UI jank. The thumbnail tiles are slow to load, even on a local network. Searches and filters flicker as you type and take a while to return. Scrolling fast in the web UI gets choppy/laggy.
2. The native app (at least in the case of Apple TV) is either nonexistent or terrible. I've been using Swiftfin since it was one of the first alpha versions, and it constantly lost pairing with my Jellyfin instance. When it did work, which was very cryptic and usually required re-enrolling the client every time, it would randomly fail to load things, and the UI was very choppy as well. I haven't used the native apps on other platforms, but I imagine they are equally or more janky, because the Apple TV is comparatively very beefy hardware-wise vs. most other platforms.
3. The polling for new media is slow. I upped it to 10 minutes (the quickest possible setting) but I shudder to think what a full scan of a media library every 10 minutes is doing to my disks. Why doesn't it use file watchers and webhooks for new content notification?
4. The homepage has very little actionable info and doesn't work for browsing. It's not like Netflix or any of the other services where you can boot it up and see a bunch of different categories, as well as your "list". It has playlists, but you have to drill down to see them. You can go to "Movies -> Suggestions" and it has a little bit, but nothing like Netflix does. No real recommendation engine.
5. You have to maintain your own trailers or use an app like Infuse that can download its own trailers.
6. You have to separately configure tiles to be rendered if you want a nice seeking experience where it shows a live preview as you scrub through the timeline.
7. Movies and TV Shows are separated even though pretty much every other platform doesn't separate them, which requires you to click into one of 2 options before you can do almost anything.
That said, it's still far better and less janky than Plex was before I switched, and Infuse actually plays back HDR / Dolby Vision content correctly.
Does anyone else have qualms with Jellyfin? And how does Plex compare to any of these gripes?
Plex has a lot more polish. However, Plex also tries to shove stuff down your throat. If you want to share your meeting with friends, you need to have a Kodi pass or some bollocks. Jellyfin is 100% free.
Certainly it is not as polished though, but I managed to use it with my friend who are not very technically literate, and it works very well for them.
Every release improve the polish a little!
Edit: New media shows up for me pretty much straight away without having to do anything. Not sure what's happening there for you.
For live tv listings, there are companion apps like Ersatztv and Tunarr (easier to use than Ersatztv but less features) which feed into the live tv section in Jellyfin. You create 24/7 “tv stations” running whichever collection of local media files you wish to have in a “channel”. It’s great if you plop down and can’t decide what to watch, or want to replicate the look and feel of childhood cartsoon, right down to inserting 90s ads in between episodes.
You can use Ersatztv to create an automatically updated playlist, based on a Trakt or IMDB list. Back in the day, there was/is a a cool addon for Kodi called “PseudoLiveTV” and these apps replicate this functionality.
So you can have an always updated Christopher Nolan collection, Halloween movies, westerns, 24/7 90s cartoons, BBC nature documentaries or whatever.
You can pull any imaginable tv or movie list from Kometa using Ersatztv:
It's a sign of the times when someone misunderstands what "Live TV" means. lol
So I am literally streaming ATSC channels from my roof antenna with JellyFin. I didn't feel like paying a subscription fee (and anyways - no paid service has exactly the right XMLTV format JellyFin expects), so I wrote a scheduled task which scrapes the listings and ingests them with the REST API.
I didn’t misunderstand what you meant. I just meant you can “hack” the live TV feature of Jellyfin, and use it to create a “live” tv experience from local media.
Hm, that sounds vastly jankier than Plex per your description. I have never had to wait for any UI element to load in plex, local or remote, including thumbnails. Everything is almost always instantaneous. I've tried the demo instance of Jellyfin a few times to see if it has improved and my impression was that it's a complete joke, not a serious plex alternative.
I have Jellyfin on my local network and it works like a dream. I used to use Plex and, at least for my needs, one was a straightforward replacement for the other. The web UI is clean and snappy and just works.
I have the opposite experience. I tried to setup Plex a few times but always ran into issues with getting ads, having to make a Plex account, and dealing with free/paid features. I just couldn't get it to work without ads and all the hassle. Instead I installed Jellyfin on a NUC running Docker, downloaded the app from the play store onto my TV, and it just works, no delays, no lag.
As a jellyfin fan myself, I'd like to address a couple of your points.
For 1, 2, 3(?), 4, you appear to be referring to the Apple TV client, which is written in an entirely different language and frameworks, and entirely different authors. (This is due to the excessive limitations on languages put in place by apple in their ecosystem).
Jellyfin has dozens of other platforms.
In regard to #3, Jellyfin does use file watchers.
For #5, there is a setting to grab trailers. Additionally, if the default metadata providers aren't getting you what you want, there is a baked in library of more than a dozen alternative metadata providers and a variety of other things you can use to augment what your media library provides.
For #6, I'm not sure if you're just referring to the Apple client again, but I'll add that the "Jellyscrub" feature is turned off by default, but if turned on, it will automatically generate video scrub images.
For #7, idk. I guess it's a stylistic choice? Why is there Sonarr and Radarr?
Anyway, I'm just a user, but, I'm also a Jelly-stan. So, I'd highly recommend you browse through the configuration options a bit more, particularly in regard to plugins and the many settings available in each of libraries' individual configurations.
Thanks for the detailed reply, I’ll look through my configuration and see if I can find where the issues are with the file watching. You’re right, many of them are likely because I have to use Infuse, due to the native Apple TV client being so bad.
When I say there is UI jank and lag, what I mean is that content re-renders and shifts around when you search, results flash in and out with loading animations. the placeholder tiles are clearly visible and I can see the tiles loading in when I scroll. This happens in both the web client and Apple TV. I believe the issue is the API design that’s dictating how clients fetch and load data, some virtualization in the frontend implementation, and a lack of prefetching/caching.
I have a 10 gig network to a very fast NAS setup and a very small media library. the image assets should be able to be cached/streamed/prefetched from the server so that I do not ever see a placeholder tile (maybe if you jump ahead like 1/2 the library, then that makes sense).
Perhaps this is one of those things where people haven’t seen what’s really possible performance-wise from a local server and they’re OK with something that feels like a webpage. But nothing feels like a native app that just has all my content there all the time. It feels like a remote service even though it’s < 1 ms away on a hardwired multigig network. Does that make sense? Do you agree with that?
It's not really fair to blame Apple for those dev's poor product, nor for Jellyfin's choice not to support an iOS client of their own. Plex has a fantastic iOS app, the Plex Music app is one of the prettiest music players ever produced. VLC has a fully-functional iOS app. Home Assistant's iOS client is indistinguishable from its Android client. The list of self-hosted apps that have great iOS companion apps is long and diverse.
This myth that Apple's ecosystem is so stifling isn't shared by the expansive developer community who work on Apple devices. It's far from perfect, to be sure, and they may overreach with some of their more stringent security and privacy controls (but none to my knowledge outright prevent apps like Jellyfin from being competitive). If Jellyfin wanted to release a high-quality app for Apple devices, there's nothing really stopping them.
I don't mean to suggest that your primary motivation for your opinions re: Jellyfin on iOS are the result of blind fanaticism, I'm certainly not saying any of this out of some tribal loyalty for Apple, either. The frequent partisanship surrounding Apple and Microsoft/Android has always been strange to me. Among the devices I use every day are a custom-built Windows 11 box, an M2 Mac Mini, an older PC running PopOS (Ubuntu-based), an iPad, and a Google Pixel. They're all tools, and they excel in their own areas. I like some things that aren't available to all platforms, and attempts to find reasonable alternatives don't always prevail. I like my Windows box for MS Flight Simulator, Remote Desktop Manager, and Visual Studio. I like my Mac Mini for Logic Pro, native Bash terminal, and DEVONthink. I like Linux for its infinite versatility and freedom. I like Android's customization, and Apple's unbeatable device/OS integrations and sync.
Apple TV doesn't support embedding a web browser (WKWebView/UIWebView), which means that the client app needs to be completely re-implemented. For a small team of volunteers this can be quite a challenging undertaking, and will take development time away from other apps.
It is in fact extremely limiting, since you must have a Macintosh to create a iOS app, meanwhile you can create Android apps on Windows / Macintosh / Linux
I have a very different experience from most of your issues, to the point where I think something is wrong with your install.
I can scroll through a page of >1000 movie cards and there's no choppiness or lag at all in the webUI. The cards have blurhash placeholders until the actual thumbnail loads, which is always very quick.
Swiftfin for the Apple TV is admittedly very barebones and can be choppy when scrolling through big lists, but it has never lost pairing or failed to load anything for me.
New media shows up pretty much immediately for me. Did you disable the "real time monitoring" setting in your libraries? Jellyfin will use something like ionotify or whatever your platform/fs supports when it's enabled.
"separately configure tiles to be rendered" is one checkbox, assuming you're talking about trickplay images, which was a recently added feature and I think is enabled by default for new installs.
Having placeholders is part of what I’m talking about when I say lag, and jank is about dropping frames so that things do not appear smoothly animated. Not everyone is as sensitive to jank or they’re ok with it, but if you use something that lacks jank in the animations it feels better even if you don’t know what jank is.
The media detection thing might be related to Infuse and not to Jellyfin itself, since it sounds like everyone else isn’t having this issue, which is good to know.
What sort of hardware are you using to do transcoding of the content on the source box? You could try adjusting the quality (or type) of the transcoding to potentially improve this. Like, perhaps you are trying to transcode into a format for which your video card doesn't have built-in encoding? (Like, nvenc units on an nvidia chip, if that's what you have.)
You could also try setting up directplay, if your stack supports that.
Lastly, it might just be a limitation of your host hardware. What are you running your jellyfin server on?
I use it too and also pay the subscription. Though I only connect to a local synology SMB share with it. Am I missing out by not running jellyfin and hooking up Infuse to that?
Infuse is generally really good, but I wish it had a way to expose slightly more power user features such as: viewing detailed file info (codecs, resolutions, audio-video bitrates, stream info for all streams), ways to create arbitrary dynamic playlists/folders based on conditions, and viewing current stream debug info (MB/s, cache fill, ram usage, disk usage etc).
Any debug info would be helpful when some files seem to kinda work but then crash Infuse. For example some 4k/6k/8k ProRes content at around 800Mb/s. Network/NAS isn’t the issue as it’s hardwired 1Gb/s. So then I don’t even know if some specific variation of ProRes (or every) is just unsupported on the appleTV and it goes into software decoding, or whether the AppleTV is oom-ing, or what exactly is wrong.
Side question, something I've sometimes wondered - why do people want trailers? I only have things in my collection that I chose to put there, so I already know what they are. Not trying to be snarky, I'm honestly curious.
People making use of autodownloaders or just with very large collections generally aren't going to know everything that's in their library. It's also just easier when you're trying to decide what to watch with a group.
I have to agree on #7: it's pretty annoying, especially for series where there's both TV shows and movies related to them. For instance, The X-Files: there's 11 seasons of shows, but also 2 movies. A better example is Star Trek, with a bunch of different TV series, plus a bunch of various movies related to the different series.
You can put these into "collections", but it'd be nice if my library could just have a "Star_Trek" directory and then subdirectories with all those things inside, and have it automatically sorted out by JF.
I mean, I don't disagree that those things are silly but I haven't had to keep turning them off. I turned them off once, years ago when they were introduced, and they have never come back. I don't find that to be so onerous that it has kept me from enjoying the software. I have my misgivings about the direction the company is going, but at least for now they haven't ruined the core use case so I'm content.
I’m not forced to use any of those and when turned off, never came back on. This is a commonly mentioned con by jellyfin…proponents, but I fail to see how turning a setting off is more cumbersome than the jellyfin setup as a whole. My users and I are more than satisfied with plex and their updates
Jellyfin is not able to group series together and on top of that shows everything in random order, why bother with it when there are alternatives that can do that?
I have one folder with movies and series. It shows as a randomized mix, maybe it uses something like modification time by default? It's definitely not by name.
I have the series in their own folders. I tried to do a more nested structure to no avail. After a day of attempts to fix it I switched to Plex and it despite having its own quirks just worked fine.
Actually after reading it more carefully I probably see why it didn't work for me, but the notes in the page are bizarre:
* Avoid special characters such as * in M*A*S*H, use MASH instead.
Since when a common ASCII character is a special one? What about more common unicode characters I use?
* Do not abbreviate the Season folder with S01 or SE01 or alike.
I.e. if I put anything not in the folder named "Season XX" it won't work? Ugh... really?
* Season folders shouldn't contain the series name, otherwise Jellyfin can in certain cases (Stargate SG-1 due to the dash and one, for instance) misdetect your episodes and put them all under the same season.
Well, how about to fix it?
* Episode numbering for specials may vary from metadata provider to metadata provider.
Very helpful, so the "Series XX" required above won't always work.
And even if everything above fails why not to sort by name? It should not be hard for any engineer, right?
Jellyfin feels like its almost to where Plex was 5 years ago. They are catching up fairly quickly and I think I wouldn't bother with a Plex pass if I was coming in completely fresh.
But it is not as good as Plex currently. I have a lifetime pass and there is no reason for me to switch. I personally am fine with Plex adding features, so long as they are not taking anything away. They've had a couple missteps but absolutely nothing that would make me want to switch to an experience that is definitely worse.
I'll give Jellyfin 3 years and then reevaluate and see how I feel.
Plex uses cloud-based authentication, which means Plex Inc. is holding the keys to your library. I switched to JellyFin because I was not comfortable with that arrangement.
What meaningful keys do they hold to my library if everything is sitting on my hard drive waiting to be switched over the moment something better comes along or Plex makes themselves worse?
As far as I'm aware Plex media server still has the option to whitelist subnets for auth bypass. I don't know if there is an option to do purely local authentication, but I don't believe it's accurate that the company is holding the keys to your library.
but it's still on my hard drive. if i can't log in to plex for some reason, i'll install jellyfin. or mount it as a network drive and play the files with VLC. it's not like they're locking away my content behind their authentication, all they're locking away behind that auth is my ability to access my media through plex.
Are they not also injecting ad-supported streaming content into your library by default? Yes, there is an option to disable this, but it is the default and needs to be disabled at the user level (afaik).
This is introducing a distraction to the point and is entirely unrelated to the point being made. Voice this complaint as a top level discussion if you actually want it to be discussed.
Fun fact: Jellyfin runs natively on Windows. Combined with something like Cloudflare Tunnel it's probably the easiest way to host a media server without needing to be a Linux admin.
Cloudflare Tunnel can be authenticated via other means like JWT, but that is definitely a non-starter since the apps don't support it. Tailscale would definitely be better.
I haven't tried it with Cloudflare specifically, but I believe you should be able to just put the domain name in as the server address in the mobile and TV apps.
Oh I see. I confused Cloudflare Tunnel with Cloudflare Access.
Yes Cloudflare Tunnel can work with Jellyfin apps, but: 1) this exposed your Jellyfin to the world, and you are one vulnerable away to get owned, and 2) like other sibling posts mentioned, this is against their ToS to host streaming service on free plan on their platform.
I can run this via Kodi's jellyfin plugin, via OSMC on a raspberry pi, on my living room TV. It automatically uses my tv remote, and says in big letters "TV Shows" and "Movies". Anyone at my house can use it, with ease, even the absolute least technical.
Jellyfin's "management" of my media catalog strongly drove me away from Jellyfin. It was terrible at dealing with seasons of shows, with dealing with subdirectories. So much frustration.
Casting from my phone also got de-synced & broke a lot. I couldn't find a good way to skip/scrub forwards or backwards a little bit. Sometimes the themeing would break & the app became unusable without restart.
It was really really cool having jellyfin-mpv-shim running on my desktop, and Chromecast elsewhere. But Jellyfin was straight up not working for me, not listing a bunch of my media, not making it navigable, and the Android app's dodginess all ruined things for me. I went back to UPnP/DLNA, whose apps are a little cruder (Gerbera for MediaServer, BubbleUPnP for control, Rygel PlayBin for MediaRenderer), everything basically just works and it's baked into many devices/tv's.
I tried Kodi a bunch of times. Nobody else in my house would/could use it. Half the time I’d end up stuck in some weird modal menu I couldn’t get out of, so I can hardly blame them. Its ui is really weird.
Jellyfin fixed that. Other people in my house use it easily, a friend uses the web ui over Tailscale, and my messing-with-tech versus watching-things ratio is finally looking good.
For my personal watching? Almost agreed. Jellyfin does make it a little more interaction free to watch on multiple devices and to binge watch without interruptions an entire series.
But I can live without that.
The one thing it offers that folders do not is a simple way to interact with the video library when guests are using it.
They can grab a mouse and meander over the available shows with no explanation and watch what they want within minutes of being shown the link without exposing my nas to them or giving them the ability to alter my media files without my knowledge.
I use Jellyfin and it just works but had problems with the client on iOS. Vidhub is a reliable client solution I've found, it's pretty inexpensive. Maybe the Jellyfin client is fine I didn't spend a lot of time with it.
I tried jellyfin after my most recent nas upgrade (pi5 w/ external drives). It seemed _really_ nice, but it also worked extremely badly for my specific use case. It seems to want a specific folder structure for all of your media, and its layout conflicted badly with my existing conventions. My partner has our media collection obsessively organized by country, then by genre. Jellyfin made some kind of attempt at categorizing this, and just ended up showing us tons of previews for things we did NOT have (eg, our British folder was interpreted as us having The Great British Baking Show, which we do NOT have). It seems like every media solution wants to ignore your folder structure and present some fake hierarchy, which really doesn't work at all for me.
We ended up buying an apple tv and installing the vlc app which connects via smb and is happy to show us the original folder structure.
Well this is very timely and relevant. I usually access jellyfin on my network devices like `http://homecloud:8096` but now that I have been exploring adding other services, remembering the ports is getting tedious. I also am trying to be forward thinking about external access in the future.
Looks like I could use some combination of Caddy, Nginx Proxy Manager, Tailscale? What's the simplest setup?
im running a pihole so i take advantage of lighttpd that it uses, with the mod_proxy configuration. i can then do something like the following to have a friendly url on my local network
I’ve been using caddy, very easy to set up reverse proxies, and it generates a local root CA you can install on your machines at home so you get SSL for free. Nothing you couldn’t also rig with nginx, I just enjoyed the simplicity
I’ve got pihole running so that’s my home dns server, I have custom domains with a home-only TLD (I think “.internal” is cleared for use now?). So something like https://plex.homecloud.internal can load up plex, I can only assume jellyfin could do the same.
I’ve actually been using ZeroTier instead of tailscale for external access and I’ve been very happy with it, but I know lots of people love tailscale and I’m sure it’s great too
Traefik has that same auto ssl with LE that caddy does. That's what originally drew me to caddy - which I still use for stuff - but I just recently started working on something configured for Traefik out of the box and discovered it was pretty much the same experience. Just FYI.
I just got mine working a few months ago on FreeBSD using cloudflared. I paid for a cloudflare DNS and run cloudflared (in a jail, which is optional). Here is a redacted example of my tunnel.yml file (should work similarly on other OS's)
# cat /root/.cloudflared/fbsd0_tunnel.yml
tunnel: <redacted UUID>
credentials-file: /root/.cloudflared/<different UUID>.json
ingress:
# Example of an HTTP request over a Unix socket:
- hostname: <redacted full cloudflare URL, no port appended>
service: http://localhost:8096 #this is where jellyfin would normally run
# Example of a rule responding to traffic with an HTTP status:
- service: http_status:404
There was a debate here in the comments a few months ago about whether it's actually forbidden by their ToS. Lots of people said they don't care if you use it for personal streaming and aren't pumping a hundred gigs per day.
I've been using nginx for more than a decade now, before that I used lighttpd. Both work well for the purpose of reverse proxying services like Jellyfin. I do not use Caddy because I prefer to keep certificate management centralised in its own (Proxmox-managed) container. I have about 50 services running in Proxmox-managed containers (some containers run more than a single service, others are service-specific) proxied through a single nginx instance, the setup is reliable and performs well. Since nginx is widely used there is usually a config file available which can be used to base your own installation on. Here's what it looks like in my case:
# kijkbuis.example.org
server {
listen 80;
listen [::]:80;
server_name kijkbuis.example.org;
include /etc/nginx/snippets/enforcehttps.conf;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name kijkbuis.example.org;
ssl_certificate /etc/letsencrypt/live/kijkbuis.example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kijkbuis.example.org/privkey.pem;
set $jellyfin 192.168.1.51;
resolver 192.168.1.1 valid=30;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
# the google-related domains are there to enable chromecast support
add_header Content-Security-Policy "default-src https: data: blob: http://image.tmdb.org; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com/cv/js/sender/v1/cast_sender.js https://www.gstatic.com/eureka/clank/108/cast_sender.js https://www.gstatic.com/eureka/clank/107/cast_sender.js https://www.gstatic.com/eureka/clank/cast_sender.js https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'";
location = / {
return 302 https://$host/web/;
}
location / {
# Proxy main Jellyfin traffic
proxy_pass http://$jellyfin:8096;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
# Disable buffering when the nginx proxy gets very resource heavy upon streaming
proxy_buffering off;
}
# location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/
location = /web/ {
# Proxy main Jellyfin traffic
proxy_pass http://$jellyfin:8096/web/index.html;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
location /socket {
# Proxy Jellyfin Websockets traffic
proxy_pass http://$jellyfin:8096;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "...
I use traefik to proxy to containers, pihole to provide dns for "*.mydomain.com", and tailscale to avoid opening ports
The end result is a valid HTTPS experience inside the network and outside (as long as tailscale is active on whatever device I'm using). And if I decide to ditch tailscale it's just a matter of mapping ports 80 and 443.
The simplest setup is to run jellyfin and tailscale in docker with docker compose utilizing tailscale serve. You will get automatic https and a simple reverse proxy with tailscale serve.
I think they are may be simpler solutions but there is SWAG
https://github.com/linuxserver/docker-swag
that have built in config for proxying Jellyfin. It have all the necessary settings for proxy and built-in Letsencrypt client so you do not have configure it yourself.
I have a script written that do `docker compose down && docker compose pull && docker compose up -d` that runs every now and then so it keeps itself up to date (SWAG, Jellyfin and others).
Again there are probably easier options to get it running but in my case most of it runs on docker so (in theory since I had no major outages just a few times I migrated hardware) moving/restoring from backup is relatively easy - copy all the files and run `docker compose` in each directory.
I use Jellyfin for my 32TB media library of 1600 movies, 70 TV shows (5500 episodes), 500 music albums, and 10,000 books. It works perfectly fine with no issues or slowdowns.
I’ve got 90tb of Linux isos consisting of tens of thousands of files on 168tb of spinning rust. I’m running reasonably powerful hardware though (5600x + 128gb ram), suspect GP is bottlenecked by hardware
Yeah, my collection isn't that big, but my friend's Jellyfin which I use all the time has 4000+ movies and 400+ shows (11,000+ episodes). Works just as well as my significantly smaller collection.
I have ~2000 movies (21TB), 435 shows (22TB), ~26000 songs (1TB); all running on an Intel 4770k w/ 32GB of RAM, a SATA SSD for the Jellyfin database, and a Tesla P4 for transcoding. It works well now and even worked decently before switching to the Tesla P4 for transcoding.
I came from Plex a few years ago after their login server had an outage and I was unable to access the media that was on my local computer. Before that I'd been annoyed by them pushing TV shows and since then I've heard about them giving reports on what people have watched. All in all I'm happy.
My setup is Jellyfin in a docker container running on a debian machine with an i7-1165G7. It's got a mounted NFS link to my Synology NAS with all the files. The main client I used is Android TV running on an NVIDIA shield.
All in all, it's been great. I've got a few nitpicks---loading on ios app isn't as fast as I like if I try to jump to the middle of a movie---but all in all it's great for just watching movies, tv shows, videos, &c. All without any link to the outside world. It's lovely.
They also are producing new features at a nice clip and have a strong community. I expect it to keep getting better and better, but honestly even if it never changed I'd happily use it for years.
Every once in a while I knock around the idea of migrating off Plex and onto Jellyfin. For a long time it was that sharing libraries with friends was a pain, but now literally the only thing stopping me is that they don't have a ps5 app, and that's how one of my friends uses my plex server lol. If they get one, it's all over for plex (in my friend group).
I mean I could also just tell him it's 2025 and there's 700 ways for him to use plex on his tv, but it's also just kind of funny to me so I keep it going.
Keep in mind that you don't necessarily need to "migrate" all at once. There's nothing wrong with running both Plex and Jellyfin pointed at the same media library, and using whichever one has the better client for a particular platform.
I tried this but using two servers means you lose or fragment all your watch history. If I have to remember where I am in a series myself, I might as well just use VLC.
There is JellyPlexWatch, which will sync the databases between jellyfin and Plex. I've been using both next to each other for a while with that setup to sync watch history. Honestly I haven't been able to move over to Jellyfin after the drama around the integration of skip intro, but I hope things get better.
This isn't that important a feature most of the time, because you can just press the skip-ahead button and skip the next 30 seconds. You might see some of the intro, but big deal
There is one big exception though: if you're watching Star Trek: Enterprise. The "skip intro" feature is invaluable so you don't have to be subjected to that truly horrific opening song.
We contacted Sony asking about creating an app. The TLDR of that conversation is they said "Don't call us, we'll call you". Open source never really mattered, they're not interested.
I love Jellyfin too, but there are a bunch of rough edges I run into often, like:
Chromecast support is flaky. Most of the time when I cast from my Android phone, the app immediately "forgets" that there's something playing back on the Chromecast (even though it's still connected to it), so I can't control playback at all. It's also hit or miss if the Chromecast will successfully play the media if Jellyfin decides it needs to transcode it.
So I got a little NUC-like box (Intel N100), and installed Jellyfin on it (it was previously running on an old 2012 Mac Mini running Linux). I connected it directly to the TV and installed jellyfin-media-player on it, set to auto-login and start X on boot, with a minimal session that just runs JMP only in fullscreen mode. I use JMP on my laptop, or the Android app, to control it. JMP will randomly lose its connection to the Jellyfin server (even though it's running on the same machine), and won't try to reconnect, so nearly every time I go to use it, I have to ssh in and restart JMP so it reconnects.
On top of that, I get occasional audio dropouts when watching 4k content, and sometimes see 4k video stuttering (yes, hardware decoding is enabled for playback, and I've verified in the logs that it's being used). At those times, the box is around 40% idle, and intel_gpu_top shows that the decode and render bits have what I think should be more than enough headroom to avoid that sort of thing. I understand JMP uses libmpv for playback, so out of curiosity I tried playing video using mpv directly, and somehow JMP's player uses about 50% more CPU than mpv standalone does, and I don't hear any dropouts or see any stuttering on the same media. I get that a video player that's embedded in an application might have some overhead, but 50% is a bit much.
I get that Jellyfin is maintained by volunteers (I also maintain open source in my spare time, so I know how tough it can be to be responsive to user requests), but these issues are quite frustrating. I don't want to use something closed like Plex or Emby (which may or may not be better), so it's still the right trade off for me. And what it can do is truly amazing. I love that I can play things while I'm on the go, VPN'ing to my home network, and Jellyfin will transcode down to a crappy-enough bitrate to fit within the confines of my garbage Comcast upload speed.
> Chromecast support is flaky. Most of the time when I cast from my Android phone, the app immediately "forgets" that there's something playing back on the Chromecast (even though it's still connected to it), so I can't control playback at all. It's also hit or miss if the Chromecast will successfully play the media if Jellyfin decides it needs to transcode it.
This might be more the Chromecast's fault as I've had a similar experience with Plex.
You should check out jellyfin-mpv-shim, it basically hooks up mpv to Jellyfin's cast system, so you can control mpv from other Jellyfin apps. I have a setup similar to your NUC and it works really well.
I came from Kodi and Jellyfin has been great. I just run it on Ubuntu on a mini PC with an external hard drive and its working great. Stream to my TV with an nvidia shield.
I love jellyfin but their web model is just bizarre.
Why on earth, when you go to 192.168.whatever:8096 does it ask you what server you want to connect to? Like.. THE ONE SERVING THE PAGE.
Just now I decided to connect to Jellyfin over tailscale and it's asking me to add a server; on 100.xxx, which is the jellyfin server which served the UI. And it doesn't seem to want to accept any answer as to what the server URL is.
While the most common jellyfin distribution bundles the server and web UI together, the web UI (jellyfin-web) is a separate project from the server (jellyfin) and can be used to connect to multiple backends (which can run on the same or different hosts), which is why that functionality and UI is there. For what its worth, the web client should be autodetecting the server it was bundled with and using it without asking you each time. The only time it didn't do that for me was when my network was misconfigured and some requests were getting swallowed, which confused the client and caused it to fall back to the server-connection UI.
> Why on earth, when you go to 192.168.whatever:8096 does it ask you what server you want to connect to?
This lets you connect to and play another friend's Jellyfin rather nicely. I think it's also so the HTML and JS that forms the web interface can basically be the app as well.
> And it doesn't seem to want to accept any answer as to what the server URL is.
Should be "http://192.168.100.xxx:8096" - make sure your jellyfin isn't just set to listen on localhost only though.
If you can connect to a friend's jellyfin, you can also get the UI package delivered from the friend's server.
They've sort of conflated three different ideas - one, the non-browser clients are separate and need a way to select multiple servers from a common wrapper app; two, for development purposes separate the server of the UI package from the backend being accessed; three, have a server based application.
None of these items are uncommon, they are just commonly solved by making the separate front-end server an exception rather than a weird and senseless default. Most people solve this by making the dev mode case an exception.
Moreover, why not just add a button to the UI to automatically connect to the _UI serving server_ instead of having the user type it?
I love jellyfin, but this stuff is just terrible design for out of box experience or connecting from a new client instance, and it breaks when you're traversing a network boundary with something like Tailscale.
Just for what it's worth, I've never had that screen pop up on my Jellyfin instance. I'm just using the official OCI image with a pretty boring configuration. Maybe there's something weird going on? I don't think it's expected in the basic use case.
$ podman run --rm -it -p 8096:8096/tcp jellyfin/jellyfin
And I get the "Welcome to Jellyfin!" page, which lets you set the language/setup a user account. So I think in general if you are just running the OCI image it is not typically expected to see the server list. (I'm sure it's still possible to get to, and presumably you can wind up there if some RPC fails.)
That said, I might've found a clue: if you re-run it, you get another randomized hostname, and then you get the server select page. If I clear cookies and reload, it again skips the server select page. So it seems like if you have the hostname of your jellyfin instance change, say, by starting a new Docker container with a different name, but have it accessible at the same place, that might cause this weirdness.
Other issues may include improperly configured reverse proxies. (If you're using a reverse proxy, you should make sure it's configured right for Jellyfin's websockets and CORS usage and potentially some other stuff.)
Because they separate the client from the server. You can connect to any other local instance of jellyfin locally, not just the one that is served at the current address
> Why on earth, when you go to 192.168.whatever:8096 does it ask you what server you want to connect to?
I don't know what the answer is, but I ran into this when I was trying to harden my systemd settings. I'll link my override below and maybe someone can give something more conclusive (and any suggestions to my override or for other services are greatly welcomed. I'm happy to add even ones I don't use). Where I hit this error was when messing with RestrictAddressFamilies, which are network socket addresses. For example, when I restrict AF_PPPOX or AF_UNIX I get that issue. IIRC I also hit that issue when I had moved a file, but I forgot which one (I noticed it got autogenerated again). So I suspect it has to do with access to some file location where it stashes a config file. Fwiw, this works with tailscale just fine.
I have the exact same setup, with tailscale I can watch my media from anywhere on my phone or web. Highly recommended and I honestly do not understand the criticism.
I made the transition the other way around. I tried Emby, then Jellyfin, and finally Plex. Plex is just much better, especially with Plex Pass. The apps are everywhere and they just work (Tizen, iOS, web, etc.). The Jellyfin apps are subpar, poorly translated, buggy, and not available on all platforms (looking at you Tizen). Plex is basically Dropbox in the infamous Dropbox HN comment.
I was a Plex user for the longest time, with PMS on a Linux box and the Plex app on Apple TV and iPhone. However:
* It's always been quite slow and flaky. Library not scanning things, media library not connectable, etc.
* Often very long delay from starting a show until it actually plays. Often very slow scrubbing/skipping.
* The automatic subtitle downloading never works. The manual subtitle downloading never works.
* The UI was getting on my nerves trying to offer "recommendations" — I download my own stuff and don't need an app to try to push my own media through some kind of algorithm that's broken — and constantly promoting the Plex streaming service.
I got fed up and set up Jellyfin with Infuse as the client. Now shows start immediately with no buffering delay, never have any glitchy library issues, and the subtitle downloading just works.
My main issue is that Jellyfin's matching can be quite poor. It often doesn't understand when episodes belong to a show. Also, Infuse's UI is pretty bad and doesn't align at all with how I think media should be accessed.
Bemused by the number of people complaining about a free and open source project. A quick review of the git history tells me that it’s maintained by a very small group of people who generously work on this in their free time. Luckily jellyfin does accept PRs, so if you think the project needs improvements, then perhaps folks, you can do something about it
Being free does not exempt a project from criticism. It's not like they were yelling about how terrible the project team was, just saying the issues they were having when trying to use it.
Same thing that praise does. It's a discussion board, there's nothing wrong with people discussing the shortcomings of a project as well as its good points.
Agreed, but that’s not the point I’m making here. It’s not like this is some closed-source commercial product where the community can’t do anything about bugs/lack of features. My observation is simple: all of this time people spend complaining could be better spent helping to improve the project instead
Why can't people voice criticism and then work on the projects they want to work on instead of having homework and needing to learn the entire Jellyfin code base?
Nobody is personally insulting the devs as being lazy or incompetent. The devs can listen or not and they should have absolute control on what they implement and when. Its entirely reasonable that things they think are fine are pain points they don't realize exist because they've just gotten used to them. They also might not realize that some "wouldn't that be nice" thing they were thinking about implementing in the far future is actually something a lot of people want in the near term instead. There might also be things they just never even thought of.
The users of the software with criticism also aren't forced to use the software and should not be expected to implement anything they want unless they want to contribute. The project being open source ensures that in the future the project can be continued, if someone wants to continue it.
I do not disagree, there are horrible free projects with actively user-hostile documentation out there. But jellyfin is not that. Most criticism of it that I have heard falls either under a matter of taste ("I would do it differently"), a specific hardware setup not being supported or a skill issue during the installation which has more to do with administration of networks and Linux servers than with jellyfin.
And as a user of jellyfin myself I don't think these are particularly fair points of criticism.
I mostly meant that a media hosting/streaming service that is FOSS and has as much fit and finish as Jellyfin, and as many integrations as Jellyfin, feels like a huge accomplishment. This is a space where there is a ton of corporate investment because there's a ton of money to be made. And Jellyfin holds its own against offerings by Google, Amazon, Apple, Netflix, etc. That is incredible to me.
I'm a huge FOSS bigot, but even I can admit that FOSS frequently has bad UI design. FOSS is usually great for getting the fundamentals of the software right, making it reliable etc., but software experts usually are not very good at UI design.
It’s an excellent OSS project. One of the few I have donated to.
In my experience, the majority of people who complain loudly about Jellyfin are tied up in the Plex ecosystem and cannot fathom leaving it for some reason.
I mean, imagine living with ad-supported streaming content being injected into your private instance by default and having to tell your users to opt-out of that. Admittedly, it is hard to leave such a slippery slope of an ecosystem, especially as a paying customer.
I tried switching to Jellyfin. But the feature parity between Plex and Jellyfin just isn’t there. This was roughly 6-9 months ago.
I have a 5.1 surround sound setup with Dolby atmos and 4k HDR 10 with Nvidia Shield Pro android TVs as clients. I have Blu-ray rips that play completely fine on Plex, but stutter, have no sound, or downscale to 2.0 sound on JellyFin.
There are some fixes that involve using a JellyFin server and a Kodi media client on Google TV’s. This does enable DTS and Ddd+ sound. While that technically works, it is very involved and feels like many more steps than just using Plex.
If you use a basic 1080p tv with two speakers and lazy encodes of media, Jellyfin probably works great for you. If you have anything a little more complex then you will inevitably see some problems.
This is similar to other open source projects like Ashai. The basic features are easy enough to build, but the more complicated use cases always require more time and effort, and people aren’t always willing to do that complicated extra effort for free.
The client story is lacking for sure. But they seem to be prioritizing that now. Regardless, what they’ve achieved as an OSS Emby fork is astonishing imo.
On Apple TV, Infuse bridges the client gap. I personally prefer paying for a third-party client (for now) to paying for a media server that locks transcoding behind a paywall and ties my private server to a remote service. YMMV of course.
I’m lucky, I have a tube 2019 running jellyfin into a 5.1.2 setup through my avr and DTS/atmos + HDR10/DV work with jellyfin. I switched from kodi a few years. Do you have Dolby processing and up mix 2.0 turned off in the shield settings? Those cause stutters and some issues for me.
I have been reading the subreddit for years. I don’t bookmark threads or comments for later review. And I made it clear upfront that this is my personal impression.
>I feel it in my gut despite evidence that I'm wrong
Plex users are all people who are fine self hosting and all the problems with that. Plex lifetime pass holders are invested for 75 dollars. Nobody is entrenched or unwilling to switch if something is better.
Maybe some people also run AdGuard/PiHole on their entire network and block all of the injected ads/tracking that Plex and your employer inject into our lives. We know that companies will always have people doing negative things and try to take the good and fight against the bad.
Maybe you are just overvaluing something that most people don't. Or its a problem only if you just lay down and let advertising invade your home.
Is it lower than "trust me I saw it" on a fully indexed website with advanced search tools that is also one of the most famous sources of LLM learning.
our time still has value, even if the developer of the (often time-wasting app) isn't remunerated. I don't have a bone to pick with JellyFin, but there have been FOSS apps that are best avoided and it's fully within our rights to signal that to others.
I think it's great that it's free and open source so it's available to as many people as possible.
I don't really care about the free part though. If I could pay for Jellyfin and it would be better, I would happily do it. I pay for Infuse so I have something usable on Apple TV even though Jellyfin itself is free. I don't care if other people don't pay for it.
I would rather pool various other people's money who have the same perspective as me to allow one of the Jellyfin contributors to prioritize and perform changes in the project that I and others value, which raises the boat for all. There's no world in which I am going to learn how to contribute to Jellyfin to fix something fundamental about the Jellyfin architecture, for example. It would take years to even get buy-in from the core contributors to have that access. Maybe I could spend a few months and clean up minor UI things or something, but what's the good of that?
I see this take a lot, where a project being free / OSS means that no one should have an opinion on it or that if they don't like something, they should fix it themselves. That's literally what money is for, so I can transfer wealth for some benefit to someone who is better at something than I am, so I can spend my time doing things I'm good at. Nothing about that prevents Jellyfin from remaining FOSS but at the same time, making improvements and receiving and prioritizing community feedback.
If anyone believes Jellyfin is worth paying for or donating, I think it's possible to donate to the Jellyfin project [1].
That's still a donation and shouldn't come attached with any expectations or obligations on either party. So, it may not be the best route to influence their roadmap.
DigitalOcean & JetBrains are listed as their sponsors. If you are their customer, you can share feedback on how much you appreciate their support.
Yes Jellyfin does accept PR's but they don't accept hacks ie workarounds for single issue for a particular device won't be accepted easily. The maintainers feel using hacks and workarounds is not the best way to go for the long term maintenance of the project. One of the reasons skip intro took so long to get into jellyfin and jellyfin clients as they wanted a universal media segment system that can be used for other plugin apart from skipintro.
It's the same reason jellyfin android Tv app has not reached feature parity with Plex yet as the dev wants to do it right from the ground up so does not like to add device specific workarounds but try to fix it in way to not require workarounds.
Uh... just to be clear, this is a good thing - particularly for an open-source project maintained by volunteers, who can't (and shouldn't have to) maintain 100 hacks for 200 different devices. There's so many work that comes attached to doing it that way, from having to own the devices, to making sure every hack is updated, to providing support for them
sounds like you don't approve of the devs healthy approach to the development of this project, but would rather sacrifice long term sustainability for quick wins.
No I am with the devs on this. I am against people submitting code without discussing with the maintainers and then crapping on them later if the patches don't get accepted something like the arguments rust thing for Linux kernel. As it just will cause unnecessary friction and if the devs/maintainers stop enjoying on the project everyone suffers. I have seen hobby open source projects die with devs getting tired of arguments and then abandoning the project.
For movies and TV shows people either rip them off of personal collections and/or download them from the internet.
When combined with `yt-dlp` you can use it to download videos from your favorite channels. This is especially valuable as there's no guarantee the videos will be there for free forever.
It's also a nice place to put family videos and recorded sporting events.
Same. Illegally backed up, in my case, because the DMCA is ridiculous and prohibits backing things up unless you crack the DRM personally. But I don't care, as that is a stupid law and I have the moral right to rip my discs if I want. But the content was legally purchased originally which is what matters imo.
I have a script that scrapes a few youtube channels which my kid uses jellyfin to watch. Youtube is otherwise not allowed, too easy to watch all sorts of crap.
I recently found out Jellyfin supports livestreams so I've been using it to "cast" my screen to the TV (simplescreenrecorder -> nginx's rtmp server -> jellyfin webpage). Theres a few seconds of latency I can't get rid of but ime more reliable than chromecast / the built-in device discovery.
I’ve been using this for years, it’s almost perfect but there are a few little issues here in there. My TV automatically updated the jellfin client which no longer could connect to my server that was frustrating. Another update stopped supporting many of the plug-ins I enjoyed using. I have issues with thumbnails not loading and not knowing how buffering works. I find it difficult to troubleshoot issues. 99% of the time it is perfect and I love it.
Jellyfin's strategy for streaming blu-ray disc folders is to use ffmpeg to concatenate (and usually transcode) them to disc, then stream the result.
It doesn't work very well - frequently, the concatenation process is sitting there running long after the client has disconnected. And the devs seem to break it entirely every second release or so, just failing to recognize the BDMV as a playable movie at all.
Firsly, I have multiple tens of terabytes of movies (painful to duplicate), and I watch them with their original menus in Kodi.
Secondly, a BDMV can't be turned into a single correct linear representation - for example, the Star Trek TOS discs have the ability to toggle back and forth between original and CG-remastered graphics seamlessly. As another example, I have stereoscopic 3D blu-rays; should the transcode be the left eye view, or side-by-side 3D with an ultrawide file?
Finally, transcoding necessarily sacrifices quality. Remuxing wouldn't, but Jellyfin usually refuses to stream remuxed containers and insists on transcoding to attach subtitles (their javascript web player and even app don't seem to handle the subs correctly?).
To sum up, turning a disc folder into a single file requires losing content.
This is an interesting take, thanks for describing it. I think most people, myself included, would find your setup a little odd, but I completely understand why you're doing it. It would make many (most?) home media servers a little hobbled, especially if you wanted to stream content to mobile devices outside of the home, but it sounds as if this is more of a replacement for the old pile of set-top boxes for you, rather than a general service to all your devices, is that a fair interpretation?
Yes, what I've got is like a streaming service, but at much higher quality and with a selection that doesn't rotate out as rights lapse.
The stuff that Jellyfin would provide - being able to watch from a device using just a web browser and no client install - is nice-to-have, not need-to-have.
The "Jellyfin for Kodi" plugin (not Jellycon!) supports a "native path" streaming mode that just directly passes the raw video file to Kodi, avoiding Jellyfin's transcoding entirely. I've never used it with BDMV's, but it does work with other formats Jellyfin can't transcode properly like Dolby Vision.
Also, if you do ever want to remux those discs, mkv does support both those features now (player support is lacking though). You'll want to look for "3D MVC" support, and including 2 video tracks in one mkv is no problem.
I believe the big selling-point for Plex is that it can stream content to every single device you own no matter where you are, which requires on-the-fly transcoding. It's my understanding that the performance requirements for realtime transcoding necessitates something like an MKV or MP4 file, although I'm happy to be proven wrong by someone with more direct knowledge of the process.
The blu-rays contains m2ts files, which have the same video data in them as an mp4 container would (h264, usually, vc-1 sometimes).
Remuxing them can be done a NUC-class CPU. Transcoding them requires hardware support to do in real time with today's hardware, but the hardware support is quite light - an AMD iGPU can chew through a 4K BDMV no problem, so long as the codecs on both the input and output side are supported for acceleration.
Jellyfin tries to prefer Intel Quicksync for some reason but it works with other GPU accel too. The problem isn't the performance envelope, it's how poorly the code is implemented on the Jellyfin side: it's not reliable at starting and managing the concat process, and it forces a transcode to embed subtitles for no logical reason I can see.
I know this isn't a solution for everyone, but I just stopped downloading blu-ray altogether. I don't need a bit more quality for 3x the storage size and way more gpu churning.
I've tried everything but ended up using the VLC app on my Apple TV and just accessing my NAS through Samba. Not as sophisticated (library management) as Jellyfin or Plex but performance wise it's probably the best one.
At least on the android client you can have jellyfin play the selected media in VLC (or other external player). Couples most of the library features with the playback performance of VLC.
Somethings like playback resume don't work but for me it's a nice middle ground.
I switched from Plex to Jellyfin/Infuse for three reasons:
1) better tone mapping, allowing me to watch HDR movies on SDR without it looking bad.
2) Plex, on my variety of clients, had regular issues with audio out of sync. I’m very sensitive to this and it drove me nuts. I have no issues with Jellyfin. I fiddled with all kinds of platform and Plex settings but couldn’t find a solution that solved it for good.
3) It’s easier to access Jellyfin over Tailscale. Plex’s normally clever way of exposing itself to the Internet gets in the way. It’s not impossible though.
Having said all this, Plex has better client UIs by far. They’re well organized, feature rich, and generally bug free. I still run Plex and plan to at least for the DVR functions.
It's so awesome to be able to stream from my NAS at home my "documentary" of my last europe trip to someone in-person when I'm out at a gathering or whatever. Jellyfin + tailscale + whatever else you want to link up, is just awesome++
I love that I dont even need more software like plex or jellyfin. I just expose a smb share and point infuse to it. Usually its a windows server but using truenas atm.
On audio sync issues, I unfortunately see them with jellyfin rather frequently on apple tv when using homepods as audio output. I end up having to enable the "native player" in the experimental settings to get the audio in-sync.
I've previously reported this to the developers of the app, and they've closed the issue saying it was a bug in one of their dependencies, without fixing the issue. It remains unfixed.
> better tone mapping, allowing me to watch HDR movies on SDR without it looking bad.
I've never really understood why it's a desirable feature to have automatic HDR-to-SDR in the first place. No one is making HDR-only content and the official SDR master for every movie and TV show done by a human is always going to beat a fancy LUT.
When performing colour grading you're always deciding what parts of the image need what amount of contrast etc. based on what's important to see in the context of the scene. When grading to HDR you're going to make different choices simply due to the fact that you have a wider dynamic range available. Even putting aside the fact that you're not starting from the same raw inputs that the production studio is working with, automatic tone-mapping is never going to be able to look at a scene in the same way that a human does and decide which parts are important and which parts aren't.
In this case I would think people would prefer to just have the SDR version which will look good on all displays rather than the HDR version that will look better on a HDR display but will look horrible on a SDR display. It's down to personal preference of course, but I can't imagine someone caring about having HDR videos while simultaneously putting up with the bad results of automatic HDR-to-SDR.
Just as an example since I didn't include one before: Which of the two below images using different algorithms is correctly tone-mapped? Do we care more about showing the details of the car and the driver or do we care more about the rest of the scene? It's simply not possible to decide which of these is better without context, which an algorithm will never have. A human watching the scene can make that decision, or pick something completely different.
As I said already, it's down to personal preference. I just don't imagine that most people care about having the best looking video they can get on one device but don't care on another to the point where they'd sacrifice quality on device A for better quality on device B.
It’s exactly the case. Every room isn’t a home theater. We want the best quality for the home theater and “good enough” for the rest. To my surprise, others do notice the washed out effect of watching HDR content on an SDR TV, or worse the wrong colors when watching DV content on an SDR TV.
Acquiring, storing, and organizing multiple files for the same video is a hassle. Even more hassle is asking others to know which is the right one for that TV.
Nope. I personally have two HDR devices and two non-HDR ones. I don't want to keep two separate copies as this takes up more storage, requires me to get two different versions whcih means the progress won't be synced ebtweent the two, the subtitles may not be exactly the same either, etc.
I want to have one and only file that will optimally on my main device (HDR) but which also work reasonably well on a secondary non-HDR device.
The biggest thing that keeps me away from Plex alternatives is the simplicity ("it works everywhere on everything") and the experience ("it looks nice and feels polished").
There was a point where I could overlook some of these things but watching media is something that I want to feel slick and personal, and troubleshooting really kills that for me.
Plex + AppleTV for me and my folks has been a rock solid setup for us.
I really appreciate alternatives (especially OSS) like Jellyfin though and take a gander at them ~once a year.
It’s great. A stock Nvidia shield 2019 tube (!) plays 4K HDR/DV DTS content without stutter or issues with passthrough an AVR which is impressive. I can't say Kodi and various forks were able to do that, at least in the past. Lots of griping about the tube in general as well but it manages without transcoding.
As somebody who just got into Real Debrid, what's the best compatible frontend that makes managing the content firehouse easier? I started out with Stremio, which works okay but only lets you add movies/shows to a single Library that can be sorted a few ways, but that's it. Not great scrolling through a single horizontal list of titles.
Ideally, there'd be a program that lets you add programs to playlists (favorite films, to-watch list, anime, documentaries, etc.) and then track the watch status, shuffle-play, show recommendations, display a big grid, etc. There's probably something like that out there but for a newcomer it's just a blizzard of "Sonarr, Radarr, Umbrella, Jellyfin, Plex, Kodi, Stremio, Roku, Seren, Overseer, Syncler," and other nonsense syllables (and seems like most of the guides are dated).
(Nb: I subscribe to Netflix, Hulu, HBO Max, etc., just prefer having a unified player that doesn't yank stuff arbitrarily)
I've had a setup similar to what you're describing using Kodi with various addons. But it's really precarious and for too much effort. Stremio is treating me well these days.
291 comments
[ 4.0 ms ] story [ 259 ms ] threadHow is av1 support on jellyfin?
AV1 playback works on devices that support it. You'll need server-side transcoding for devices that don't. Jellyfin can do this by shelling out to FFMPEG, which can optionally use hardware accelerated codecs if they're available to it. So basically, "it depends", but Jellyfin itself supports AV1 media.
This is obviously useful in general, but i rely on it to run a media server on my low-end minipc with Intel Quick Sync.
Honestly, Kodi is even a little more heavyweight than I need, but I've been using it since long before the XBMC->Kodi name change and have been happy with it.
1. the UI jank. The thumbnail tiles are slow to load, even on a local network. Searches and filters flicker as you type and take a while to return. Scrolling fast in the web UI gets choppy/laggy.
2. The native app (at least in the case of Apple TV) is either nonexistent or terrible. I've been using Swiftfin since it was one of the first alpha versions, and it constantly lost pairing with my Jellyfin instance. When it did work, which was very cryptic and usually required re-enrolling the client every time, it would randomly fail to load things, and the UI was very choppy as well. I haven't used the native apps on other platforms, but I imagine they are equally or more janky, because the Apple TV is comparatively very beefy hardware-wise vs. most other platforms.
3. The polling for new media is slow. I upped it to 10 minutes (the quickest possible setting) but I shudder to think what a full scan of a media library every 10 minutes is doing to my disks. Why doesn't it use file watchers and webhooks for new content notification?
4. The homepage has very little actionable info and doesn't work for browsing. It's not like Netflix or any of the other services where you can boot it up and see a bunch of different categories, as well as your "list". It has playlists, but you have to drill down to see them. You can go to "Movies -> Suggestions" and it has a little bit, but nothing like Netflix does. No real recommendation engine.
5. You have to maintain your own trailers or use an app like Infuse that can download its own trailers.
6. You have to separately configure tiles to be rendered if you want a nice seeking experience where it shows a live preview as you scrub through the timeline.
7. Movies and TV Shows are separated even though pretty much every other platform doesn't separate them, which requires you to click into one of 2 options before you can do almost anything.
That said, it's still far better and less janky than Plex was before I switched, and Infuse actually plays back HDR / Dolby Vision content correctly.
Does anyone else have qualms with Jellyfin? And how does Plex compare to any of these gripes?
Edit: New media shows up for me pretty much straight away without having to do anything. Not sure what's happening there for you.
Unpinning the trash every few months gets tedious. It turns out, I want the stuff I pinned, not anything else.
My biggest gripe is the sometimes hilariously strange behavior picking artwork:
https://github.com/jellyfin/jellyfin/issues/10494
Other weird things I have been able to DIY. I wrote my own auto-updater and Live TV listing grabber.
You can use Ersatztv to create an automatically updated playlist, based on a Trakt or IMDB list. Back in the day, there was/is a a cool addon for Kodi called “PseudoLiveTV” and these apps replicate this functionality.
So you can have an always updated Christopher Nolan collection, Halloween movies, westerns, 24/7 90s cartoons, BBC nature documentaries or whatever.
You can pull any imaginable tv or movie list from Kometa using Ersatztv:
https://kometa.wiki/
See here for one idea: https://youtu.be/Ibaj6NiS8xM?si=eiPhTzZuwGAwa8Id
So I am literally streaming ATSC channels from my roof antenna with JellyFin. I didn't feel like paying a subscription fee (and anyways - no paid service has exactly the right XMLTV format JellyFin expects), so I wrote a scheduled task which scrapes the listings and ingests them with the REST API.
2. https://github.com/jellyfin/Swiftfin/issues/776
3. If you use radarr/sonarr, you can add Jellyfin as a connection. When they import a file, they will notify Jellyfin to process it.
My server running Jellyfin has something setup with the kernel that it notices new files almost instantly.
For 1, 2, 3(?), 4, you appear to be referring to the Apple TV client, which is written in an entirely different language and frameworks, and entirely different authors. (This is due to the excessive limitations on languages put in place by apple in their ecosystem).
Jellyfin has dozens of other platforms.
In regard to #3, Jellyfin does use file watchers.
For #5, there is a setting to grab trailers. Additionally, if the default metadata providers aren't getting you what you want, there is a baked in library of more than a dozen alternative metadata providers and a variety of other things you can use to augment what your media library provides.
For #6, I'm not sure if you're just referring to the Apple client again, but I'll add that the "Jellyscrub" feature is turned off by default, but if turned on, it will automatically generate video scrub images.
For #7, idk. I guess it's a stylistic choice? Why is there Sonarr and Radarr?
Anyway, I'm just a user, but, I'm also a Jelly-stan. So, I'd highly recommend you browse through the configuration options a bit more, particularly in regard to plugins and the many settings available in each of libraries' individual configurations.
When I say there is UI jank and lag, what I mean is that content re-renders and shifts around when you search, results flash in and out with loading animations. the placeholder tiles are clearly visible and I can see the tiles loading in when I scroll. This happens in both the web client and Apple TV. I believe the issue is the API design that’s dictating how clients fetch and load data, some virtualization in the frontend implementation, and a lack of prefetching/caching.
I have a 10 gig network to a very fast NAS setup and a very small media library. the image assets should be able to be cached/streamed/prefetched from the server so that I do not ever see a placeholder tile (maybe if you jump ahead like 1/2 the library, then that makes sense).
Perhaps this is one of those things where people haven’t seen what’s really possible performance-wise from a local server and they’re OK with something that feels like a webpage. But nothing feels like a native app that just has all my content there all the time. It feels like a remote service even though it’s < 1 ms away on a hardwired multigig network. Does that make sense? Do you agree with that?
This myth that Apple's ecosystem is so stifling isn't shared by the expansive developer community who work on Apple devices. It's far from perfect, to be sure, and they may overreach with some of their more stringent security and privacy controls (but none to my knowledge outright prevent apps like Jellyfin from being competitive). If Jellyfin wanted to release a high-quality app for Apple devices, there's nothing really stopping them.
I don't mean to suggest that your primary motivation for your opinions re: Jellyfin on iOS are the result of blind fanaticism, I'm certainly not saying any of this out of some tribal loyalty for Apple, either. The frequent partisanship surrounding Apple and Microsoft/Android has always been strange to me. Among the devices I use every day are a custom-built Windows 11 box, an M2 Mac Mini, an older PC running PopOS (Ubuntu-based), an iPad, and a Google Pixel. They're all tools, and they excel in their own areas. I like some things that aren't available to all platforms, and attempts to find reasonable alternatives don't always prevail. I like my Windows box for MS Flight Simulator, Remote Desktop Manager, and Visual Studio. I like my Mac Mini for Logic Pro, native Bash terminal, and DEVONthink. I like Linux for its infinite versatility and freedom. I like Android's customization, and Apple's unbeatable device/OS integrations and sync.
I can scroll through a page of >1000 movie cards and there's no choppiness or lag at all in the webUI. The cards have blurhash placeholders until the actual thumbnail loads, which is always very quick.
Swiftfin for the Apple TV is admittedly very barebones and can be choppy when scrolling through big lists, but it has never lost pairing or failed to load anything for me.
New media shows up pretty much immediately for me. Did you disable the "real time monitoring" setting in your libraries? Jellyfin will use something like ionotify or whatever your platform/fs supports when it's enabled.
"separately configure tiles to be rendered" is one checkbox, assuming you're talking about trickplay images, which was a recently added feature and I think is enabled by default for new installs.
The media detection thing might be related to Infuse and not to Jellyfin itself, since it sounds like everyone else isn’t having this issue, which is good to know.
You could also try setting up directplay, if your stack supports that.
Lastly, it might just be a limitation of your host hardware. What are you running your jellyfin server on?
The web UI is fine and snappy and using Infuse on Apple TV is simply delightful.
The server uses file watchers to update the media library very quickly and is light on resources.
I don't need a recommendation engine because... it's my media library, presumably I added things to it that I want to watch.
And most importantly, it's open source and not likely to get enshittified in the near future like Plex.
It’s one of the few apps I’m happy to pay the subscription cost for. Well worth it for a well made AP.
Not trying to make this sound like an ad. It’s just a legit good app.
Infuse is generally really good, but I wish it had a way to expose slightly more power user features such as: viewing detailed file info (codecs, resolutions, audio-video bitrates, stream info for all streams), ways to create arbitrary dynamic playlists/folders based on conditions, and viewing current stream debug info (MB/s, cache fill, ram usage, disk usage etc). Any debug info would be helpful when some files seem to kinda work but then crash Infuse. For example some 4k/6k/8k ProRes content at around 800Mb/s. Network/NAS isn’t the issue as it’s hardwired 1Gb/s. So then I don’t even know if some specific variation of ProRes (or every) is just unsupported on the appleTV and it goes into software decoding, or whether the AppleTV is oom-ing, or what exactly is wrong.
Worst case you may have to pay for Infuse another year, although it would have felt better to donate to the development of the Apple TV app instead
You can put these into "collections", but it'd be nice if my library could just have a "Star_Trek" directory and then subdirectories with all those things inside, and have it automatically sorted out by JF.
I'm glad I never purchased a licence with the amount of useless stuff they keep shoe horning in.
My entire jellyfin library is just symlinks into where my crap has accumulated over the years.
https://jellyfin.org/docs/general/server/media/shows/
* Avoid special characters such as * in M*A*S*H, use MASH instead.
Since when a common ASCII character is a special one? What about more common unicode characters I use?
* Do not abbreviate the Season folder with S01 or SE01 or alike.
I.e. if I put anything not in the folder named "Season XX" it won't work? Ugh... really?
* Season folders shouldn't contain the series name, otherwise Jellyfin can in certain cases (Stargate SG-1 due to the dash and one, for instance) misdetect your episodes and put them all under the same season.
Well, how about to fix it?
* Episode numbering for specials may vary from metadata provider to metadata provider.
Very helpful, so the "Series XX" required above won't always work.
And even if everything above fails why not to sort by name? It should not be hard for any engineer, right?
But it is not as good as Plex currently. I have a lifetime pass and there is no reason for me to switch. I personally am fine with Plex adding features, so long as they are not taking anything away. They've had a couple missteps but absolutely nothing that would make me want to switch to an experience that is definitely worse.
I'll give Jellyfin 3 years and then reevaluate and see how I feel.
but it's still on my hard drive. if i can't log in to plex for some reason, i'll install jellyfin. or mount it as a network drive and play the files with VLC. it's not like they're locking away my content behind their authentication, all they're locking away behind that auth is my ability to access my media through plex.
https://www.howtogeek.com/303282/how-to-use-plex-media-serve...
It's a mere setting not to have to use cloud authentication within your home network.
I'd prefer using Tailscale so that I can also access it in their native apps on Android and Android TV.
Yes Cloudflare Tunnel can work with Jellyfin apps, but: 1) this exposed your Jellyfin to the world, and you are one vulnerable away to get owned, and 2) like other sibling posts mentioned, this is against their ToS to host streaming service on free plan on their platform.
The whole *arr thing makes it even better with automated download and upgrade.
Casting from my phone also got de-synced & broke a lot. I couldn't find a good way to skip/scrub forwards or backwards a little bit. Sometimes the themeing would break & the app became unusable without restart.
It was really really cool having jellyfin-mpv-shim running on my desktop, and Chromecast elsewhere. But Jellyfin was straight up not working for me, not listing a bunch of my media, not making it navigable, and the Android app's dodginess all ruined things for me. I went back to UPnP/DLNA, whose apps are a little cruder (Gerbera for MediaServer, BubbleUPnP for control, Rygel PlayBin for MediaRenderer), everything basically just works and it's baked into many devices/tv's.
Jellyfin fixed that. Other people in my house use it easily, a friend uses the web ui over Tailscale, and my messing-with-tech versus watching-things ratio is finally looking good.
But I can live without that.
The one thing it offers that folders do not is a simple way to interact with the video library when guests are using it.
They can grab a mouse and meander over the available shows with no explanation and watch what they want within minutes of being shown the link without exposing my nas to them or giving them the ability to alter my media files without my knowledge.
We ended up buying an apple tv and installing the vlc app which connects via smb and is happy to show us the original folder structure.
Looks like I could use some combination of Caddy, Nginx Proxy Manager, Tailscale? What's the simplest setup?
$HTTP["host"] == "jellyfin.dc" { proxy.server = ( "" => ( ( "host" => "192.168.1.99", "port" => "8096" ) ) ) }
Personally I don't muck about with any of that and just have a link in my bookmarks bar that takes me to http://<tailscaleip>:port :D
I’ve got pihole running so that’s my home dns server, I have custom domains with a home-only TLD (I think “.internal” is cleared for use now?). So something like https://plex.homecloud.internal can load up plex, I can only assume jellyfin could do the same.
I’ve actually been using ZeroTier instead of tailscale for external access and I’ve been very happy with it, but I know lots of people love tailscale and I’m sure it’s great too
# cat /root/.cloudflared/fbsd0_tunnel.yml
The end result is a valid HTTPS experience inside the network and outside (as long as tailscale is active on whatever device I'm using). And if I decide to ditch tailscale it's just a matter of mapping ports 80 and 443.
https://github.com/mikew/homelab/tree/public/services/revers...
https://github.com/mikew/homelab/tree/public/services/dns
https://github.com/mikew/homelab/tree/public/services/tailsc...
The Kuma example here is decent. Replace kuma image and ports with jellyfin. https://www.elliotblackburn.com/how-to-use-tailscale-serve-w...
Again there are probably easier options to get it running but in my case most of it runs on docker so (in theory since I had no major outages just a few times I migrated hardware) moving/restoring from backup is relatively easy - copy all the files and run `docker compose` in each directory.
Most of my issues are with the Auth system and random log outs, but I suspect that's my own network.
I have ~2000 movies (21TB), 435 shows (22TB), ~26000 songs (1TB); all running on an Intel 4770k w/ 32GB of RAM, a SATA SSD for the Jellyfin database, and a Tesla P4 for transcoding. It works well now and even worked decently before switching to the Tesla P4 for transcoding.
I came from Plex a few years ago after their login server had an outage and I was unable to access the media that was on my local computer. Before that I'd been annoyed by them pushing TV shows and since then I've heard about them giving reports on what people have watched. All in all I'm happy.
My setup is Jellyfin in a docker container running on a debian machine with an i7-1165G7. It's got a mounted NFS link to my Synology NAS with all the files. The main client I used is Android TV running on an NVIDIA shield.
All in all, it's been great. I've got a few nitpicks---loading on ios app isn't as fast as I like if I try to jump to the middle of a movie---but all in all it's great for just watching movies, tv shows, videos, &c. All without any link to the outside world. It's lovely.
They also are producing new features at a nice clip and have a strong community. I expect it to keep getting better and better, but honestly even if it never changed I'd happily use it for years.
But I hear ya, console support tends to lag behind because of the rules and costs of app dev for them
https://github.com/luigi311/JellyPlex-Watched
what are you referring to?
There was something that worked, going forward the core team decided to focus on a tight stream lined core and decruft 'features'.
Discussion:
https://old.reddit.com/r/selfhosted/comments/1dbiw90/skip_in...
https://forum.jellyfin.org/t-intro-skipper-project-dead
Seems like a temporary (indefinite) suspension and a storm in a teacup from those attached to the feature.
There is one big exception though: if you're watching Star Trek: Enterprise. The "skip intro" feature is invaluable so you don't have to be subjected to that truly horrific opening song.
Chromecast support is flaky. Most of the time when I cast from my Android phone, the app immediately "forgets" that there's something playing back on the Chromecast (even though it's still connected to it), so I can't control playback at all. It's also hit or miss if the Chromecast will successfully play the media if Jellyfin decides it needs to transcode it.
So I got a little NUC-like box (Intel N100), and installed Jellyfin on it (it was previously running on an old 2012 Mac Mini running Linux). I connected it directly to the TV and installed jellyfin-media-player on it, set to auto-login and start X on boot, with a minimal session that just runs JMP only in fullscreen mode. I use JMP on my laptop, or the Android app, to control it. JMP will randomly lose its connection to the Jellyfin server (even though it's running on the same machine), and won't try to reconnect, so nearly every time I go to use it, I have to ssh in and restart JMP so it reconnects.
On top of that, I get occasional audio dropouts when watching 4k content, and sometimes see 4k video stuttering (yes, hardware decoding is enabled for playback, and I've verified in the logs that it's being used). At those times, the box is around 40% idle, and intel_gpu_top shows that the decode and render bits have what I think should be more than enough headroom to avoid that sort of thing. I understand JMP uses libmpv for playback, so out of curiosity I tried playing video using mpv directly, and somehow JMP's player uses about 50% more CPU than mpv standalone does, and I don't hear any dropouts or see any stuttering on the same media. I get that a video player that's embedded in an application might have some overhead, but 50% is a bit much.
I get that Jellyfin is maintained by volunteers (I also maintain open source in my spare time, so I know how tough it can be to be responsive to user requests), but these issues are quite frustrating. I don't want to use something closed like Plex or Emby (which may or may not be better), so it's still the right trade off for me. And what it can do is truly amazing. I love that I can play things while I'm on the go, VPN'ing to my home network, and Jellyfin will transcode down to a crappy-enough bitrate to fit within the confines of my garbage Comcast upload speed.
This might be more the Chromecast's fault as I've had a similar experience with Plex.
Why on earth, when you go to 192.168.whatever:8096 does it ask you what server you want to connect to? Like.. THE ONE SERVING THE PAGE.
Just now I decided to connect to Jellyfin over tailscale and it's asking me to add a server; on 100.xxx, which is the jellyfin server which served the UI. And it doesn't seem to want to accept any answer as to what the server URL is.
This lets you connect to and play another friend's Jellyfin rather nicely. I think it's also so the HTML and JS that forms the web interface can basically be the app as well.
> And it doesn't seem to want to accept any answer as to what the server URL is.
Should be "http://192.168.100.xxx:8096" - make sure your jellyfin isn't just set to listen on localhost only though.
They've sort of conflated three different ideas - one, the non-browser clients are separate and need a way to select multiple servers from a common wrapper app; two, for development purposes separate the server of the UI package from the backend being accessed; three, have a server based application.
None of these items are uncommon, they are just commonly solved by making the separate front-end server an exception rather than a weird and senseless default. Most people solve this by making the dev mode case an exception.
Moreover, why not just add a button to the UI to automatically connect to the _UI serving server_ instead of having the user type it?
I love jellyfin, but this stuff is just terrible design for out of box experience or connecting from a new client instance, and it breaks when you're traversing a network boundary with something like Tailscale.
That said, I might've found a clue: if you re-run it, you get another randomized hostname, and then you get the server select page. If I clear cookies and reload, it again skips the server select page. So it seems like if you have the hostname of your jellyfin instance change, say, by starting a new Docker container with a different name, but have it accessible at the same place, that might cause this weirdness.
Other issues may include improperly configured reverse proxies. (If you're using a reverse proxy, you should make sure it's configured right for Jellyfin's websockets and CORS usage and potentially some other stuff.)
I don't know what the answer is, but I ran into this when I was trying to harden my systemd settings. I'll link my override below and maybe someone can give something more conclusive (and any suggestions to my override or for other services are greatly welcomed. I'm happy to add even ones I don't use). Where I hit this error was when messing with RestrictAddressFamilies, which are network socket addresses. For example, when I restrict AF_PPPOX or AF_UNIX I get that issue. IIRC I also hit that issue when I had moved a file, but I forgot which one (I noticed it got autogenerated again). So I suspect it has to do with access to some file location where it stashes a config file. Fwiw, this works with tailscale just fine.
https://github.com/stevenwalton/.dotfiles/blob/master/skelet...
(docs for RestrictAddressFamilies) https://www.freedesktop.org/software/systemd/man/latest/syst...
* It's always been quite slow and flaky. Library not scanning things, media library not connectable, etc.
* Often very long delay from starting a show until it actually plays. Often very slow scrubbing/skipping.
* The automatic subtitle downloading never works. The manual subtitle downloading never works.
* The UI was getting on my nerves trying to offer "recommendations" — I download my own stuff and don't need an app to try to push my own media through some kind of algorithm that's broken — and constantly promoting the Plex streaming service.
I got fed up and set up Jellyfin with Infuse as the client. Now shows start immediately with no buffering delay, never have any glitchy library issues, and the subtitle downloading just works.
My main issue is that Jellyfin's matching can be quite poor. It often doesn't understand when episodes belong to a show. Also, Infuse's UI is pretty bad and doesn't align at all with how I think media should be accessed.
Nobody is personally insulting the devs as being lazy or incompetent. The devs can listen or not and they should have absolute control on what they implement and when. Its entirely reasonable that things they think are fine are pain points they don't realize exist because they've just gotten used to them. They also might not realize that some "wouldn't that be nice" thing they were thinking about implementing in the far future is actually something a lot of people want in the near term instead. There might also be things they just never even thought of.
The users of the software with criticism also aren't forced to use the software and should not be expected to implement anything they want unless they want to contribute. The project being open source ensures that in the future the project can be continued, if someone wants to continue it.
And as a user of jellyfin myself I don't think these are particularly fair points of criticism.
The highest quality software has always been FOSS, outside of specialised niches.
In my experience, the majority of people who complain loudly about Jellyfin are tied up in the Plex ecosystem and cannot fathom leaving it for some reason.
I mean, imagine living with ad-supported streaming content being injected into your private instance by default and having to tell your users to opt-out of that. Admittedly, it is hard to leave such a slippery slope of an ecosystem, especially as a paying customer.
I have a 5.1 surround sound setup with Dolby atmos and 4k HDR 10 with Nvidia Shield Pro android TVs as clients. I have Blu-ray rips that play completely fine on Plex, but stutter, have no sound, or downscale to 2.0 sound on JellyFin.
There are some fixes that involve using a JellyFin server and a Kodi media client on Google TV’s. This does enable DTS and Ddd+ sound. While that technically works, it is very involved and feels like many more steps than just using Plex.
If you use a basic 1080p tv with two speakers and lazy encodes of media, Jellyfin probably works great for you. If you have anything a little more complex then you will inevitably see some problems.
This is similar to other open source projects like Ashai. The basic features are easy enough to build, but the more complicated use cases always require more time and effort, and people aren’t always willing to do that complicated extra effort for free.
On Apple TV, Infuse bridges the client gap. I personally prefer paying for a third-party client (for now) to paying for a media server that locks transcoding behind a paywall and ties my private server to a remote service. YMMV of course.
In the last week, most of the posts are pro-Jellyfin[0][1][2] - nearing anti-plex.
https://old.reddit.com/r/selfhosted/comments/1ilqh6u/one_yea...
https://old.reddit.com/r/selfhosted/comments/1ip8twc/jellyfi...
https://old.reddit.com/r/selfhosted/comments/1iaqqv9/jellyfi...
Plex users are all people who are fine self hosting and all the problems with that. Plex lifetime pass holders are invested for 75 dollars. Nobody is entrenched or unwilling to switch if something is better.
Maybe some people also run AdGuard/PiHole on their entire network and block all of the injected ads/tracking that Plex and your employer inject into our lives. We know that companies will always have people doing negative things and try to take the good and fight against the bad.
Maybe you are just overvaluing something that most people don't. Or its a problem only if you just lay down and let advertising invade your home.
I don't really care about the free part though. If I could pay for Jellyfin and it would be better, I would happily do it. I pay for Infuse so I have something usable on Apple TV even though Jellyfin itself is free. I don't care if other people don't pay for it.
I would rather pool various other people's money who have the same perspective as me to allow one of the Jellyfin contributors to prioritize and perform changes in the project that I and others value, which raises the boat for all. There's no world in which I am going to learn how to contribute to Jellyfin to fix something fundamental about the Jellyfin architecture, for example. It would take years to even get buy-in from the core contributors to have that access. Maybe I could spend a few months and clean up minor UI things or something, but what's the good of that?
I see this take a lot, where a project being free / OSS means that no one should have an opinion on it or that if they don't like something, they should fix it themselves. That's literally what money is for, so I can transfer wealth for some benefit to someone who is better at something than I am, so I can spend my time doing things I'm good at. Nothing about that prevents Jellyfin from remaining FOSS but at the same time, making improvements and receiving and prioritizing community feedback.
That's still a donation and shouldn't come attached with any expectations or obligations on either party. So, it may not be the best route to influence their roadmap.
DigitalOcean & JetBrains are listed as their sponsors. If you are their customer, you can share feedback on how much you appreciate their support.
1. https://forum.jellyfin.org/t-how-can-donate-money
Genuinely curious.
When combined with `yt-dlp` you can use it to download videos from your favorite channels. This is especially valuable as there's no guarantee the videos will be there for free forever.
It's also a nice place to put family videos and recorded sporting events.
It doesn't work very well - frequently, the concatenation process is sitting there running long after the client has disconnected. And the devs seem to break it entirely every second release or so, just failing to recognize the BDMV as a playable movie at all.
Secondly, a BDMV can't be turned into a single correct linear representation - for example, the Star Trek TOS discs have the ability to toggle back and forth between original and CG-remastered graphics seamlessly. As another example, I have stereoscopic 3D blu-rays; should the transcode be the left eye view, or side-by-side 3D with an ultrawide file?
Finally, transcoding necessarily sacrifices quality. Remuxing wouldn't, but Jellyfin usually refuses to stream remuxed containers and insists on transcoding to attach subtitles (their javascript web player and even app don't seem to handle the subs correctly?).
To sum up, turning a disc folder into a single file requires losing content.
The stuff that Jellyfin would provide - being able to watch from a device using just a web browser and no client install - is nice-to-have, not need-to-have.
Also, if you do ever want to remux those discs, mkv does support both those features now (player support is lacking though). You'll want to look for "3D MVC" support, and including 2 video tracks in one mkv is no problem.
I don't believe that mkv supports bd-j menus. Happy to be proven wrong on that if you have some further reading I could do.
Remuxing them can be done a NUC-class CPU. Transcoding them requires hardware support to do in real time with today's hardware, but the hardware support is quite light - an AMD iGPU can chew through a 4K BDMV no problem, so long as the codecs on both the input and output side are supported for acceleration.
Jellyfin tries to prefer Intel Quicksync for some reason but it works with other GPU accel too. The problem isn't the performance envelope, it's how poorly the code is implemented on the Jellyfin side: it's not reliable at starting and managing the concat process, and it forces a transcode to embed subtitles for no logical reason I can see.
Somethings like playback resume don't work but for me it's a nice middle ground.
1) better tone mapping, allowing me to watch HDR movies on SDR without it looking bad.
2) Plex, on my variety of clients, had regular issues with audio out of sync. I’m very sensitive to this and it drove me nuts. I have no issues with Jellyfin. I fiddled with all kinds of platform and Plex settings but couldn’t find a solution that solved it for good.
3) It’s easier to access Jellyfin over Tailscale. Plex’s normally clever way of exposing itself to the Internet gets in the way. It’s not impossible though.
Having said all this, Plex has better client UIs by far. They’re well organized, feature rich, and generally bug free. I still run Plex and plan to at least for the DVR functions.
Doesn't happen very often, but it's usually with older format video files.
Eeesh.
what’s even a point of jellyfin/plex if you have access to a player like Infuse on apple devices or Nova on android
I've previously reported this to the developers of the app, and they've closed the issue saying it was a bug in one of their dependencies, without fixing the issue. It remains unfixed.
I've never really understood why it's a desirable feature to have automatic HDR-to-SDR in the first place. No one is making HDR-only content and the official SDR master for every movie and TV show done by a human is always going to beat a fancy LUT.
When performing colour grading you're always deciding what parts of the image need what amount of contrast etc. based on what's important to see in the context of the scene. When grading to HDR you're going to make different choices simply due to the fact that you have a wider dynamic range available. Even putting aside the fact that you're not starting from the same raw inputs that the production studio is working with, automatic tone-mapping is never going to be able to look at a scene in the same way that a human does and decide which parts are important and which parts aren't.
Just as an example since I didn't include one before: Which of the two below images using different algorithms is correctly tone-mapped? Do we care more about showing the details of the car and the driver or do we care more about the rest of the scene? It's simply not possible to decide which of these is better without context, which an algorithm will never have. A human watching the scene can make that decision, or pick something completely different.
https://user-images.githubusercontent.com/41094733/105145848...
https://user-images.githubusercontent.com/41094733/105145851...
Acquiring, storing, and organizing multiple files for the same video is a hassle. Even more hassle is asking others to know which is the right one for that TV.
I want to have one and only file that will optimally on my main device (HDR) but which also work reasonably well on a secondary non-HDR device.
There was a point where I could overlook some of these things but watching media is something that I want to feel slick and personal, and troubleshooting really kills that for me.
Plex + AppleTV for me and my folks has been a rock solid setup for us.
I really appreciate alternatives (especially OSS) like Jellyfin though and take a gander at them ~once a year.
Ideally, there'd be a program that lets you add programs to playlists (favorite films, to-watch list, anime, documentaries, etc.) and then track the watch status, shuffle-play, show recommendations, display a big grid, etc. There's probably something like that out there but for a newcomer it's just a blizzard of "Sonarr, Radarr, Umbrella, Jellyfin, Plex, Kodi, Stremio, Roku, Seren, Overseer, Syncler," and other nonsense syllables (and seems like most of the guides are dated).
(Nb: I subscribe to Netflix, Hulu, HBO Max, etc., just prefer having a unified player that doesn't yank stuff arbitrarily)