Dash-Industry-Forum / dash.js

A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.
http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html
Other
5.11k stars 1.67k forks source link

Quality selection when switching between AdpatationSets with different codecs #4525

Open dsilhavy opened 3 months ago

dsilhavy commented 3 months ago

Description

The SupplementalProperty urn:mpeg:dash:adaptation-set-switching:2016 allows the player to switch between Representations of different AdaptationSets.

The current switching logic in dash.js heavily relies on the bandwidth attribute. This means we will always choose the highest bitrate possible. When switching between Representations of different AdaptationSets we end up in scenarios in which we can switch between different codec families e.g. between HEVC and AVC. In this case it is not always the best choice to simply choose the highest bitrate. As an example:

In the above example, the HEVC Representation might still provide a better quality than the AVC Representation despite being encoded with a lower bitrate.

Solution

Discuss how the player should behave in case the is no qualityRankingattribute specified in the MPD.

dsilhavy commented 3 months ago

Comment by @haudiobe

1) there is an equivalence indicator that says that qualityRankings are comparable across Adaptation Sets 2) There may be an API with the app to check if the app has a priority list 3) Do you have indication whether a codec is implemented in HW (Media Capability API has this)? 4) In the absence of all of this, i.e. only codecs specified, resolutions and bitrates, I would go for something like lowest bits per pixel in case resolutions are the same.