Video stuttering since version 8.18 of the Apple TV app

“Random” things can be quite hard to track down. We have many employees who use the Apple TV as their daily driver, and I said that I don’t have the 2022 model, not that no one at Plex has one. We have several employees, including our Apple developers, who have the 2022 model and have not been able to reproduce it either.

1 Like

Sure but it’s not really “random” like it’s coming and going, it’s fairly consistently occurring just not in the same spot in the file (hence the previous sample files other users provided don’t help). There’s quite a number of users (Tion1 , MCBARFIELD, ShaGe, doolydooly, dontpokethebear3893, Dimtar, john.repetti, Soulnova, themcbrooms, Gracey400, ozsmac and myself at least in this thread) here having the same problem, and it’s even been localized to the exact build where it started, and all of the users above except three I can see for sure have the 2022 model (some from their posts in other threads, the final three I can’t confirm either way). It seems very odd that, given how restricted (and therefore consistent) the Apple ecosystem is, all of us can have the problem, starting at the exact time of an upgrade, and resolved with a downgrade, consistently, but nobody at Plex can replicate it. Was 8.17 to 8.18 even that big of an upgrade? There’s only so many things that could have changed that could also have affected video playback. Just make a new beta going one-by-one through those changes until the users here who are allowed beta access tell you it’s fixed. That could easily have been done in the timespan since this was first reported.

@Soulnova @Dimtar @Gracey400 can you confirm if you’re using the 2022 Apple TV (4K)?

3 Likes

Apple TV 4k gen3. I upgraded to gen3 because my mom’s gen3 didn’t stutter but my gen2 did. Now, come to find my gen3 does, too, on the following file.

I will share it if someone tells me how to do that. It’s 4.2GB.

General
Complete name                            : foo.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/mp41)
File size                                : 3.91 GiB
Duration                                 : 4 h 11 min
Overall bit rate                         : 2 231 kb/s
Frame rate                               : 23.976 FPS
Movie name                               : foo
Encoded date                             : 2020-04-12 08:11:52 UTC
Tagged date                              : 2020-04-12 08:11:52 UTC
Writing application                      : Lavf58.20.100
Comment                                  : foo

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L4@Main
Codec ID                                 : hev1
Codec ID/Info                            : High Efficiency Video Coding
Duration                                 : 4 h 11 min
Bit rate                                 : 2 001 kb/s
Width                                    : 1 920 pixels
Height                                   : 1 072 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.041
Stream size                              : 3.51 GiB (90%)
Writing library                          : x265 3.3+4-rarbg-30eb4de83092:[Linux][GCC 8.3.1][64 bit] 10bit
Encoding settings                        : cpuid=1111039 / frame-threads=4 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x1072 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=2000 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.01 / no-opt-cu-delta-qp / no-aq-motion / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / no-scenecut-aware-qpconformance-window-offsets / right=0 / bottom=0
Encoded date                             : 2020-04-12 08:11:52 UTC
Tagged date                              : 2020-04-12 08:11:52 UTC
Codec configuration box                  : hvcC

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 4 h 11 min
Bit rate mode                            : Constant
Bit rate                                 : 224 kb/s
Channel(s)                               : 6 channels
Channel layout                           : C L R Ls Rs LFE
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 402 MiB (10%)
Language                                 : English
Default                                  : Yes
Alternate group                          : 1
Encoded date                             : 2020-04-12 08:11:52 UTC
Tagged date                              : 2020-04-12 08:11:52 UTC

Is there a way to move back to 8.17??

No, unfortunately. Even on the beta channel that build is expiring/expired.

Just to confirm, are you sure you’re having the same issue described here? Our files aren’t stuttering in the normal sense, it’s more like frequent missed frames (that aren’t reported as dropped frames) making it feel very juddery, it’s not like a buffering issue, and audio seems unaffected.

Can you put it on Google Drive or something?

I don’t know if google fingerprints MPAA tracked files. I wouldn’t want to get my google account banned for this. In this case, I own the movie on DVD (2 copies!).

