Jump to content
Painkiller8818

Online Streaming Bitrate limit wrong calculated

Recommended Posts

Painkiller8818

Hi,

 

I set all my users to a max bitrate of 8MBit but now i see they get less and not what i set them. My Internet isn't a Problem because i have enough and actually running just one stream but this stream is limited to 6MBit instead of 8Mbit as it should be.

grafik.thumb.png.778452d6431a0e45610e35b03308007d.pnggrafik.png.183dd4ee99b3e8ba63a37b8635790732.png

Share this post


Link to post
Share on other sites
Happy2Play

Can you post the server and ffmpeg log.

Share this post


Link to post
Share on other sites
Happy2Play
Posted (edited)

Something doesn't look quite right as I would expect Remote limit and max to be the same. But @Luke would have to comment on why this is happening.

2020-08-01 21:37:51.080 Info MediaInfoService: Bitrate exceeds DirectPlay limit: media bitrate: 7922604, max bitrate: 6580000
2020-08-01 21:37:51.080 Info MediaInfoService: Bitrate exceeds DirectStream limit: media bitrate: 7922604, max bitrate: 6580000
2020-08-01 21:37:51.080 Info MediaInfoService: RemoteClientBitrateLimit: 8000000, RemoteIp: xxx.xxx.xxx.xxx, IsInLocalNetwork: False

&VideoBitrate=5940000&AudioBitrate=640000

 

Edited by Happy2Play

Share this post


Link to post
Share on other sites
Q-Droid

It looks like clients are responding with lower max bitrate than what the server is offering.

MaxStreamingBitrate=7000000
MaxStreamingBitrate=6720000
MaxStreamingBitrate=6580000
 

Share this post


Link to post
Share on other sites
Painkiller8818

The Client is a Samsung TV (latest Samsung App) and has no limit set, because i limit the clients max bitrate on the server side

Share this post


Link to post
Share on other sites
Q-Droid

If the client side setting for Internet Video Streaming Bitrate is Auto then the Emby server and client try to figure out the available bandwidth between them. The value they detect can be wrong. If you want to guarantee that this particular client always hits your server limit of 8mbps then set the client from Auto to a value equal to or higher than your server limit. As long as the client actually has 8mbps or better.

 

 

Share this post


Link to post
Share on other sites
Painkiller8818

Changed the Client now to 10Mbit Limit on the Client device itselve. Now it taking more bandwith than my User Limit (8.7MBit) right now instead of 8Mbit 

 

So however it is wrong calculated and setting the Limit on every Client is not the right solution because i can't Set a Limit on every Client device my friends are using. 

Share this post


Link to post
Share on other sites
Painkiller8818

@Luke Any suggestions or do you know why this is happening?

Share this post


Link to post
Share on other sites
Luke
Quote

I set all my users to a max bitrate of 8MBit but now i see they get less and not what i set them

This value is a limit, it is a maximum. Setting it to 8 mbps doesn't mean they will get 8 mbps. It means they won't go over 8 mbps no matter how they have configured the quality setting from within the app they are using.

If you set the limit to 8 mbps on the server, and they set 6.5 mbps in the app, then they will get the lower of the two values.

Share this post


Link to post
Share on other sites
Painkiller8818
37 minutes ago, Luke said:

This value is a limit, it is a maximum. Setting it to 8 mbps doesn't mean they will get 8 mbps. It means they won't go over 8 mbps no matter how they have configured the quality setting from within the app they are using.

If you set the limit to 8 mbps on the server, and they set 6.5 mbps in the app, then they will get the lower of the two values.

First i haven't set a limit on the clients, only on the Server, and the clients was lower than my limit (i set it to 8MBit) but they only got 6.4MBit) like you can see on the screenshots.

After that i tried to set a limit to the client app  (10MBit but my 8MBit limit on the server was still active) and the user was over the 8MBit so he can get over the limit i set on the server.

 

Share this post


Link to post
Share on other sites
cayars

@Painkiller8818, when you look at the settings you see in the client what is the highest setting that could be used that's under your server limit?

Share this post


Link to post
Share on other sites
Q-Droid
14 minutes ago, Painkiller8818 said:

First i haven't set a limit on the clients, only on the Server, and the clients was lower than my limit (i set it to 8MBit) but they only got 6.4MBit) like you can see on the screenshots.

After that i tried to set a limit to the client app  (10MBit but my 8MBit limit on the server was still active) and the user was over the 8MBit so he can get over the limit i set on the server.

 

Look at your logs. The actual conversion rate should be at 8mbps or lower even when the display shows slightly over 8mbps. The display value might be skewed by the amount converted faster than the limit to fill the playback buffer. Keep in mind the server streaming limit is for the media bitrate and it does not cap the data transfer limit from the server to your client.

 

Share this post


Link to post
Share on other sites
Painkiller8818
26 minutes ago, cayars said:

@Painkiller8818, when you look at the settings you see in the client what is the highest setting that could be used that's under your server limit?

No i can set the highest client limit much higher than my server limit but i can't tell you exactly what value it was becuse i am no longer on site

Share this post


Link to post
Share on other sites
Luke

I don't really understand the problem you're trying to report. You set the limit on the server to 8. The client has a limit of roughly 6.5, which could either be set manually or could come from the Auto value.

So 6.5 is lower than 8 and that's why you got 6.5.

Share this post


Link to post
Share on other sites
cayars
Posted (edited)

