Skip to content

Audio/Video Stutter Desync when interacting with higher bitrate video (affects both scrubbing & play/pause) #802

@RonK-0

Description

@RonK-0

Relevant Information

Roku Model: Roku Premiere 3920RW (same as 3920X)
Roku Firmware: 15.0
Playlet Version: 0.43.0 to 0.44.4 (haven't had the time to test versions prior to 0.43.0)

Issue Description

I've been experiencing Audio/Video Stutter & Desync when interacting with some videos when quality is set to 1080p. Audio plays fine, but video is very stuttery and dropping frames. They play fine on 720p and lower with no issues.

How it gets Triggered

It gets triggered by once a problematic video has been paused/played, jumped around with the seekbar, or SponsorBlock skips a segment. Otherwise if its left playing by itself there's no issue and the video plays smoothly without any dropped frames and desync.

So far I've only had it happen with recent videos from the channel How Ridiculous. Here's a few recent videos that I can confirm I've had the stuttery playback issue:

My Limited Findings and What I have tested

Initially I was not sure if its a framerate & display refresh rate mismatch, resolution & codec, or bitrate related. Or if its far simpler and my Roku Premiere 3920RW's hardware is a bit old like the one mentioned on #747 isn't up to scratch anymore for some 1080p videos.

Framerate Theory

I thought it had something to do with the 50fps framerate on the problematic videos, but 50fps is available on 720p and above and setting the Preferred Quality on Playlet to 720p for those 3 videos.

To rule out the framerate I tried videos from other channels that have 1080p60 videos for comparison and both played fine with no issues even if I jump around the video.

  • Here's one from Gamers Nexus - I tested this as I've had stuttery playback issues with their 60fps videos on a few "Smart" TVs and older computers in the past, but it played just fine at 1080p 60fps on the 3920RW
  • Here's another from LGR - this also played just fine with no issues

I don't think the framerate by itself it to blame exactly.

The Display Refresh Rate Mismatch Theory

I had my TV set to 1080p 60Hz when I first noticed the issue.
To rule out framrate and display refresh rate mismatch I tried switching to 1080p 50Hz and turning on 'Auto-adjust display refresh rate', but neither fixed the stutter issue with the 3 problematic videos. So that crosses this theory out.

A look at Resolution and Codecs

Doing some digging with yt-dlp --list-formats for 720p and 1080p for all 5 videos videos linked above and they had the same format IDs regardless if it was 50fps or 60fps video. I know that in terms of computational intensiveness for decoding AVC1 is the lightest followed by VP9 then AV01.

avc1 vp9 av01
720p_dash 298 302 398
1080p_dash 299 303 399

I'm inconclusive here as I got no idea if Playlet is using AVC1 or VP9 and I can't find any setting to force a codec on the Playlet UI, nor is there any 'Stats for nerds' equivalent on Playlet right now to check that I'm aware of.

The bitrate theory

Back to the yt-dlp --list-formats outputs for the 3 problematic How Ridiculous video I have linked above and here's their bitrates at 1080p:

avc1 vp9 av01
k710zPwNEIs 4435k 4027k 3359k
ZP_WYcyqZb4 5057k 4835k 3748k
lHZOzBtMz-8 4833k 4576k 4155k

And here's the bitrates for the Gamers Nexus and LGR video I also tested for comparison and they're a bit lower in bitrate compared to the 3 problematic ones above.

avc1 vp9 av01
9A-eeJP0J7c 2594k 2265k 1467k
YWpeCw_H0Zw 3371k 2469k 1734k

Conclusion

My best guess its a combination of higher bitrates on 1080p than on 720p and the Roku Premiere 3920RW being an older model with older hardware.

Hopefully you can enlighten me if something can be done to fix this issue, but for now my solution is to stick with 720p if I encounter any video that drops frames big time on 1080p.

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐛 bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions