Ok - I’ve been doing some testing.
These all work for me, no issues (all discs MKV rips from my original Blu-ray copies):
- Samsara - 264 with DTS HD MA. No issues.
- Sunshine - 264 and DTS MA 5.1. Fine.
- Spinal Tap - 264 and DTS MA. Fine.
- Stargate - MPEG2 and DTS MA. fine.
- Ferris Bueller’s Day Off. 264 and TrueHD. Fine.
- Breakfast Club - 264 and DTS MA. Fine.
Skips/drops frames reliably:
- Back to the Future 25th Anniversary - 26.9 Mb/s VC1 with DTS HD MA.
- Natural Born Killers. 27.8 Mb/s VC1 with TrueHD (transcoded to FLAC on server).
- Baraka - 27.3 Mb/s VC1 with DTS HD MA.
- Serenity - 20.5 Mb/s VC1 with DTS MA 5.1.
Skips/drops frames but takes longer to manifest:
- Never Ending Story - 23.1 Mb/s VC1 with DTS HD.
- Goonies - 22.4 Mb/s VC1 with TrueHD (transcoded to FLAC on server).
- Weird Science - 29.8 Mb/s VC1 and DTS HD MA.
Some debugging:
I turned on the debug overlay in the Apple TV app. When the stutter happens, the Performance section’s A/V indcator (which typically hovers as close to 0.000 as it can) shoots up. I assume this is the sync indicator showing that A/V sync is now being lost. Additionally, the dropped frames indicator starts increasing by 18-20 per second. This tracks with the visual presentation of the stuttering - it looks like tons of badly dropped frames.
The movies that play fine (both the two VC1 titles that work fine and all the 264 titles) have 0 or 1 dropped frame total across ~10ish minutes of playback. The movies that stutter many many dropped frames within (typically) 5-10 minutes of playback. For me, Back to the Future starts dropping frames within the first 3 minutes.
Of course, VC-1 has “Hardware Decoding: no (videotoolbox)”. The AVC/264 movies are all “Hardware Decoding: videotoolbox (videotoolbox)” - so the CPU is being used for VC-1 (of course, as Apple TV doesn’t support VC-1 decoding).
I then enabled the logging/debugging in app, recreated the stutter in a VC1 movie, and downloaded the logs. Low and behold, I’ve got these lines:
2022/08/18 16:00:40.908 (521 MB) (7026346) ⚠️ PMKMPVClient.m:496 | [cplayer] warn:
2022/08/18 16:00:40.908 (521 MB) (7026346) ⚠️ PMKMPVClient.m:496 | [cplayer] warn: Audio/Video desynchronisation detected! Possible reasons include too slow
2022/08/18 16:00:40.908 (521 MB) (7026346) ⚠️ PMKMPVClient.m:496 | [cplayer] warn: hardware, temporary CPU spikes, broken drivers, and broken files. Audio
2022/08/18 16:00:40.908 (521 MB) (7026346) ⚠️ PMKMPVClient.m:496 | [cplayer] warn: position will not match to the video (see A-V status field).
2022/08/18 16:00:40.908 (521 MB) (7026346) ⚠️ PMKMPVClient.m:496 | [cplayer] warn:
I wondered, as my Apple TV is also used as a HomeKit hub for my house, if there may be random load on the system that the A12 can’t sustain along with VC1 decoding. This would explain why the stutters in playback never happen in the same place.
Unfortunately, disabling the hub functionality in that Apple TV didn’t resolve the issue.
So, working on the assumption that this is a CPU issue with Plex on the Apple TV 4K (2020) / A12, I tried the following:
- Infuse 7 app on the same Apple TV - Zero issues in any title. Uses Direct Play for audio and video.
- Infuse 7 app running my M1 Max MacBook Pro - Zero issues in any title. Uses Direct Play for audio and video.
- Plex app running on my M1 Max MacBook Pro - No issues (even though it’s the iPad app running unoptimized from the app store). Uses Direct Play for audio and video.
- PS5 Plex App - can’t properly test. Doesn’t support VC1 locally and has to offload/convert on server, which isn’t ideal.
So that’s where I’m at - the Plex app on Apple TV reliably drops frames while software decoding VC-1 titles. It feels like it’s a CPU related issue on the Apple TV, so I’m hoping there can be some bug fix to address it.
Unfortunately, it looks like @ChuckPa hasn’t been able to reproduce on his end. I’m wondering if it’s the 2020 variant of the Apple TV with the A12 (vs his A10X unit).
Either way, I’m currently stuck playing back VC-1 titles in Infuse, which performs well as a player but lacks the interface quality of Plex.