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.13k stars 1.68k forks source link

Abnormal video playback(distorted) in LG and Samsung TV when abr enabled as true #4596

Open kumarashu123 opened 1 week ago

kumarashu123 commented 1 week ago
Environment

LG 2023 firmware 03.31.82

Steps to reproduce
  1. Please provide clear steps to reproduce your problem

I have below abr config abr: { movingAverageMethod: 'ewma', bandwidthSafetyFactor: 0.7, },

Note : when i disable abr autoSwitchBitrate: {audio: false, video: false}, issue is not seen
Play any VOD content and perform seek or subtitle change

  1. If the bug is intermittent, give a rough frequency if possible Bug is intermittent when perform seek or subtitle change
Observed behavior

Describe what the player is doing that is unexpected or undesired behaviour.

distorted video is seen.

https://github.com/user-attachments/assets/45bb34df-5b4f-4923-9280-88051fbc9543

Console output
Paste the contents of the browser console here.
You may need to enable debug logging in dash.js by calling player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_DEBUG }}) if you are using your own page.
Expected behavior

Playback should be smooth

dsilhavy commented 1 week ago

Please check against the latest development branch (nightly build)

kumarashu123 commented 1 week ago

@dsilhavy Yes, i will give a try What changes or pull requests in the nightly version do you think could resolve this issue?

dsilhavy commented 1 week ago

@dsilhavy Yes, i will give a try What changes or pull requests in the nightly version do you think could resolve this issue?

The filtering based on the device capabilities was improved. In addition, there are less calls to Sourcebuffer.changeType().

kumarashu123 commented 1 week ago

@dsilhavy I have checked against the latest development branch (nightly build) issue is seen.

dsilhavy commented 1 week ago

Thanks for checking. We dont have the resources to debug issues on SmartTVs. You will need to examine yourself, it is probably a device or content issue. If you find a bug in dash.js please report it here and we can check your fix.

kumarashu123 commented 1 week ago

@dsilhavy Is abr setting movingAverageMethod removed in development branch (nightly build)?

What is the best streaming configuration for smart tv?

dsilhavy commented 1 week ago

there is a detailed documentation about the abr options in v5 (nightly build) here: https://dashif.org/dash.js/pages/advanced/abr/

we dont have a recommendation for a smart tv config. adjusting the buffer targets is something application providers typically do on smart tvs.

kumarashu123 commented 2 days ago

@dsilhavy There is one observation when Full HD height="1080" width="1920" video profile is present in the manifest then only distorted issue is seen. when i remove video profile with Full HD height="1080" width="1920" issue is not seen. and if i keep only one profile with Full HD height="1080" width="1920" in this scenario also issue is not seen.

Below is sample AdaptationSet for video `

##########

`

dsilhavy commented 2 days ago

Sounds like the device can not handle an upswitch from a Representation < 1080 to the Representation with 1080. Worst case, you need to prevent this upswitch by either filtering the 1080p track or limiting the maximum bitrate.

What you can also try is disabling fastSwitch: https://reference.dashif.org/dash.js/nightly/samples/abr/fastswitch.html.

Some other things:

kumarashu123 commented 2 days ago

fastSwitch is disabled already. height in manifest i changed to 1080 does not observed any improvement.

kumarashu123 commented 5 hours ago

@dsilhavy i have below AdaptationSet in my mpd. video track video7 scanType is interlaced and others are progressive does dash js version 4.7.2 can switch from interlaced to processive and vice and versa ?

`

XX

`

dsilhavy commented 3 hours ago

dash.js will switch to the Representation with scanType="interlaced" as we do not use the scanType attribute in the code. However, trying to play an interlaced video on a SmartTV will probably cause issues.