WebRTC does not support 120fps Video Stream Decoding for iPadOS and iOS. This is important for iPad Pro and iPhone Pros that have promotion (120hz) displays. Games cannot be streamed at 120fps because of the lack of webRTC support for up to 120fps. Note: Macbook Pros with a promotion display support 120fps video stream decoding. Also Note: It is possible 90fps Video Stream Decoding for VisionOS is also not supported. I have no way to test this as I do not own a Vision Pro device.
<rdar://problem/126551033>
Added that WebRTC also does not support above 120fps video stream decoding for Mac. For Example: Geforce Now supports up to 240 fps for Native Mac, but this is not possible on Safari because webRTC is limited to 120fps. This is specifically useful for monitors that have above 120hz.
I believe this is because requestVideoFrameCallback does not support native fps. 1. iOS and iPadOS are limited to 60fps, should be 120fps. 2. visionOS is limited to 60fps, should be 90fps 1. I cannot confirm this because I do not have a Vision Pro device. Given the similarities with safari for iPadOS and visionOS, it is likely the case. 3. Macs with external displays are limited to 120fps, should be unlimited as displays can go up to 500hz today. 1. I cannot confirm this as I do not have a monitor above 120hz. Although, considering Geforce Now supports 240fps streaming on the native Mac app, but does not for safari, this is likely the case. Possibly related: requestanimation does not support 120fps for iPhone 13 Pros or newer iPhone Pros. It does support native fps for iPad Pros, Vision Pro, MacBook Pros, and Macs with external displays.
120fps WebRTC will be extremely handy for high-speed sign language and other applications. As a deaf person, I can even tell the difference in experimental 120fps video telephony tests. Although American Sign Language was not my first language, I learned "Cued Speech" (google that), which can go up to 300 words per minute with experienced interpretors. I have also found that it is possible to play 120fps <VIDEO> embeds (.mp4) just fine on iPhone Pro and iPad Pro, so it's not a codec limitation. It's an arbitrary limitation of WebRTC. My hypothesis is that since 120fps Safari is now working (#173434 is almost fixed), and 120fps .mp4 is working (video embeds), that it is just an arbitrary limitation at this stage. Perhaps this could also, possibly, be a tie-in to the request for a 120fps Permission API: https://bugs.webkit.org/show_bug.cgi?id=274372
Created attachment 471440 [details] Geforce Now 120fps WebRTC on Safari 17.5 for macOS Agreed, it could be tied into a permission prompt. Also do note that safari and chrome for macOS support 120fps webRTC. Although, it seems safari for iOS, iPadOS, and visionOS only support 60fps webRTC. Also note: 120fps WebRTC for macOS works even with “prefer page rendering updates near 60fps” is set to on. I will attach an image of GeForce Now streaming at 120fps (see top right of image) on safari 17.5 for macOS. I have the “prefer page reading updates near 60fps” set to on in this test. Even though it says "120hz stream" in the top right, with “prefer..60fps” enabled it is clearly only 60hz. I turned off the feature flag and it was a very noticeably 120hz. Either way, 120fps WebRTC works for safari for Mac, but not any other device. Although, above 120fps (240fps, 360, 480, etc) does not seem to be supported for safari for Macs.
Jeff -- I see you closed this as resolved. Can you elaborate why? (e.g. discovery of a solution, or discovery of a different unrelated issue that cascaded to WebRTC not exceeding 60fps even on 120Hz on iPads with "Prefer Page Rendering Near 60fps" turned off?)
mdrejhon - At first I was told this was a limitation with WebRTC. Since I could not find a way to confirm this with any kind of test (expecially mobile and Vision Pro), I got into contact with Byungseon (Sun) Shin, who is a NVIDIA and WebKit web developer. My understanding from what he said is Safari for macOS could do 240+fps webRTC, iOS and iPadOS could do 120fps, and visionOS could do 90fps. It has just not been enabled yet for GeForce Now. I could have misinterpreted it or he could have misinterpreted my questions. Later he mentioned he could not comment on the specs of Apple devices, although I think he meant hardware and not WebKit limitations. Although with Safari PWAs still limited to 60fps, 120fps support is useless.
How so? I successfully copied a 120fps .MP4 file to a 120Hz Apple device and it appraently managed to play back at 120 frames per second. And that was on an Apple A-series processor. I do not understand how a unchanged-bitrate 60fps-vs-120fps video file would hit headstrong on an M1 limitation. Is the M1 inferior to an older Apple A-series?
Oh -- now I understand. The standalone GeForce Now app is a Safari PWA? I did not know that. I haven't tried GeForce Now on an iOS device. You'd think that you could simply run it directly in Safari mode instead of PWA mode. So, this bugzilla 272393 is actually an accidental red herring caused by an actual bugzilla opened #272226? Ah, bingo: unintentional duplicate
See Also: https://bugs.webkit.org/show_bug.cgi?id=272226 (Actual underlying bug)