#Player doesn’t adapt to resolution

1 messages · Page 1 of 1 (latest)

near python
#

The Bunny Stream player seems to always choose the highest possible bitrate. After letting the player stream a video for a while on auto quality (default), the player chooses 2160p even though the player’s actual resolution is much smaller. This even occurs when playing the video in portrait mode on an iPhone 15 Pro where the actual screen resolution is 2556 by 1179 pixels (i.e., 1440p should be enough even if the player adapted to the screen resolution and not the player’s resolution).

near python
#

I tried streaming on a Windows computer with exactly 1920x1080 resolution with the same result. The auto setting chose 2160p anyway. With Bunny Stream’s default encoding settings, this will consume five times the bandwidth (25,000 kbps instead of 5000 kbps).

near python
#

If anyone can get resolution adapting bitrate to work, please let me know.

serene copper
#

I wonder if anyone else is experiencing this problem. I'm working on integrating bunny myself, so I hope this get's solved!

near python
#

Looking into the settings for hls.js, there is at least a setting for limiting the resolution. Ping @copper flume.

capLevelToPlayerSize

(default: false)

if set to true, the adaptive algorithm with limit levels usable in auto-quality by the HTML video element dimensions (width and height). If dimensions between multiple levels are equal, the cap is chosen as the level with the greatest bandwidth. In some devices, the video element dimensions will be multiplied by the device pixel ratio. Use ignoreDevicePixelRatio for a strict level limitation based on the size of the video element.

https://github.com/video-dev/hls.js/blob/master/docs/API.md#hlscapleveltoplayersize

https://github.com/video-dev/hls.js/blob/master/docs/API.md#capleveltoplayersize

GitHub

HLS.js is a JavaScript library that plays HLS in browsers with support for MSE. - video-dev/hls.js

near python
#

I submitted a support ticket.

near python
#

Bunny Stream just confirmed that this is intentional behavior, not a bug. They’ve configured the solution to only take the visitor’s bandwidth into consideration! This is something you should keep in mind if you upload 4K versions of your videos. Your videos can consume more than 5x the bandwidth that’s actually needed and cost you 5x as much (and waste your visitors cellular data if they are on a bandwidth capped cellular plan).

#

Player doesn’t adapt to resolution [not bug, intentional design]

reef trail
#

Oh dear, thank you for the update

near python
#

The developers of Presto Player (another Plyr based Player) have confirmed that they will enable resolution based adaptive streaming. Presto Player works pretty well with Bunny but lacks some features, e.g., AirPlay, MediaCage, timeline thumbnails, and chapters (shown as markers instead).

https://wordpress.org/support/topic/player-doesnt-adapt-to-resolution/#post-17999621

near python
near python
#

Please note that issue persists with Bunny Stream’s own player (both based on Plyr Player).

copper flume
#

I'll take a look internally.

grizzled wagon
#

I don‘t see an issue with this except bandwidth costs. A downsampled 4k video still looks better than a native 1080p video. If you worry about the cost of 4k streaming, don‘t do it or bring your own player 🤷‍♂️

near python
copper flume
near python
#

@grizzled wagon Please note that I don’t want to take away the option for users to stream downscaled videos. I’m talking about situations where the cost doesn’t make any sense, neither for us or our viewers on bandwidth capped cellular plans. E.g., streaming in 2160p to a wide-screen video shown in portrait mode on a phone (where even 720p would have to be downscaled).

ruby blaze
#

Good to know. I was looking into migrating away from nuevo to bunny player but this is the second feature that the bunny player doesn't support.

near python
ruby blaze
near python
copper flume
# ruby blaze Unconfirmed by staff, but apparently the view count only increases if you use th...

Tracking views without our player is very hard to do, we could do it via the HLS playlist on CDN level but that would be unreliable. Hence why we do it on our player as it makes sense to do metrics that way. If you're using a custom player then metrics shoud be handled with plugins or your own code as you can just hook onto the events and send that data to your own server for processing.

copper flume
near python
#

Player doesn’t adapt to resolution

near python
#

Just checking in to to hear if you’ve reached any conclusions after your internal testings, @copper flume?

copper flume
near python
near python
copper flume
#

I didn't get an update, I'll chase with them directly.

near python
copper flume
copper flume
#

Are you using our embedded iframe if I remember correctly?

near python
#

(Dynamic bitrate depending on resolution.)

copper flume
#

I am asking if changing the embed urls to use a query string is a workable solution for you or if should push for a toggle for all videos?

near python
copper flume
#

I see, would it be possible to inject query strings to the iframe?

near python
#

Easy fix!

copper flume
#

I'll see what I can push internally then.

near python
#

Thank you so much!

copper flume
#

Just a heads up, I got the team to implement something, will update you the moment it hits production.

near python
copper flume
near python
copper flume
copper flume
reef trail
copper flume
near python
copper flume
#

I shall update docs to include this as well.

near python
#

Works great by the way.