Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fairplay and Video.js not work with Safari 15 for iPad and iPhone #140

Open
argentinaluiz opened this issue Sep 24, 2021 · 20 comments
Open

Comments

@argentinaluiz
Copy link

Hi there,

This week I tried videojs-eme on the new Safari 15 using iPhone or iPad and it didn't work.

The feedback says the content is not supported, but version 14 works.

@gkatsev
Copy link
Member

gkatsev commented Sep 24, 2021

I think it's broken on Apple's side.

@argentinaluiz
Copy link
Author

Yeah, I tested a video with pure DRM without videojs and it worked.

@HankBrown
Copy link

Major fail at our website now (all our stuff is encrypted).
iPhone 7 iOS 15
https://developers.apple.com/forums/thread/690429 says to disable GPU Process in Safari/Advanced but no joy.

@BakurL
Copy link

BakurL commented Sep 27, 2021

Any idea on how to fix this?

@BakurL
Copy link

BakurL commented Sep 27, 2021

Workaround perhaps?

@argentinaluiz argentinaluiz changed the title Fairplay and Video.js not work with Safari 15 fro iPad and iPhone Fairplay and Video.js not work with Safari 15 for iPad and iPhone Sep 27, 2021
@darcyrailip
Copy link

Is Apple even aware? This seems critical, we have a ton of clients complaining.

@eban5
Copy link

eban5 commented Sep 28, 2021

What is the expected Safari 15 / Apple error happening here? I'm intermittently seeing either:

  • CODE 4: The media could not be loaded, either because the server or network failed or because the format is not supported. or
  • A few warnings in the console trying different m3u8s with Problem encountered with playlist 3-hls-drm_4.m3u8. Could not determine codecs for playlist. Switching to playlist 0-hls-drm_1.m3u8. then ultimately failing with CODE 3 MEDIA_ERR_DECODE Playback cannot continue. No available working or supported playlists.

Updated comment to remove separate non-related issue.

@HankBrown
Copy link

HankBrown commented Sep 28, 2021

"The error didn't come from video.js EME extension. To reproduce you can try implement FairPlay using pure JavaScript or using FPS_in_Safari_Example.html that come with FairPlay Streaming Server SDK. You will get the same error on iOS15. — nonth 7 hours ago" https://developer.apple.com/forums/thread/690429

@gkatsev
Copy link
Member

gkatsev commented Sep 29, 2021

By default, we still use the legacy standard for EME on Safari. Supposedly, the issue doesn't occur with the latest standards based EME API. I've been playing around locally and, unfortunately, haven't been able to get it working.
We do have this PR, which is a bit stale, but may help out: #87
We're going to continue seeing if there's anything we can do to help, but it may be a while.

@BakurL
Copy link

BakurL commented Oct 9, 2021

FYI - Disable GPU rendering (GPU process: Media) in the Safari Experimental Settings, and restart Safari, all the players start showing video - comment from: https://developer.apple.com/forums/thread/690429 . This worked for non-videojs player

@gkatsev
Copy link
Member

gkatsev commented Oct 15, 2021

So, we just released videojs-contrib-eme 3.10.0. This switches Safari to use the standards based API rather than the legacy API by default. In conjunction with using CMAF based segments, fairplay should potentially start working again.
Though, ultimately, we'll be waiting for Apple to fix it in the 15.1 release of iOS.

@BakurL
Copy link

BakurL commented Oct 15, 2021

Thanks for the work gents

@gkatsev gkatsev pinned this issue Oct 18, 2021
@gkatsev
Copy link
Member

gkatsev commented Oct 19, 2021

So, after some more testing, we realized that there's a breaking change as part of #142. This is because the format of initData changes when switching from the legacy to the standards API. So, upgrading to 3.10.0 will potentially break your player without some changes on your side. To that end, we've decided to revert that change and release 3.10.1 without it. Then we'll do a major version to account for this.
I'll post again once we have a new release.

@BakurL
Copy link

BakurL commented Oct 20, 2021

We did make some changes in back and it 3.10 works for us. Works better than 3.9, but iOS15 still has some issues with ~30% of videos (which was 100%)

@gkatsev
Copy link
Member

gkatsev commented Oct 20, 2021

@BakurL yeah, we see some issues on our end as well. I think ultimately, we'll need to wait for apple for the remaining issue. Also, sorry that you'll need to make some more changes once 4.0 comes out. Hopefully, it'll allow you to simplify things on your end. See #147, which still needs some reviews by my teammates, but it's working for me.

@BakurL
Copy link

BakurL commented Oct 20, 2021

No worries, patch worked much better for us than previous version. Thanks for the info

@gkatsev
Copy link
Member

gkatsev commented Oct 25, 2021

iOS 15.1 is out today. I just downloaded and confirmed that with cmaf segments things play correctly with the old version of videojs-contrib-eme. Going to test out ts segments now.

@gkatsev
Copy link
Member

gkatsev commented Oct 25, 2021

Confirmed that ts segments work as well for me.

@BakurL
Copy link

BakurL commented Oct 29, 2021

Tested on ipad and iphones and works too, thanks

@yudarksoul
Copy link

demo videojs work on safari
https://codepen.io/yuchichang/pen/gOqRjLB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants