Jellyfin Forum
Bitrate issues with direct play. - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: General Questions (https://forum.jellyfin.org/f-general-questions)
+--- Thread: Bitrate issues with direct play. (/t-bitrate-issues-with-direct-play)



Bitrate issues with direct play. - detract_outrage348 - 2025-07-13

I'm running Jellyfin on a server in my apartment.  While I have great downlaod speeds with my ISP (1Gb down), I have pretty terrible upload speeds (30Mb up).

When I connect to my server remotely via VPN to play media files, I often encounter playback issues.  In almost all cases, I'm using an Apple TV and the Infuse player on that client.  My media files are all 1080p.

However, not ALL media files have playback issues even though they are all 1080p.  I understand that this is likely due to the fact that they all have different video bitrates.  Files with a bitrate of 15000 kbps play fine, but files with a bitrate that exceeds my ISP's upload speed (30000 kbps) end up buffering constantly.

I understand that in in the Jellyfin dashboard under Playback -> Streaming, you can set an "Internet streaming bitrate limit (Mb)".  However, when I set this to something like 15, it doesn't do anything.  I assume this is because all of my video files are technically fully compatible with the streaming clients and are utilizing Direct Play, and that this bitrate-limit setting might only be used in cases of transcoding.

So my questions are:
1. Is my understanding of the situation accurate?
2. Is there any way for me to limit the bitrate on the Jellyfin side without transcoding?  If not, is there a way for me to always force transcoding?
3. Any other suggestions for how I might solve this?

Thank you in advance!


RE: Bitrate issues with direct play. - Checkerknight - 2025-07-13

0. I am not an expert, I do all my transcoding prior to moving my files onto my server (running off a pi so its not possible) and I am really just voicing my own thoughts here.

1. I do believe your understanding is correct, if the bitrate is higher than supported by your device (ie. older chromecast devices only allow a video with a bitrate of less than 12k and wil force transcoding to be compatible if higher) your host machine will transcode the file to work with your client.

2. Going hand in hand with #1, if you set a max bitrate on jellyfin then it will force transcoding for anything above that. Media with a bitrate less than the value you enter won't encode though. But I will ask as to why would you want to force transcoding always? If it's not necessary for playback theres no point in putting the strain on whatever your host device is.

3. My best suggestion would be to find a few movies that play flawlessly and look great, and set the limit to about that. I read a single discussion thread where someone stated that the Apple TV supports up to 31mbps, but I could not find that number on the product page so thats to be taken lightly My own personal limit for my transcoding I do is 10k (This value was decided in conjunction with the earlier mentioned chromecast issue). A 1080p video with a bitrate of 8k-12k is the optimal range from what I read when I started my project, and 10k looks just fine in my opinion. 

4. Sorry if I'm talking out my ass, this is how my brain works Smiling-face


RE: Bitrate issues with direct play. - detract_outrage348 - 2025-07-13

Thanks for your reply. My Apple TV supports the video codec just fine. The problem is: when I’m remote and connecting to my jellyfin server, the Apple TV is fully compatible with the source file, and therefore it streams as “direct play”. As such, any bit rate limits I set on Jellyfin don’t seem to get utilized because no transcoding is taking place. This is an issue because my ISP upload speed is only 30Mbps (on a good day). So any video files with a high bitrate that exceeds 30mbps end up constantly buffering when played from a remote location. 

So i assume that to have the Jellyfin bitrate limits kick in, I need the files to get transcoded, which was why I was seeing if there was a way to force that (or possibly if there is another solution)


(2025-07-13, 06:43 AM)Checkerknight Wrote: 0. I am not an expert, I do all my transcoding prior to moving my files onto my server (running off a pi so its not possible) and I am really just voicing my own thoughts here.

1. I do believe your understanding is correct, if the bitrate is higher than supported by your device (ie. older chromecast devices only allow a video with a bitrate of less than 12k and wil force transcoding to be compatible if higher) your host machine will transcode the file to work with your client.

2. Going hand in hand with #1, if you set a max bitrate on jellyfin then it will force transcoding for anything above that. Media with a bitrate less than the value you enter won't encode though. But I will ask as to why would you want to force transcoding always? If it's not necessary for playback theres no point in putting the strain on whatever your host device is.

3. My best suggestion would be to find a few movies that play flawlessly and look great, and set the limit to about that. I read a single discussion thread where someone stated that the Apple TV supports up to 31mbps, but I could not find that number on the product page so thats to be taken lightly My own personal limit for my transcoding I do is 10k (This value was decided in conjunction with the earlier mentioned chromecast issue). A 1080p video with a bitrate of 8k-12k is the optimal range from what I read when I started my project, and 10k looks just fine in my opinion. 

4. Sorry if I'm talking out my ass, this is how my brain works Smiling-face



RE: Bitrate issues with direct play. - Checkerknight - 2025-07-16

How are you remoting in? What device/data connection are you using?

Is it buffering from the upload speed, or buffering from transcoding? This would be the main way to pinpoint what's going on.

If you have a 30Mb upload the 10k bitrate should honestly be fine which would make me think it's transcoding buffering.
I would think the only way to force transcoding is to crank that bitrate down to an absurd level (for testing purposes) and go back up from there until it gets watchable.
I can look through jellyfin transcoding settings but like I said, I don't do transcoding on jellyfin so when it comes to setting all that up I wouldn't know how to help any further unfortunately.