Jump to content

Adaptive streaming


dragon2611

Recommended Posts

neik
5 hours ago, softworkz said:

Would the user really want it in that situation?
Maybe a user doesn't want to switch to 4k even though the device would be capable - but the display is so small that it's pointless. The user might have another device where this would be desired, though - could make configuration complex

IIRC:
YouTube for example doesn't go past the resolution of the monitor you are watching it on.
So, if it's a 1080p monitor then 1080p is the hightest quality it goes up to, even if 4k is available.

5 hours ago, softworkz said:

A switch from transcoded to original can also change subtitle appearance, which may be desired or not

IMO direct play always beats transcoding but this might also be a personal preference.

 

5 hours ago, softworkz said:
  • Maybe a user is just in a lift or a radio blind spot and bandwidth will be ok afterwards

I definitely agree on this one, that's why I suggested a conservative approach on that - whatever it could look like.

If this is going forward you guys should also think about to give the admin "the power" over this and not let only the clients decide what to do.
Example: 4k input -> admin defines for needed transcoding max. 1080p@15mbit.
User A uses a client which for example doesn't supports graphical subs but the files has those -> transcode is required but is capped at 1080@15mbit.
User B watches the same file but uses a client where direct play (and also enough bandwith) is available -> Direct play even if the file exceeds those 15mbits mentioned above as transcode limit.

Would be interested in your thoughts on this one.. 🙂

 

7 hours ago, softworkz said:

Meanwhile - I wonder whether we might try to start with something totally simple and minimal :

  • When playback hangs/stalls or is about to stall, display a message box on screen which tells something like
    "Slow connection, do you wish to switch to a lower bandwidth?"
  • There's a yes/no, yes is focused, so it can easily be confirmed (by clicking OK on the remote or keyboard, etc.)
  • It goes only down in bandwidth, not up, because the primary annoyance is when playback hangs, which is also the situation that is easy to assess
  • Before somebody will say: "Uh, a message box would be pretty annoying" - let me clarify: this should only be shown in situations where it's clear that playback would hang within the next few seconds. 

Anyway, this might be a good entry point into the subject, but we got other things to come which....well..you'll see..

Agree, this might be a good starting point as the "regular user" probably doesn't even know that the playback is stalling due to low available bandwith.

Link to comment
Share on other sites

13 minutes ago, neik said:

IMO direct play always beats transcoding but this might also be a personal preference.

And when your client can't doesn't have an HDR display and can't do tone mapping?

And when you have a video with ASS subtitles having animations, custom embedded fonts or foreign charsets that the client doesn't support?

15 minutes ago, neik said:

Agree, this might be a good starting point as the "regular user" probably doesn't even know that the playback is stalling due to low available bandwith.

Yes, and even for non-regular users it would be much more convenient when you get a message _before_ the video will hang where you just need to confirm OK without going through the OSD menus. And there - how should a user even know which quality/bandwidth level to choose that matches the current connection?
The typical situation is that you end up trying - and might need multiple attempts. 

What goes on top is that it's often not possible to break out of the spinning-wheel state to try a different quality setting. I can't even say how much I hate those "spinning wheel situations". It's not the wheel itself, it's the lack of information. what is happening. You don't know whether the server could be contacted, whether video data is already being downloaded or not, or whether some error has occurred at the client or at the server., and hence you also don't know whether you should continue waiting for playback start or whether the wheel would continue spinning until the end of days. In earlier days, streaming clients always has some status indication showing "Connecting to server", "Loading", "Buffering x%", "Error", etc. I liked that as it doesn't leave you totally clueless...

  • Like 1
Link to comment
Share on other sites

rbjtech
14 hours ago, softworkz said:
  • When playback hangs/stalls or is about to stall, display a message box on screen which tells something like
    "Slow connection, do you wish to switch to a lower bandwidth?"
  • There's a yes/no, yes is focused, so it can easily be confirmed (by clicking OK on the remote or keyboard, etc.)
  • It goes only down in bandwidth, not up, because the primary annoyance is when playback hangs, which is also the situation that is easy to assess
  • Before somebody will say: "Uh, a message box would be pretty annoying" - let me clarify: this should only be shown in situations where it's clear that playback would hang within the next few seconds. 

 

How would you be monitoring the bandwidth ?  On the time it takes to fill the existing transcode playback buffer ?

This should work both ways shouldn't it ?  If it's filling very quickly over a sustained period, then you should be able to increase the transcode bandwidth as well as lower it if the buffer is only just keeping up with playback demand ?

A message is fine imo - this is much better than it either stalling due to lack of bandwidth or watching the entire movie on a lower quality than what your connection was capable of.

Link to comment
Share on other sites

neik
3 hours ago, rbjtech said:

This should work both ways shouldn't it ?  If it's filling very quickly over a sustained period, then you should be able to increase the transcode bandwidth as well as lower it if the buffer is only just keeping up with playback demand ?

Yeah, probably but I think the question here is: How often do you want to "bother" the user with the message?

10 hours ago, softworkz said:

And when your client can't doesn't have an HDR display and can't do tone mapping?

That's the thing I don't see the point in doing but if someone does then direct play is not an option but wherever it is an option it should be prefered.
Might just be personal preference though. 

Link to comment
Share on other sites

7 hours ago, rbjtech said:

How would you be monitoring the bandwidth ?  On the time it takes to fill the existing transcode playback buffer ?

This should work both ways shouldn't it ?  If it's filling very quickly over a sustained period, then you should be able to increase the transcode bandwidth as well as lower it if the buffer is only just keeping up with playback demand ?

We can return to talk about this in a while.

3 hours ago, neik said:

Yeah, probably but I think the question here is: How often do you want to "bother" the user with the message?

That's why I said to only display this for reducing the bandwidth and only when a "hang" is imminent, i.e. it would only precede the greater "bother" of the video to be "hanging". 

  • Like 2
Link to comment
Share on other sites

  • 6 months later...
  • 1 month later...
  • 3 months later...
neik
On 5/9/2022 at 2:41 AM, softworkz said:

We can return to talk about this in a while.

That's why I said to only display this for reducing the bandwidth and only when a "hang" is imminent, i.e. it would only precede the greater "bother" of the video to be "hanging". 

softworkz, any news on this?

Link to comment
Share on other sites

  • 4 months later...
  • 2 months later...
MSI2017

@softworkzor @Lukeany update on this? Or a partial implementation at least. At the moment I'm wasting CPU cycles anyway because external connections always default to a set bitrate causing transcoding despite a network connection probably being solid enough to handle direct playback. And the moment it's on a bad connection and bitrate is too high for the connection or device to handle the player fails to notice and will happily let playback hang or stutter indefinitely. For my non-tech savvy relatives explaining the quality options doesn't help this because they don't understand what bitrate entails.

Would be amazing if the player could adaptively let the cpu/gpu encode a few streams at certain bitrates and being able to easily switch between them if player notices buffer not filling properly. Not sure if this is easier to implement compared to something like HLS adaptive. But it would be a fine temporary solution. 

For quality selection an "easy switch" in settings for more understandable names/presets would be pretty cool.

Edited by MSI2017
  • Like 2
Link to comment
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...