IOS 15 + Safari + Video = :-(

Both standard mp4 files and streaming HLS files are experiencing substantial playback and rendering issues on iOS 15.

This includes:

  1. Safari immediately crashes
  2. Video displays only black (occasional audio can be heard)
  3. Video is frozen on 1st frame despite time updating
  4. Substantial load times (10+ seconds). Should be immediate.

GPU Process:Media has been disabled yet issues persist.

Safari immediately crashes with GPU Process: WebGL enabled.

These videos are being rendered via WebGL (threejs)

None of these issues were present on iOS 14.

I’m on an iPad Pro 12.9 2020.

Accepted Reply

I believe I have found the solution for HLS:

In Safari > Advanced > Experimental WebKit Features, enable the following

GPU Process: Canvas Rendering

GPU Process: Media

GPU Process: Video Capture

GPU Process: WebGL

WebGL via Metal

Note: Unfortunately, this does not solve loading standard mp4 files in Safari. The load time is still over 10+ seconds before visually rendering

  • I’ve found that there are delay issues when attempting to load an mp4 via an input tag, such as this:

    After selecting an mp4 file, the ’loadeddata’ and ‘loadedmetadata’ events do not occur immediately (which they should). It takes up to 5-10 seconds to fire the events. Perhaps this may shed some light on what’s happening;

    video.addEventListener('loadeddata', video_data); video.addEventListener('loadedmetadata', video_meta);

  • Please note that this issue is NOT resolved in iPadOS 15.1 Beta 2

  • I am not sure, but I suspect there are media ready event issues in as well.

    This may be implied, however I suspect it could be a bug in WebKit.

    Have you tested using a browser other than mobile safari? Such as chrome or Firefox?

Add a Comment

Replies

I believe I have found the solution for HLS:

In Safari > Advanced > Experimental WebKit Features, enable the following

GPU Process: Canvas Rendering

GPU Process: Media

GPU Process: Video Capture

GPU Process: WebGL

WebGL via Metal

Note: Unfortunately, this does not solve loading standard mp4 files in Safari. The load time is still over 10+ seconds before visually rendering

  • I’ve found that there are delay issues when attempting to load an mp4 via an input tag, such as this:

    After selecting an mp4 file, the ’loadeddata’ and ‘loadedmetadata’ events do not occur immediately (which they should). It takes up to 5-10 seconds to fire the events. Perhaps this may shed some light on what’s happening;

    video.addEventListener('loadeddata', video_data); video.addEventListener('loadedmetadata', video_meta);

  • Please note that this issue is NOT resolved in iPadOS 15.1 Beta 2

  • I am not sure, but I suspect there are media ready event issues in as well.

    This may be implied, however I suspect it could be a bug in WebKit.

    Have you tested using a browser other than mobile safari? Such as chrome or Firefox?

Add a Comment

Just a reminder to Apple that this issue is NOT resolved in iPadOS 15.1 Beta 2.

I have been experiencing the same issue HLS describe with my recent upgrade to ios 15.4.1 (from ios14). Unfortunately, the Experimental WebKit Features present are not the same, as seen below.

All videos are shown black (with sound displaying) in Safari, firefox or in apps using browser to display video but not in youtube app...

Anyone knows how to fix ?