Frame rate switching for live TV

Frame rate switching for recorded/library content already works, but it doesn't work for live TV. Now with the ability to have live TV from many different sources via M3U we're likely to encounter different frame rates. Is there a plan to implement this?

Is this a theoretical question?

For me it's reality. My terrestrial/satellite sources are 25/50 fps, but a lot of online sources (eg, Pluto) are 30/60 fps.

Are you not seeing it switch? The video player will see the rate and switch for you.

Live channels on Pluto look a bit jerky and my TV doesn't switch its refresh rate, and the stats for nerds overlay shows 30 fps but doesn't report any dropped frames. If I record something from a Pluto channel and play it back, my TV switches its refresh rate and playback is smooth.

Great! Thanks for those details. It might be ignoring rate changing for live tv since it was assumed to always be the same.

1 Like

Interestingly, the stats overlay doesn't report dropped frames for 30/60 fps content even though it's clearly happening, but for 29.97/59.94 fps content it does show it.

for 29.97/59.94 content it will always use 60hz. It just doubles the frames. This is how all TVs work. Nothing drops to 30. This is why 120hz TVs are a big deal because 24 divides in evenly.

@Maddox Just wondering if you've had time to look at this. Is it possible to get frame rates to switch for live TV like it does for recordings?

It's pretty hard for us to test this with live TV here, because most of our TVs don't even support 50hz and we don't have 50hz live sources. With recordings we were able to import some and try it out, but live tv is much trickier because the player doesn't know anything about the stream until it has started (vs recordings we can probe out of band).

Anyway, I can push up a TestFlight build that tries to fix this but if it doesn't work we don't have the time/resources right now to dig in further.

1 Like

Completely understand that it's more difficult than it sounds, so I appreciate you giving it a try. I can't help with a 50Hz TV obviously, but here is a source of worldwide free, legal IPTV streams that might help you with testing live feeds that are 50Hz:

PS: My situation is actually the opposite. My ATV is set to 50Hz as default, but I have some 30/60Hz live sources I'd like to view.

@tmm1 Just had a thought: since this is mainly going to be an issue with live TV via M3U, would it be possible to implement a metadata tag that Channels could read and know it needs to switch the framerate? Something like tvc-framerate="50", and if it's missing then player assumes the default framerate? If users could add that tag to their M3Us that would take out any guesswork for the player?

Just tried the TestFlight build 12.17.2128 and some interesting results. If my ATV is set to 50Hz, I still don't see any switch to 60Hz for 60Hz channels.

I then switched my ATV to 60Hz and tried some of my 50Hz channels. Those coming from my sat>ip or HDHR were hit or seems like HD channels (all H264) would switch and SD channels (both MPEG2 and H264) would not. None of my 50Hz IPTV channels would switch either.

Thanks for giving it a try though! Maybe in future when you have more capacity we could explore the custom metadata tag idea?

Can you submit diagnostics after you test so we can see what the behavior was.

Just submitted some diagnostics with the ATV set to 50Hz and trying to tune some 60Hz channels.

In the stats for nerds, what does the FPS line say when you're watching Pluto vs OTA live streams?

50Hz OTA stream: FPS: 25.000 (specified) 50.000 (estimated)

50Hz IPTV stream: FPS: 25.000 (estimated)

60Hz IPTV streams vary, from most to least common:

FPS: 59.940 (estimated)
FPS: 30.000 (estimated)
FPS: 60.000 (estimated)
FPS: 29.970 (estimated)

Tried something else in the next testflight build. Please test and submit diagnostics again.

Just submitted diagnostics. Most 59.94 channels are switching frame rate after a few seconds. No change for 30, 60 or 29.97 channels (for the ones I've tested at least).