I believe it’s the same issue.

Not sure if this issue is related or when 8.18 was released but roughly about 2 months ago I started getting lost connection with the server or the connection isn’t stable error with the same Apple TV version (2022) while watching stuff. When I switched to the Infuse, Nvidia Shield TV or use the Plex app via TV (Sony) no issues. Someone else is reporting the same issue in a different thread.

Again, not sure if it’s related.

I think it would be worth getting the newest Apple TV model as that’s where many see the issue. Seems only logical at this point when not seeing the issue on your end.

Am I wrong?

Wanted to toss in some info I have come across. I have the 2022 version. With Match Frame Rate / Match Dynamic Range turned on on device itself. In Plex I have Automatically Adjust Quality and Allow Direct Play turned on. It plays fine. A moment ago it was not. Searched online and some had said turn on Automatically Adjust Quality and the stuttering goes away. It did. Also now shows the Audio being transcoded and Video Direct. When before turning that one both video and audio were direct. There is also a notice in the Technical Details while playing - “AVPlayer. The Enhanced Video Player cannot be used when Automatically Adjust Quality is enabled.”
They also noted that it was only happening to 4K HDR mkv files. Which this happens to be that was having the issue.
Hope this guides a fix.

I also am having this issue, 2022 Apple TV and it’s on every video file, 4k, 1080, x264 and x265. Match frame rate on or off, doesn’t matter. Happened with the 8.18 version and it sucks it can’t be figured out and repaired. It’s effectively ruined Plex and I hope for a fix in the near future as I am forced to use Infuse instead. It almost seems like the Apple TV version (locally) decided to not buffer enough in advance and it skips a frame to catch up. Such a frustrating issue.

2 Likes

I have this issue in latest 4k. 2398 FPS material skips frames using mpv player. Direct stream using av player seems to fix it.

I think either the new player doesn’t like mkv files or the player is playing 23.98 material at 24.00fps

Not personally using the Plex player app anymore, but a few days ago I had the chance to retest the app on an Apple TV 4K 1st gen 2017 and on a 3rd gen 2022. It was with the latest 8.21 app.

The stuttering issue seems to be only happening on 3rd gen devices.

I still don’t understand why this bug isn’t reproducible by the Plex staff. I was at my friend’s place working on their brand new setup and with the 3rd gen device we immediately saw the video stutter within a few seconds of playing something.

1 Like

I am experiencing this as well on the newest 128GB model. I even tested over Ethernet on a roughly 500mbps connection to rule out network issues, and it still stutters.

When turning on the debug overlay it doesn’t show up as dropping frames, but the video just kind of stutters every so often and completely disrupts the viewing experience. Had to switch over to Infuse tonight to finish watching a film.

My older 2017 model Apple TV 4K is not having this issue in the family room, so hopefully this gets fixed soon.

Anyway I can help the devs track down the source of the issue please let me know! It’s noticeable on 1080p and 4K files it doesn’t seem to be any particular codec.

2 Likes

Same issue here with 3rd gen on even low bitrate video. Switched back in a 2nd gen to test and it played faultlessly even up to 4k remux files.

It’s definitely a Gen 3 specific Plex issue. I agree it’s almost certainly related to using the wrong framerate. Infuse works perfectly but doesn’t integrate with the library as well (specifically it does not use the Plex default tracks, so if you have set your subtitles etc. up Infuse won’t respect those choices). It’s embarrassing that Plex refuse to fix this.

Infuse are changing the way they connect to Plex (Emby and Jellyfin too)

4 Likes

I am also experiencing this issue on the ATV 4K 2022 model with version 8.22. It doesn’t happen on every video but here is an example of a video it is happening on:

I have noticed that while playing the video if I go to Playback Settings and select Convert Automatically it fixes the issue and the video plays perfectly. However I have to turn on this setting every time I play one of these videos. Does anyone know how to enable this permanently for all videos?

Converting switches to the ‘old’ player, the native Apple player. Just go to settings and toggle use old video player to on.