HbbTV-Association / ReferenceApplication

MIT License
80 stars 33 forks source link

Frame Repetition Observed While Bandwidth Switching in MSE #57

Closed bharanitharans closed 2 years ago

bharanitharans commented 2 years ago

We have implemented the MSE feature in our ported webkit rendering engine. We have validate the feature with HbbTV reference player application but we have observed the frame repetition while bandwidth switching case.As per MSE specification PTS,DTS and Frame Duration is a mandatory properties. From our side we have ensured the TimeRange (start,end) values properly send to Script.If any other values or properties be filled to script kindly suggest that, also help to conclude this issue.

Murmur commented 2 years ago

@bharanitharans What is the refapp version? See here if doubt: https://refapp.hbbtv.org/ Identifier number of a test case?

bharanitharans commented 2 years ago

@bharanitharans What is the refapp version? See here if doubt: https://refapp.hbbtv.org/ Identifier number of a test case?

We have used the below URL https://refapp.hbbtv.org/production/catalogue/ Kindly check and provide your feedback

Murmur commented 2 years ago

@bharanitharans Please test on a staging app which soon will be the next production release. https://refapp.hbbtv.org/staging/catalogue/

You could playback this 1.9 Subtitles with gaps (in-band) item (multiple resolution, multiple audio).

bharanitharans commented 2 years ago

@bharanitharans Please test on a staging app which soon will be the next production release. https://refapp.hbbtv.org/staging/catalogue/

You could playback this 1.9 Subtitles with gaps (in-band) item (multiple resolution, multiple audio).

We have tried with staging URL but same frame repetition issue observed in our Rendering engine.Problematic case First 8 seconds video playing as 640 frame resolution, then after 8sec bandwidth switch happens for 1920 resolution this case video jump to 0th position and playing in 1920 resolution. If any one observed this kind of issue please let me know.

Murmur commented 2 years ago

Your player is first playing 0s..8s at 640px then switching a resolution but restarts a playback from 0s..8s at 1920px, it continues to playback fine using this resolution (no switching happening anymore)?

Manifest should not create this problem and also m4s segments have a consistent timestamps. I do not have idea why is your player behaving like this.

Maybe something to do with how Dashjs player is interacting with your webkit engine? You work on a custom TV middleware, stb player or NUC/Raspi/linux media box?

bharanitharans commented 2 years ago

Your player is first playing 0s..8s at 640px then switching a resolution but restarts a playback from 0s..8s at 1920px, it continues to playback fine using this resolution (no switching happening anymore)? Switching happens 1920px to 640px but this case frame not repeating. Manifest should not create this problem and also m4s segments have a consistent timestamps. I do not have idea why is your player behaving like this. Kindly clarify to me for bandwidth switching case what are the properties to be expect in the JS ? Can you please share any sample code snippet for segment calculation or bandwidth switching calculation ? Maybe something to do with how Dashjs player is interacting with your webkit engine? You work on a custom TV middleware, stb player or NUC/Raspi/linux media box? Yes Dash.js player interact with webkit engine is default opensource connectivity flow, we have integrated with our own player only instead of Gstreamer, we have work in the STB field now only we have integrated the MSE full functionalities so we have observed the these kind of issues.

bharanitharans commented 2 years ago

We observed one behavior when we host the dash.js(download from GITHUB) in local web server and check with production URL https://refapp.hbbtv.org/production/catalogue/ now Bandwidth switching happens and frame repetition issue not observed. Could you please confirm this behavior, also if any possible kindly share the latest production or staging JS source code for better understanding. Because we think downloaded from GitHub source code is old please confirm.

Murmur commented 2 years ago

@bharanitharans Correct /production/ is soon to be an obsolete folder, you should use https://refapp.hbbtv.org/staging/catalogue/ where the latest dashjs is linked to. Refapp github repository is also to be updated soon to reflect the staging source code level. https://cdn.dashjs.org/latest/dash.all.min.js

We do not use the nightly build. https://reference.dashif.org/dash.js/nightly/dist/dash.all.min.js

bharanitharans commented 2 years ago

@bharanitharans Correct /production/ is soon to be an obsolete folder, you should use https://refapp.hbbtv.org/staging/catalogue/ where the latest dashjs is linked to. Refapp github repository is also to be updated soon to reflect the staging source code level. https://cdn.dashjs.org/latest/dash.all.min.js

We do not use the nightly build. https://reference.dashif.org/dash.js/nightly/dist/dash.all.min.js

@Murmur Thanks For your reply, We have host the latest dash.js in local web server and check the behavior same bandwidth switching case repetition frame issue observed. But from Github downloaded dash.js host to the server this case bandwidth switching happens also frame not repeat.We have implemented the MSE based on 2016 specification . We suspect any JavaScript properties are needed in latest specification(latest dash.js) for bandwidth switching please confirm? Also from Github source code is implemented based on 2016 specification or other version please confirm? Sorry for the inconvenience.

Murmur commented 2 years ago

@bharanitharans Interesting about the dashjs versioning. Can you try this adhoc test player, I downloaded https://reference.dashif.org/dash.js/nightly/dist/dash.all.min.js inside the app. No other dashjs libraries are linked to, no additional bandwidth plugins if there is one in git repo. https://refapp.hbbtv.org/testing_murmur/catalogue/

I don't know the low level details of dashjs player, MSE specs, dynamic selection of mse model based on a client or similar implementation details they follow. You follow this spec? https://www.w3.org/TR/2016/REC-media-source-20161117/

juhajoki commented 2 years ago

@bharanitharans @Murmur Doesn't seem to be reference app issue - please take it up with dash js