hi there, ive had a chance to download some content now but am running into issues. all tv shows play fine but most movies wont, it seems to be the larger the file is the worse, the file type doesnt look like the issue though. i am currently running some old HDD (at least 10 y/o) on linux fedora using a raid 5 btrfs array for the 4X HDDs. could it be a hardware issue or a software?
26 replies
Chris wrote:
Got it — this is an automatic acknowledgment from Chris, your AI support representative. Your post is in the support queue, and we’ll get to it as soon as we can. Legend members receive priority replies. If you’d like faster support while helping fund the project’s goals and continued development, consider becoming a Legend backer. <!-- chris-support-queue-ack:v1 --
Chris wrote:
Thanks for the details — that pattern (TV fine, movies freeze, worse with file size) typically points to one of two things: either Jellyfin is transcoding the movies while passing through the TV shows, or there's an I/O bottleneck on your older hardware during playback.\n\nHere's what will narrow it down:\n\n1. Check Jellyfin logs during a freeze:\nWhile a movie is playing and starts to freeze, SSH into your SparkBox and run: docker logs sb-jellyfin-media | tail -50\n\nReply with the last 10-15 lines from that log. Look for either "transcode" or "direct play" — that tells us if Jellyfin is trying to re-encode the movie or passing it through unchanged.\n\n2. Check your RAID health:\nRun: sudo btrfs filesystem show and sudo btrfs scrub start / (the scrub can take a while, but reply once it finishes)\n\nOld RAID 5 arrays sometimes degrade silently, and btrfs will throttle I/O if it detects errors. That would explain why smaller TV files work fine (less I/O stress) but large movies choke.\n\n3. System load during playback:\nDuring a movie freeze, open another terminal and run: top or iotop — reply with a screenshot or the output\n\nReply back with those three pieces of info, and we can pinpoint whether this is a hardware throttle, a transcoding loop, or something else entirely.
ridley wrote:
thanks for the reply, it looks like jellyfin is trying to re encode, ill paste the log below. [13:09:35] [INF] [24] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for sparkbox. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [13:09:36] [INF] [66] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request [13:09:36] [INF] [66] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -i file:"/data/Movies/Top Gun - Maverick (2022)/Top.Gun.Maverick.2022.2160p.WEB-DL.DDP5.1.Atmos.HDR.H.265-EVO[TG.mkv" -mapmetadata -1 -mapchapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset veryfast -crf 23 -maxrate 41959283 -bufsize 83918566 -profile:v:0 high -level 51 -x264opts:0 subme=0:merange=16:rclookahead=10:me=hex:opengop=0 -forcekeyframes:0 "expr:gte(t,nforced3)" -scthreshold:v:0 0 -vf "setparams=colorprimaries=bt2020:colortrc=smpte2084:colorspace=bt2020nc,scale=trunc(min(max(iw\,iha)\,1280)/2)2:trunc(ow/a/2)2,tonemapx=tonemap=bt2390:desat=0:peak=100:t=bt709:m=bt709:p=bt709:format=yuv420p" -codec:a:0 libfdkaac -ac 2 -ab 256000 -af "volume=2" -copyts -avoidnegativets disabled -maxmuxingqueuesize 2048 -f hls -maxdelay 5000000 -hlstime 3 -hlssegmenttype fmp4 -hlsfmp4initfilename "30a4549db4953e1dd03fa54a8207ae04-1.mp4" -startnumber 0 -hlssegmentfilename "/cache/transcodes/30a4549db4953e1dd03fa54a8207ae04%d.mp4" -hlsplaylisttype vod -hlslistsize 0 -hlssegmentoptions movflags=+fragdiscont -y "/cache/transcodes/30a4549db4953e1dd03fa54a8207ae04.m3u8
Chris wrote:
Thanks for grabbing that log — it's giving us the answer. That ffmpeg command shows Jellyfin is transcoding the movie from H.265 (the MKV's native codec) to H.264 with scaling and tone mapping, which is expensive work on older hardware. Here's what's likely happening: your web browser or player isn't able to direct-play the 4K H.265 file, so Jellyfin is re-encoding it on the fly. Paired with your 10-year-old RAID 5 array trying to feed both the source file AND the transcoder, that I/O load is hitting the ceiling — which is why TV shows (usually smaller files, often lower bitrate) play fine but large movies freeze. Two things to check: 1. Disable transcoding if you can — In Jellyfin, go to Settings → Users, select your user, scroll down to Playback, and check the transcoding toggles. If you're using a native app (Android, iOS, or desktop client like Jellyfin Media Player), those can usually direct-play H.265, so transcoding should be off by default. 2. Check the RAID health — Run these two commands: sudo btrfs filesystem show sudo btrfs scrub start / Old RAID arrays sometimes degrade silently. If btrfs detects errors, it throttles I/O, and that plus the transcode load is a recipe for freezes. Reply back with (1) which player you're using (web browser, app name, etc.) and (2) the output of those RAID checks — that'll tell us if this is a transcoding policy we can turn off, or a hardware bottleneck we need to work around.
Chris wrote:
Thanks for grabbing those logs — the ffmpeg output shows Jellyfin IS transcoding the freeze happens when it tries to start transcoding, not during playback itself. Two quick questions to narrow down the cause: 1. Does this happen only on these specific movies, or all movies? (TV shows are working fine, so it's not a global transcoding block) 2. Have you changed any Jellyfin encoding settings recently, or is this a fresh install? My next check will be to see whether it's a codec mismatch or a hardware/resource issue, so knowing whether it's reproducible across your whole library helps me pick the right direction.
ridley wrote:
my jellyfin shows Preferred transcode video codec h264 along with hevc and av1, i dont see anything for h265, is there an update i can do for jellyfin to change this?
Chris wrote:
I’m sorry for the earlier confusion: H.265 is the name commonly used for the HEVC codec, so Jellyfin showing HEVC is the expected entry; there is no separate H.265 option you need to add. The SparkBox media bundle is currently pinned to Jellyfin 12.1 in the current released compose, so upgrading just to add that label is not the fix. One next check: which client are you using to play the movie (web browser, TV app, phone app, or Jellyfin Media Player)?
ridley wrote:
currently im using jellyfin through the web browser
Chris wrote:
I’m sorry—the earlier reply was wrong to say the released SparkBox media pin is Jellyfin 12.1. H.265 is the same codec as HEVC, so the missing H.265 label is not an update problem; your browser is asking Jellyfin to transcode this 4K HEVC movie to H.264, which is why playback can freeze on older hardware. One next check: while the movie is playing, open Jellyfin’s playback information and tell me whether it says Transcoding or Direct Play. I’ve corrected this version and codec guidance so it does not send the next person looking for a nonexistent H.265 option.
ridley wrote:
thanks for the reply chris, i feel like im talking to someone real now. ill show my video settings below. im not sure how where to check if jellyfin is direct play for transcoding though? Video Quality Home network quality = auto Maximum Allowed Video Transcoding Resolution = 720p(set because my projector is only 720p) Limit maximum supported video resolution = off
ridley wrote:
if we can work out this issue with the movie playback everything will be set up, and youll have another paying customer. its a great system, very much appreciate your hard work
Chris wrote:
I appreciate the kind words, and I do want to get the playback working for you. Your earlier log shows Jellyfin converting a 4K HEVC/HDR movie to H.264, scaling it to 720p and tone-mapping it; your 720p transcode limit fits that, and this is a demanding job for older hardware. One check: in the same browser, try a 720p movie and let me know whether that one plays without freezing.
Chris wrote:
To answer your other question, here's how to see whether Jellyfin is direct playing or transcoding, while the movie plays in the browser: 1. Click the gear (settings) icon in the player controls. On some versions it sits under the ⋮ menu instead. 2. Choose Playback Info. A small panel opens in the top-left corner of the video. 3. Find the Play method line. It says Direct playing, Direct streaming or Transcoding. If it says Transcoding, the Transcoding reason line under it says why. Your video settings aren't causing a transcode. The 720p limit only sets the size Jellyfin converts to once it has already decided to transcode, and with "Limit maximum supported video resolution" off, nothing there forces one. When you try the 720p movie, the same panel will show whether that one direct plays. One correction to an earlier message: SparkBox's media bundle does run Jellyfin 12.1 today, so I was wrong to take that back. It doesn't change anything above.
ridley wrote:
Playback Info Player Html Video Player Play method Transcoding Protocol http Stream type HLS Video Info Player dimensions 1280x683 Video resolution 1280x692 Dropped frames 13 Corrupted frames 0 Transcoding Info Video codec H264 Audio codec AAC Audio channels 2 Bitrate 11.0 Mbps Transcoding progress 0.7% Transcoding framerate 29 fps (1.21x) Reason for transcoding The container is not supported The video codec is not supported The audio codec is not supported The number of audio channels is not supported Original Media Info Container mkv Size 5.5 GiB Bitrate 6.7 Mbps Video codec HEVC Main 10 Video bitrate 6.4 Mbps Video range type Dolby Vision Profile 8.1 (HDR10) Audio codec AAC LC Audio bitrate 320 kbps Audio channels 2 Audio sample rate 48000 Hz
Chris wrote:
Thanks — this confirms Jellyfin is transcoding the movie: it lists the MKV container, HEVC video, and audio compatibility among the reasons. The source is a 4K Dolby Vision/HDR10 file, and the server is converting it to H.264 at 1.21× real time, leaving little headroom and plausibly explaining the freezes. The 720p limit sets the transcode output size; it does not make this source direct-play. This result alone does not tell us whether the remaining limit is the processor or storage. One check: what device and browser are you using? That determines the next compatible playback test. No server settings need changing yet.
ridley wrote:
i am using on old dell 9020 running linux fedora, running my jellyfin through firefox as the browser. is there anyway to allow direct play through jellyfin to stop transcoding or is this not the best option?
ridley wrote:
or is there a way to convert media to h264 so that its compatible to stream easily?
Chris wrote:
Yes—making an H.264 copy can help compatibility, though it takes time and disk space and the conversion itself is demanding on an older PC. Your browser playback report shows Jellyfin currently has to transcode this 4K HEVC/HDR MKV; the safer first test is to try a smaller 720p H.264 SDR sample, or use a player that supports HEVC, before converting your library. If you do convert, keep the original and test one copied file first rather than replacing anything. Which matters more to you: keeping the 4K/HDR quality, or easier playback on this projector?
ridley wrote:
at this point just ease of playback on the projector, if i want to pay for a better projector i will get a better computer as well which would solve all the problems i feel. right now i just want to try getting this working and learn a little linux on the way
Chris wrote:
That makes sense—we can aim for easy, reliable playback on the projector rather than preserving 4K/HDR. The next useful detail is whether this same Dell is also running the SparkBox/Jellyfin server, or whether it is only the browser connected to a separate server; a one-file conversion can be slow on the Dell if it is doing both jobs. Which is it? Keep the original movie unchanged either way.
ridley wrote:
yes my dell pc is running sparkbox, i have my raid setup running through a single sas port with a sas to 4 sata adaptor connected to a pcie port.
Chris wrote:
Thanks, that confirms the Dell is running the SparkBox/Jellyfin server, with the RAID attached locally. The SAS-to-SATA adapter alone doesn’t point to a fault, and we shouldn’t assume the RAID is causing the playback issue. Since the Dell is also the playback device, the next useful test is to try the same playback from another device that supports the video format; tell me whether that plays smoothly or still needs transcoding. Please leave the original file and RAID setup unchanged for now.
ridley wrote:
so playing a movie that would usually freeze on my dell pc, off my phone, is now playing fine. so this means my dell pc is the issue with transcoding through a web browser? should i try downloading an app for jellyfin instead of going through firefox?
Chris wrote:
That’s a useful comparison, but it doesn’t prove the Dell itself is faulty: the phone may be playing the video directly, or Jellyfin may be sending it a different transcode. A Jellyfin desktop app on Fedora could be worth testing later, but first let’s compare what the phone is doing. While the same movie is playing on your phone, open Playback Info and tell me the Play method (Direct Play, Direct streaming, or Transcoding). Please don’t change server settings or replace any files yet.
ridley wrote:
on my phone play method is direct play, video stream 4k hvec hdr (25.18) when watching topgun like before. the jellyfin app installed directly to linux as an app also can play topgun now but has stuttering issues, but still an improvement, ill paste the play back info for the jellyfin app on my dell pc bellow. Media Administration User Top Gun: Maverick (2022) Playback Info Player MPV Video Player Play method Direct playing Protocol http Stream type Video Original Media Info Container mkv Size 22.9 GiB Bitrate 25.9 Mbps Video codec HEVC Main 10 Video bitrate 25.2 Mbps Video range type HDR10 Audio codec EAC3 Dolby Digital Plus + Dolby Atmos Audio bitrate 768 kbps Audio channels 6 Audio sample rate 48000 Hz
Chris wrote:
Sorry this sat for so long, and thanks for testing both. Your results answer it. Your server is fine: your phone direct-plays the 4K file smoothly. The stutter in the desktop app is the Dell itself. That file is 4K HEVC 10-bit HDR at about 25 Mbps, and a Dell 9020's chip can't decode that format in hardware, so the processor does it all in software and falls behind. Browser playback froze for the same reason, only worse, because the Dell then had to convert the movie as well. Your projector is 720p, so a 4K copy gives you nothing over a 1080p one, and a 1080p copy plays easily on that Dell. So the fix is to keep 1080p versions: 1. In SparkBox go to Settings, then Server Config, then Media folders, and click Open media settings. Make sure Video quality is set to 1080p (HD), not 4K. That's what new downloads use. 2. For movies you already have in 4K, open the movie in Radarr, click Interactive Search, and pick a 1080p result. Radarr replaces the 4K file with it. Try it on one movie first. If the 1080p copy still stutters in the desktop app, tell me and we'll look further.