Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Playback of clear media with 50 FPS is jittering seems like frame dropped #4878

Closed
5 tasks done
giladna opened this issue Sep 5, 2022 · 4 comments · Fixed by #4885
Closed
5 tasks done

Playback of clear media with 50 FPS is jittering seems like frame dropped #4878

giladna opened this issue Sep 5, 2022 · 4 comments · Fixed by #4885

Comments

@giladna
Copy link
Contributor

giladna commented Sep 5, 2022

What version of Hls.js are you using?

1.2.1

What browser (including version) are you using?

Version 104.0.5112.101

What OS (including version) are you using?

mac 12.5.1

Test stream

will be shared via mail

Configuration

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": true,
  "backBufferLength": 90
}

 or 

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": false,
  "backBufferLength": 90
}

Additional player setup steps

No response

Checklist

Steps to reproduce

  1. load player with that media
  2. wait till player goes to high bitrates
  3. observe that player is jittering and the 50FPS playback is not fluent

Expected behaviour

player will play 50FPS without frame loss and player jittering

What actually happened?

the user experience is not good

on Safari for that stream we do not see it is taking 50FPS but keep using 25FPS
when playing the 50FPS track directly no issue observed

turning on chrome hardware accelerator did not help.
issue is observer on other browsers

Console output

will be shared via email

Chrome media internals output

Selected VDAVideoDecoder for video decoding, config: codec: h264, profile: h264 main, level: not available, alpha_mode: is_opaque, coded size: [320,180], visible rect: [0,0,320,180], natural size: [320,180], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
Effective playback rate changed from 0 to 1
video decoder config changed midstream, new config: codec: h264, profile: h264 main, level: not available, alpha_mode: is_opaque, coded size: [640,360], visible rect: [0,0,640,360], natural size: [640,360], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
Selected VDAVideoDecoder for video decoding, config: codec: h264, profile: h264 main, level: not available, alpha_mode: is_opaque, coded size: [640,360], visible rect: [0,0,640,360], natural size: [640,360], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
video decoder config changed midstream, new config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [960,540], visible rect: [0,0,960,540], natural size: [960,540], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
Selected VDAVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [960,540], visible rect: [0,0,960,540], natural size: [960,540], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
video decoder config changed midstream, new config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
Selected VDAVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
Dropping frame with timestamp 3637.96 s, which is earlier than the last rendered frame (3637.96 s).
Dropping frame with timestamp 3638.3 s, which is earlier than the last rendered frame (3638.3 s).
Dropping frame with timestamp 3638.3 s, which is earlier than the last rendered frame (3638.3 s).
Dropping frame with timestamp 3638.3 s, which is earlier than the last rendered frame (3638.3 s).
Dropping frame with timestamp 3638.3 s, which is earlier than the last rendered frame (3638.3 s).
Dropping frame with timestamp 3638.3 s, which is earlier than the last rendered frame (3638.3 s).
Dropping frame with timestamp 3638.3 s, which is earlier than the last rendered frame (3638.3 s).
Dropping frame with timestamp 3638.62 s, which is earlier than the last rendered frame (3638.62 s).
Dropping frame with timestamp 3638.62 s, which is earlier than the last rendered frame (3638.62 s).
(Log limit reached. Further similar entries may be suppressed): Dropping frame with timestamp 3638.62 s, which is earlier than the last rendered frame (3638.62 s).
Selected video track: []
Selected video track: [6]
Dropping frame with timestamp 3685.1 s, which is earlier than the last rendered frame (3685.1 s).
Dropping frame with timestamp 3685.1 s, which is earlier than the last rendered frame (3685.1 s).
@giladna giladna added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Sep 5, 2022
@giladna
Copy link
Contributor Author

giladna commented Sep 5, 2022

Screen Shot 2022-09-04 at 18 16 06

@robwalch robwalch added Need sample stream and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Sep 6, 2022
@giladna
Copy link
Contributor Author

giladna commented Sep 7, 2022

@robwalch I have shared with you in privately on slack

thanks!

@robwalch robwalch added this to the 1.2.2 milestone Sep 8, 2022
robwalch added a commit that referenced this issue Sep 8, 2022
@robwalch robwalch added the Verify Fixed An unreleased bug fix has been merged and should be verified before closing. label Sep 8, 2022
@giladna
Copy link
Contributor Author

giladna commented Sep 8, 2022

@robwalch we have verified it as well both on LG TV and on Chrome

@giladna
Copy link
Contributor Author

giladna commented Sep 8, 2022

thank you for your quick support!

robwalch added a commit that referenced this issue Sep 9, 2022
robwalch added a commit that referenced this issue Sep 9, 2022
* Fix handling of negative composition timestamps in ts->mp4 remuxing ("PTS < DTS" warnings)
Fixes #4878

* Only set trun version to 1 when track samples contain negative composition timestamps

* Only set trun version to 1 on video track trun boxes

* Do not reload partial fragments. They must be evicted from the tracker to reload.
(prevents loop loading on https://playertest.longtailvideo.com/adaptive/captions/playlist.m3u8 which now presents gaps in Safari)

* Fix for test stream with large DTS gap and bad composition timestamps
@robwalch robwalch removed the Verify Fixed An unreleased bug fix has been merged and should be verified before closing. label Sep 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants