jellyfin / jellyfin-android

Android Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
1.54k stars 249 forks source link

Internet streaming bitrate limit doesn't seem to work #718

Open branches78 opened 2 years ago

branches78 commented 2 years ago

Describe the bug

I set the "Internet streaming bitrate limit" to 6.5Mpbs and accessed the server outside my LAN, but it looks like either the server or the Android app is ignoring this setting completely, nothing above the threshold is getting transcoded, whether using exoplayer or the web player nothing transcodes.

Logs

No response

Application version

2.4.4

Where did you install the app from?

Google Play

Device information

TCL 20 SE

Android version

Android 11

Jellyfin server version

10.8.0

Which video player implementations does this bug apply to?

Jtav1 commented 2 years ago

This came up in a reddit thread yesterday, and in testing it myself (setting every playback quality option to 720p 8mpbs, and max resolution of 720p) all of those were completely ignored and the app would only direct play content on home or cell networks. On all video players (even external VLC).

Using a Pixel 5 on Android 13, JF server at 10.8.4, Android app from the play store v2.4.4

jellyfin-bot commented 1 year ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

branches78 commented 1 year ago

The issue is still present.

lolgas commented 1 year ago

Hello. I am also experiencing this issue. New install of Jellyfin Server today on Windows 11. Streaming from Safari browser on iOS using mobile data, no vpn or anything present. The Jellyfin Server is set to 5mbps limit in Playback --> Streaming however the server is sending > 5mbps all the time.

[edit] Setting the per user limit instead of the global limit also does not work.

danozzy86 commented 1 year ago

I believe I was able to get the bandwidth limit functioning for remote connections. Right now I'm running version 10.8.9 of the docker image from TrueCharts for TrueNAS. Under the network, configurations make sure to exclude any proxy addresses using the ! operator and add your local subnet to the LAN Network field, preferably in that order. You can also include any proxies under known proxies. image

You can then set your desired streaming limit under playback streaming settings or on a per-user basis. image

From all my testing after configuring this I found that the quality selector in settings simply doesn't care what the limit is set to. It will show you every single quality option, but will still transcode the video to be below the set bandwidth limit for remote connections.

Local Playback: image

Remote Playback: image

image

My remote bandwidth limit is set to 10mbs and when watching remotely, the video is transcoded to below 10mbs with the reason for transcoding being "The video's bitrate exceeds the limit".

Hope this helps

Jtav1 commented 1 year ago

I can confirm that works, also on 10.8.9 on the official docker image. I wasn't aware of that syntax for excluding the local reverse proxy from the local network setting.

danozzy86 commented 1 year ago

Saw it mentioned in a dev channel a little while back, but as long as you have your proxy listed in known proxies you should be good as it shouldn't make a difference, I was just testing it out. Already was using a loadbalancer for some other services so I decided to just use that and cloudflare instead of a reverse proxy.

jellyfin-bot commented 1 year ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

branches78 commented 1 year ago

So, turns out this is actually working without having to do the above workaround, the problem is, the Jellyfin app and the web app are not detecting the download speed of the external connection (mobile data or WiFi) in order to determine if it's fast enought to playback the media directly (as long as it's below the threshold) or if it needs to be transcoded because it's not fast enough.

To give you an idea, the average download speed of the mobile data on my phone is between 1 to 3 Mbps and the server has an upload speed limitation of 24 Mbps, therefore, everything higher than the mobile data download speed should be transcoded regardless of the upload speed limitation set in the server but it's not working.

To confirm that the upload speed limitation is actually working, I reduced it from 24Mbps to 2Mbps, then I played a FLAC song with a higher bitrate and it got transcoded (see below screenshot).

The Emby Android app and the web app are able to determine the download speed of the mobile data on my phone so the media gets transcoded if it's higher than the download speed.

image

ensingerphilipp commented 10 months ago

I believe I was able to get the bandwidth limit functioning for remote connections. Right now I'm running version 10.8.9 of the docker image from TrueCharts for TrueNAS. Under the network, configurations make sure to exclude any proxy addresses using the ! operator and add your local subnet to the LAN Network field, preferably in that order. You can also include any proxies under known proxies. image

You can then set your desired streaming limit under playback streaming settings or on a per-user basis. image

From all my testing after configuring this I found that the quality selector in settings simply doesn't care what the limit is set to. It will show you every single quality option, but will still transcode the video to be below the set bandwidth limit for remote connections.

Local Playback: image

Remote Playback: image

image

My remote bandwidth limit is set to 10mbs and when watching remotely, the video is transcoded to below 10mbs with the reason for transcoding being "The video's bitrate exceeds the limit".

Hope this helps

Thank you for this! Contrary to what @branches78 for me the transcoding only kicks in when adding my Reverse Proxy Server to the Lan Networks with Exclamation mark and additionally also the Gateway?! Im unsure why adding the gateway is needed - this makes no sense.

Whats interesting is that i have to add the reverse proxy like that even tho it is already on the list of known proxies and i do provide the x-forwarded-for header that jellyfin should respond to anyways. So some issue must be present here

jellyfin-bot commented 6 months ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

branches78 commented 6 months ago

This issue is still present as stated in my last comment on 10/30/23.

kayahasan commented 5 months ago

The web player is running. Exoplayer It ignores the limits.

jellyfin-bot commented 1 month ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

ShadowJonathan commented 1 month ago

Still an issue, also, https://nostalebots.xyz