Apple TV (tvOS 26.5) stutters on VFR sources that macOS plays fine — CFR conversion fixes it

Reporting a playback difference between the tvOS and macOS Channels clients, in
case it's something the tvOS player can mitigate.

Symptom: Content from a source that captures with variable/irregular frame
timing (PrismCast → YouTube TV, HEVC 1080p) plays with continuous stop-motion
judder on my Apple TV 4K (tvOS 26.5, current), on both live and recordings. The
exact same recordings play perfectly smoothly in Channels on macOS. Local,
non-PrismCast files also play smoothly on the same Apple TV.

What I've ruled out (all tested):

  • Network — fully wired; same files smooth on macOS
  • Codec — stutters with both HEVC and H.264
  • Frame rate — stutters at both 30fps and 60fps capture settings
  • HLS segment duration — 2s and 6s both stutter
  • Device/OS/app — Apple TV restart, Channels app reinstall, and Match Frame Rate
    on/off all made no difference; other apps (Netflix, Apple TV+) are smooth;
    local files through Channels are smooth

Root cause: ffprobe confirms the source is variable frame rate with irregular
PTS intervals (avg_frame_rate=0/0; ~14–18 ms spacing with sporadic 31 ms/2 ms
pairs; non-monotonic DTS on remux). Converting to constant frame rate with ffmpeg
(-fps_mode cfr) fully resolves the stutter on the Apple TV. So macOS tolerates VFR
that the tvOS client renders as judder.

Question: Is there anything the tvOS Channels player can do to handle VFR /
irregular-PTS HLS more gracefully (as the macOS client apparently does)? I'm also
filing this upstream with the capture tool, but the macOS-vs-tvOS difference
suggested it was worth raising here too. Happy to provide sample files or ffprobe
output.

link to Prismcast post: GitHub.com/hjdhjd/prismcast/

Nice writeup.
I noticed this using PrismCast YTTV capture and the PrismCast dev ignored it.
You'd think he could send the stream through ffmpeg to convert to CFR.
Good luck getting his attention on this matter.
His GitHub issues are closing as Stale because he's not engaging and responding.

I had help with my writeup—I've been working with Claude, giving 'him' requested information and trying to work through the situation as much as I could until 'he' felt we'd compiled enough to make a post efficient enough to point at a specific problem.

Irregular and variable frame rates are almost always going to be very bad and honestly really bad form for any video.

I would suggest the maintainer of this project do what they can to produce videos with a stable framerate.