This is something that has been increasingly prevalent with my server, for the longest time I could torrent, have two people watching and everything’s fine, but lately, especially with specific shows, it will take upwards of a minute for a show to start.
I’ve looked into it and the culprit is ffmpeg most of the time, I assume this has something to do with the specific files not having transcoding “baked in” but I don’t know enough to know if that’s the case. Can anyone help me optimize my pipeline at all?
A. Run a batch transcode with Handbrake and make all your stored files compatible with your end players.
It sounds like the more recent things you are downloading are in a codec that is not compatible with your playback devices. E.g, older torrents are frequently an H.264 stream in an MP4 container, which practically every device can play now. Many modern releases are being distributed in H.265 or AV1, as they have significant size and quality benefits, but many older devices don’t support them natively. so it is forcing Jellyfin to live transcode to h.264. Find out what older titles play without any buffer or playback lag/high CPU usage and check what codec those files are in. That is what you’ll need to batch encode everything over to.B. Sounds like you are still relying on CPU transcoding which is absolute dog. What mini pc specs do you have? If it’s an AMD or Intel CPU/APU then it should have hardware encode/decode included in it’s integrated GPU. When using hardware transcoding the CPU load is generally minimal for 1 to 2 streams. See the Jellyfin docs on hardware acceleration here.
I’ve tried handbrake before, unfortunately the system DOES NOT have the horsepower to handle it, as in a batch of 30 episodes if I recall would have taken about 3 days
As for the system itself here’s the spec sheet !
You should not be having transcode issues with anything less than four concurrent streams on that server. https://www.reddit.com/r/PleX/comments/1ae6683/intel_n100_vs_ryzen_7_1700_1st_gen_an_interesting/
It’s likely that you have hardware transcoding disabled. Enable it, and these issues should go away. This forum post has good settings in jellyfin for an n100, https://forum.jellyfin.org/t-solved-correct-transcoding-settings-for-the-n100-processor
You should be able to find instructions for enabling hardware encoding in your bios by searching for it with your specific device model.
*edit
Handbrake does a bad job of explaining the difference between software encoding and hardware encoding. Or at least, it felt that way to me when I last used it. You likely were trying to software encode your videos, which, while theoretically makes the end result better quality, definitely won’t be quick on an n100. You’ll want to pick the option that has intel quicksync/qsv in it in order to get the most speed out of your handbrake encodes. https://www.reddit.com/r/handbrake/comments/z2m814/comment/kxu2a8x/
I just wanted to let you know in case you didn’t that your screenshot includes a profile picture
Fixed thanks
Do you have another system you can use? Maybe with a video card on it that can help with pre-transcoding files?
This is what I ended up doing on mine. Was a big hit to my electric bill to pre-transcode the entire library (only for files that needed it), but now everything serves up in a flash. And the script runs as a nightly cron to catch any new stuff.
If you have to, maybe just dedicate the system you have here to transcode certain problematic content. Other than finding another download in a different format, I’m not sure there’s anything else you can practically do.
Mini PCs have more than enough oomph to handle what you’re doing. Almost my entire home lab runs on 7th/8th gen mini PCs, which includes Plex and Jellyfin (working on migrating everything over to JF). Plex only ever threw a fit when my wifi started getting crowded with wifi cameras and zigbee devices. I fiddled with the channels, removed one of my 2.4 SSIDs entirely, and now everything is happy again.
why are you transcoding at all? it’s the first thing I turn off on jellyfin (and previously plex) installs. negligible cpu usage on both server and client when directplaying content.
Is that an option? It was my understanding anime stuff typically comes with several subtitles and in my case dual audio for each episode
not knowledgeable about them things but normal movies and shows with multiple audio streams and subtitles play just fine with directplay, selecting them from the client works fine, etc.
the only reasons I know of for transcoding would be if you have ancient clients that can’t play e.g HEVC or something, or if you’re on shitty broadband and it ain’t feasible to stream 4K to a phone.
Especially anime often use the superior .ass subtitle format, which many devices don’t support. Sadly Crunchyroll is switching to .srt which has broader support, so it likely won’t require burning them in the video (transcoding), which is the only positive thing (still a shame imo).
https://www.reddit.com/r/anime/comments/1nuxuzs/crunchyroll_has_downgraded_their_subtitles
It’s immature but I laughed when I read superior .ass format.
What is the client situation?
The easiest fix is to find a client that can direct play all of your files and take transcoding out of the equation. Ugoos am6b+ as an example but if you don’t need Dolby vision there are cheaper options that are easier to configure with native jellyfin clients (instead of coreelec/kodi). Or if you need av1. But this needs to be done per user and costs money
Alternatively what is your hardware? Do you have intel quick sync video? If so do you have hardware transcoding setup? Like if you have Jellyfin setup in a docker are you passing through the igpu to the container? And if you’ve done that have you set up the hardware transcoding in Jellyfin? What gen cpu and what kind of files?
If you have the transcoding happening on the CPU and not the iGPU (assuming you don’t have a discrete gpu in a mini pc and frankly with quick sync you don’t need one unless your cpu is ancient, save the power usage) transcoding will crawl. But if you have quick sync video it should be fine with <4-5 users
So I did actually find and turn on quick sync, there’s still a bit of a delay on the problem show, but it’s like 30 seconds rather than a minute, weirdly though where it was saying “playing directly” earlier, it’s now giving a subtitle error, it’s fine since I’m not using subtitles but still was something I noticed
Subtitles force transcoding a lot of the time depending on playback situation and media. A lot of compatibility issues there - downloaded movies often will have the PGS subs from a bluray, anime can often have ass/ssa, ibx subs, etc plus they all tend to be embedded in the media (and in anime’s case often with extra fonts and attachments).
all of these (basically anything but external srt) can interrupt direct playback depending on users Jellyfin client. Some have better sub support than others, android vs apple vs some esoteric client like webos all have their own niche weirdness. You need to search what the best option is for each users scenario. Like for my users that have apple devices checking this box in settings>playback allows direct streaming of a lot of content:
But for “the problem show” what do logs say? How is it encoded? Quick sync can’t transcode everything. The older your processor the less it can do and niche formats it definitely can’t do at all. Like unless you have a real new cpu (13th or 14th gen) it’s not doing av1 or vp9 content and that’s still getting offloaded to cpu for transcoding. And if it’s some ogg vorbis thing or whatever it won’t work. And do logs verify igpu is being utilized for transcoding/mapped correctly? It can be a bit of a pain in the ass (unless they improved the process, it’s been a while since I’ve had to do it)
Does turning off subtitles at the settings level avoid this? Like if I turn subs off for all users will it stop it?
Until users turn them back on
AFAIK there’s no setting to outright disable subs. Maybe there is one somewhere, or you could strip them from media, but that’s terrible because subs in is always the correct choice. What can help is running the extract subtitles plugin though that won’t help for format.
How are resources everything in a mini PC?
Just upgrade the components, well, except the GPU or cpu