I don't think that's the issue.  The server is set to 8 mb but the client with no override is only using 6.5 mb so not getting the highest quality.  At least that's how I read it.

But I don't think it's ever been said the client will maximize the bandwidth but will use one of it's presets under the limit.

Edited by cayars

Share this post


Link to post
Share on other sites
cayars
22 minutes ago, Painkiller8818 said:

No i can set the highest client limit much higher than my server limit but i can't tell you exactly what value it was becuse i am no longer on site

It's not a yes or no question. 

Share this post


Link to post
Share on other sites
sooty234

This process really doesn't work well. I was just fooling around with it. 

Server user limit = 6 Mb/s  +  in app limit = 6 Mb/s   =   Server transcodes to ~2.5 Mb/s

Server user limit = 6 Mb/s  +  in app limit = 120 Mb/s  =  Server transcodes to ~2.5 Mb/s

Server user limit = 6 Mb/s  +  in app limit = auto   =   Server transcodes to ~2.5 Mb/s

Server user limit = no limit  +  in app limit = 6 Mb/s   =   Server transcodes to ~2.5 Mb/s

Server user limit = no limit  +  in app limit = 120 Mb/s  =  No transcoding, and movie direct plays at 10+ Mb/s

Clearly my bandwidth isn't an issue. And bitrates confirmed in external player.

  • Like 1

Share this post


Link to post
Share on other sites
Luke
4 minutes ago, sooty234 said:

This process really doesn't work well. I was just fooling around with it. 

Server user limit = 6 Mb/s  +  in app limit = 6 Mb/s   =   Server transcodes to ~2.5 Mb/s

Server user limit = 6 Mb/s  +  in app limit = 120 Mb/s  =  Server transcodes to ~2.5 Mb/s

Server user limit = 6 Mb/s  +  in app limit = auto   =   Server transcodes to ~2.5 Mb/s

Server user limit = no limit  +  in app limit = 6 Mb/s   =   Server transcodes to ~2.5 Mb/s

Server user limit = no limit  +  in app limit = 120 Mb/s  =  No transcoding, and movie direct plays at 10+ Mb/s

Clearly my bandwidth isn't an issue. And bitrates confirmed in external player.

You also need to factor in the bitrate of the media you're playing, so there's lots of variables. The server won't upscale the bitrate, that is avoided. And once again, the settings you apply are maximums - you're telling the server how much the network can handle. They are not set amounts.

Share this post


Link to post
Share on other sites
sooty234
5 minutes ago, Luke said:

You also need to factor in the bitrate of the media you're playing, so there's lots of variables. The server won't upscale the bitrate, that is avoided. And once again, the settings you apply are maximums - you're telling the server how much the network can handle. They are not set amounts.

Well, here's the media I tested with:

1735542395_Annotation2020-08-02162002.jpg.1b983e54e57c92e0326dee4908cd0e6d.jpg

 

And played on Android mobile, so no upscaling. And as illustrated, using any limit gives the same output bitrate (unless lowering it, of course). Its's either 2.5 Mb/s or full media bandwidth, and it direct plays with no problems. It appears as though the server can't determine the bandwidth, so it just takes a low ball guess. What would be preferable is that the limit I set is simply what the server uses, and makes no calculations/guesses, at all. If I set 6 Mb/s, the server transcodes to ~6 Mb/s, with no attempt to determine the bandwidth. The "let's aim low to ensure smooth playback" ideology, is terrible. Let's get rid of that, and let the server admin take control.

They should be 'set amounts'.

Share this post


Link to post
Share on other sites
sooty234

 Same movie played with no limits

 

Screenshot_20200802-164641_1.png

Share this post


Link to post
Share on other sites
Luke

Sorry I can't really respond to any of these without knowing the full context. In order for us to comment on one of these examples, please make sure to provide the server log, ffmpeg log if there was one, and a copy of the media info from the bottom of the web app detail screen. Please also indicate the value of the in-app quality setting from the app the media is being played from. Thanks.

Share this post


Link to post
Share on other sites
sooty234

Oh Luke.... It's all same example. Apart from the logs, I have provided everything you just asked for. And the logs will be worthless. There is no reason for the transcode to be lower than the rate I have set. I set it at 6 Mb/s and the server should just apply that, and not decide for me what the bitrate should be. I don't want anyone or anything but me, to decide what the bitrate to the client should be. This 'feature' has never worked, because it shouldn't exist. If I use ffmpeg, DVDfab or any other software like that, and I set a bitrate, I get that bitrate. That's what it's supposed to be. The same should apply with the server. Stop deciding for us what the bitrate should be. So many people have complained about this, and still you guys cling to it. If you don't want to get rid of it (and you really should), give us the option to disable it, and not let the server set terrible bitrates. 

  • Like 2

Share this post


Link to post
Share on other sites
cayars

The logs aren't worthless at all as they will help determine why the bitrate used were chosen when not direct played.

Could you humor me and try a couple of things?  Set the server limit to 10mbs, then 10.1, 10.2 until it direct plays, then back it down 0.1 to force the transcode on this media.  Once you've found this point where it transcodes that media go to schedule tasks and rotate the log.

Now start playback of the media forcing the transcode, let play for a minute and then upload this server log file.

Thanks

Share this post


Link to post
Share on other sites
cayars

Something else to think about is the setting you're using is the max bandwidth for all remote streams and not just this one in question.

You could try setting a specific restriction on the user with a higher or no restriction on the server itself to see what the difference would be.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...