jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
23.21k stars 6.74k forks source link

Safari 11 WebRTC support #2000

Closed Janhouse closed 4 years ago

Janhouse commented 7 years ago

There is no need for plugins in latest Safari on desktop and mobile but it still shows a notification that Safari requires a plugin.

joshfarrant commented 7 years ago

It seems like it would be far simpler to check whether or not the relevant browser APIs are available, rather than relying on (what I'm guessing are) hardcoded User Agent strings.

There's plenty of libraries out there that simplify this process. I've had success with webrtcsupport in the past. Might be worth looking in to.

petervnv commented 7 years ago

Hmm, I just tested opening https://meet.jit.si with my Safari on my iPhone 7 on iOS 11.0.2 and I still get the "Your browser does not support WebRTC" message.....

Is webRTC support only available in desktop safari and not iOS 11?

bbaldino commented 7 years ago

@petervnv the only support for safari currently is via the temasys plugin, so i don't think mobile will work. we're taking a look at native webrtc support for the safari versions that support it soon (though i doubt we'll be spending time on mobile safari, as we have the native app there, but @saghul or @lyubomir can confirm)

petervnv commented 7 years ago

Thanks for the update @bbaldino I wouldn't spend much time on mobile Safari either. The app is more than enough

joshfarrant commented 7 years ago

@bbaldino Would it be possible to strip out the Temasys plugin entirely, seeing as it's not required for mobile Safari any more?

Is there any reason that you can't just treat mobile Safari in the same way you do any desktop browser, or even Chrome on Android, and use the built-in WebRTC APIs?

bbaldino commented 7 years ago

@joshfarrant not sure if we'll be able to get rid of temasys entirely, lots of enterprises lag quite a bit on updates and are probably on old versions of ie/safari which would require the plugin. maybe someday though, it would be nice to be able to simplify things.

as for treating mobile safari the same, that might be possible, but i haven't looked into what mobile safari even supports...it may or may not have the same webrtc apis implemented as in the desktop one and, even if so, unfortunately 'treating mobile browser XXX the same as desktop browser XXX' never seems to work all that well and practice and usually requires special-casing. but agree it's worth a look once we get desktop safari working.

joshfarrant commented 7 years ago

@bbaldino That's fair. Appreciate that enterprise users won't be particularly up-to-date and you definitely don't want to start breaking things!

I've actually had a lot of success with WebRTC on mobile Safari in the past. I worked on quite a large WebRTC application (which was built for desktop browsers, as well as for Chrome on Android) which didn't require any modification at all to get it working on iOS 11. This might not be the case for every application, but it gives me hope at least!

I'd be interested in testing Jitsi Meet on iOS 11 as-is (minus Temasys) to see what breaks, and how badly. Is there any chance you could point me in the right direction of where to start removing/bypassing Temasys? I've had a poke around but can't seem to find where it's referenced.

bbaldino commented 7 years ago

@joshfarrant @virtuacoplenny and i are in the middle of some work right now that should make all this a lot easier...we're moving away from our own shimming and over to using adapterjs which will make supporting other browsers like safari a lot more straightforward. if you do want to poke around, there is a method in RTCBrowserUtils which tests whether or not the temasys plugin should be used. but when you turn that off for safari, you'll need to add a bunch of shimming logic to make the types/functions (getUserMedia, RTCPeerConnection) etc. set up in the way that lib-jitsi-meet expects them. i'd suggest waiting a week or two, hopefully this should be in much better shape by then.

joshfarrant commented 7 years ago

@bbaldino That's great to know, thanks. I'll have a bit of a poke around but won't go too deep down this rabbit hole until those changes have dropped ๐Ÿ‘

neilzone commented 7 years ago

Hello! I wonder if there has been any advancement on this, please? I'd love to have Safari 11 working without the plugin, just to avoid having a plug-in!

bbaldino commented 7 years ago

@virtuacoplenny just did a bunch of PRs on this, though we are just doing audio-only on safari for now. but that should be available soon.

Kukunin commented 6 years ago

In my case, I need to make Safari working, even by changing from VP8 to H264 and disabling simulcast. I forked the lib-jitsi-meet to enable video support for Safari, and it works fine between Chrome / Safari. But I can't get it working between Firefox and Safari, I suspect due to Firefox.

Currently, I try to completely remove VP8/VP9 from SDP but it causes even more problems. Anyone has ideas how can I work around it? Thanks

bbaldino commented 6 years ago

@Kukunin i'd send an email on the list (dev@jitsi.org) and we can try and figure out your issues there.

shreeve commented 6 years ago

any update on this?

Janhouse commented 6 years ago

By the way, if you are unsure of how to approach it or if it is working at all, here is a working demo that runs on iPhone Safari https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html

tomkos commented 6 years ago

Is there any plan to make it work for Safari? Any plans?

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Janhouse commented 5 years ago

Nice try bot, this still hasn't been fixed. ๐Ÿ˜ƒ

joshfarrant commented 5 years ago

We've got to keep an eye on these bots - This is how it starts...

jtoy commented 5 years ago

so what is the status? I see for other webrtc services like appearin, safari works except for screensharing.

danchr commented 5 years ago

FWIW the technology preview of Safari appears to support VP8 video since preview 68.

soulfly commented 5 years ago

Just tried https://meet.jit.si on Safari Technology Preview Release 74 and video is still not supported..

This Technology Preview supports the following experimental features and they are enabled:

that's said..

What we, real users, can expect here?

saghul commented 5 years ago

You can expect full support. But it will take a bit for us to get there, we are a tad busy these days. Donโ€™t despair!

abdullahnkhan commented 5 years ago

We really need this to work. Thank you and appreciate all the work.

V3SalC commented 5 years ago

Hello, we also need this to work on iphone safari. I was successful in editing the app_bundle_min.js to work for Android both video and audio! I was hoping to get it to work for iphone since Safari now supports webRTC.

soulfly commented 5 years ago

Seems all is shipped on Safari https://webkit.org/blog/8672/on-the-road-to-webrtc-1-0-including-vp8/

So we are good to go here, no blockers should be faced, all the WebRTC features are supported now

do we have any updates here? ;)

nathando commented 5 years ago

I am interested in the update as well. But also, out of curiosity, how does the Demo react native app overcome this issue on ios ? https://github.com/jitsi/jitsi-meet/tree/master/react

saghul commented 5 years ago

Everyone: This is close to getting fixed here https://github.com/jitsi/lib-jitsi-meet/pull/835

@nathando I don't understand your question.

nathando commented 5 years ago

@saghul I wonder how the react native app overcome the issue on safari ? Or it did not just use the safari mobile but other native element ?

saghul commented 5 years ago

The Jitsi Meet app is built using React Native, it does not use a webview and thus is not affected by this problem.

nathando commented 5 years ago

@saghul thanks for the info. We are working on a solution and want to have it work on Unity3d. Wonder how could we replicate the result achieved in React Native, or anyone tried before ?

mibstar commented 5 years ago

I see https://github.com/jitsi/lib-jitsi-meet/pull/835 has been merged into master.

Would love to test this on http://meet.jit.si or even on https://github.com/jitsi/docker-jitsi-meet. Any ideas how or just a matter of waiting? Thanks.

saghul commented 5 years ago

It's a matter of waiting for a stable deployment. You can test on our beta setup: https://beta.meet.jit.si

I'm going to keep this open until we deploy a release to meet.jit.si at least.

Cheers!

saghul commented 5 years ago

@nathando Please start a topic on our forum (https://community.jitsi.org), your question is off-topic in this issue. Thanks!

mibstar commented 5 years ago

It's a matter of waiting for a stable deployment. You can test on our beta setup: https://beta.meet.jit.si

@saghul No safari support yet on the beta site yet. But happy to test once it's there.

saghul commented 5 years ago

@mibstar I double-checked, it's there. What Safari version are you using? Note that video will only work (as a starter) on Safari >= 12.1 with plan B (the default). If you change the experimental flag to Unified Plan you'll get audio only.

mibstar commented 5 years ago

@saghul I'm on 12.1 and I'm not aware that I've changed any defaults.

Screenshot 2019-04-10 at 15 53 36

V3SalC commented 5 years ago

Hello All, I would like to report that we tested on the iPhone using Safari 12.1 mobile at https://beta.meet.jit.si (requested desktop version), and firefox on linux. We were both able to see each other and hear each other. The camera is working! Any ETA on this beta on being production release? Thanks

saghul commented 5 years ago

@mibstar It might be a case of cache flushing / hard refreshing.

saghul commented 5 years ago

I would like to report that we tested on the iPhone using Safari 12.1 mobile at https://beta.meet.jit.si (requested desktop version), and firefox on linux. We were both able to see each other and hear each other. The camera is working! Any ETA on this beta on being production release?

Thanks for testing! The only ETA I can give you is "soon", sorry.

mibstar commented 5 years ago

Still not working after emptying cache. Also I've only just come across the beta site so I can't see how it would be a cache issue as it didn't not work in incognito mode.

On an iPad Air I deleted the meet app and tried but I'm getting:

Safari cannot open the page because the address is invalid

When I click on 'Continue to the app' instead of 'Download the app'. So still unable to test!

saghul commented 5 years ago

@mibstar How weird! What do you see in the JS console logs at the start?

mibstar commented 5 years ago

@saghul this:

Screenshot 2019-04-11 at 10 23 22

saghul commented 5 years ago

Can you start on a private tab so no usettings are reused? Also, is your camera working fine with other applications?

mibstar commented 5 years ago

Ah... strange the camera was in fact not working not even on facetime but after a reboot still nothing.

Tried from Safari first and no prompt for access to camera. Joined Chrome and all was well.

Screenshot 2019-04-11 at 11 11 29

I'm also including a fresh console log from incognito:

Screenshot 2019-04-11 at 11 23 22

saghul commented 5 years ago

That's very weird. "Invalid constraint" is the error, but I have no idea why you are getting that. What mac are you using?

neilzone commented 5 years ago

I'm using Safari 12.1 on macOS 10.14.4 (18E226).

When I load the beta site, I am prompted to permit camera and mic access. If I do so, it works, but the display shows only a static video image.

Screenshot 2019-04-11 at 12 43 22
saghul commented 5 years ago

When I load the beta site, I am prompted to permit camera and mic access. If I do so, it works, but the display shows only a static video image.

You mean the user avatar? Where, in the thumbnails or the large video?

neilzone commented 5 years ago

Sorry, I was unclear.

The large video, showing me (as the only participant to the conference at the time), not the gravatar.

saghul commented 5 years ago

Not showing video on the thumbnails is a known issue due to how Safari handles the autoplay policy, we'll be working on that. Thanks for testing!