awslabs / amazon-kinesis-video-streams-webrtc-sdk-js

JS SDK for interfacing with the Amazon Kinesis Video Streams Signaling Service.
https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html
Apache License 2.0
286 stars 141 forks source link

Recent issues specific to Safari: Viewer can't see Master's video #174

Closed behnam354 closed 2 years ago

behnam354 commented 2 years ago

Hi,

We've been successfully running this sdk as well as the KVS WebRTC Test Page using safari and other browsers. However, it's been a couple of days that we noticed that we are having issues specific to Safari (Chrome is working fine) and the viewer can't see the video of the master. We tried using two separate safari windows on the same laptop or different laptops and in all cases the viewer can't see the master's feed. (I don't have a solid statement on how the audio works, it seems that the audio sometimes goes through and sometimes doesn't)

I've shared some screenshots and logs. The screenshots show the two-way video works on chrome but not on Safari. On Safari, only viewer (sometimes) might be able to send the video and if the viewer doesn't send video, then both master/viewer players will show black screens when using the KVS Webrtc test page. Logs and screenshots are attached: logs_screenshots.zip

We appreciate it if you have any thoughts on this.

System settings of my laptop (we tried it on other laptops and they all had similar issues):

Best, Behnam

disa6302 commented 2 years ago

Was there a safari version update between the working and non-working case? Also, what is the master running? Do you see any errors on the master end?

behnam354 commented 2 years ago

Thanks for getting back to me.

  1. There wasn't a safari update between these two cases. My safari version has been on 14.0.3 (16610.4.3.1.7) for a while and recently the demo page has stopped working. We also see the same issue with Safari 15.5 (17613.2.7.1.8) and 15.4 (17613.1.17.1.13) on my colleagues' laptops. [P.S. I'm not sure if that's related or not but we've been seeing similar issues on chrome (when hardware acceleration was on and I believe chrome came up with a fix for that). There were no issues with safari at that time.]

  2. The master is running on Safari as well. So I opened up two of your demo pages on different safari windows (same laptop or different laptops) and I wasn't able to send video from master to viewer which was doable in case of a chrome browser. There are no errors in master/viewer logs. The logs are all attached in the .zip file that I attached to my original post.

disa6302 commented 2 years ago

I checked the logs, but did not see anything standout. Is the same webcam the source of input for the master and the viewer?

behnam354 commented 2 years ago

Thanks for checking the logs. We ran multiple experiments: one using the same webcam (same laptop) for running the master and the viewer and the other experiment we used was different webcams (laptops) were used for the master and the viewer and in both cases we faced issues with safari (but not with chrome)

Also, I was wondering if you can give it a try and test the demo page on a M1 macbook using safari and let us know if that works on your end. Thanks!

behnam354 commented 2 years ago

Hey there, I was wondering if you've had a chance to look into this issue and if you have any updates on this?

disa6302 commented 2 years ago

@behnam354 ,

Apologies for the delay. Have not had the chance to look at this issue. Did you see this issue on any Mac laptops before M1?

behnam354 commented 2 years ago

Hi @disa6302 .. we do see issues on non-M1 Mac laptops as well .. How does the test page work on your end? Are you able to get it to work on safari on a mac device?

hassanctech commented 2 years ago

I am able to reproduce this on my intel mac laptop, last time I tested this a couple months ago this worked fine. I will have a look into this.

hassanctech commented 2 years ago

Also it looks like Chrome Master and Safari Viewer works fine and Chrome viewer and Safari master works fine... it's only the Safari master + Safari viewer combination that isn't working.

hassanctech commented 2 years ago

I just tried it with Safari Technology Preview from Apple's site, this one Safari Technology Preview for MacOS 12.3 and newer and it works just fine with that!!

hassanctech commented 2 years ago

It looks like Safari Technology Preview is running Safari 16, which appears to be the default with MacOS 13 (Ventura) which is currently in beta.

hassanctech commented 2 years ago

My best guess at this time is something broke in Safari and since Safari updates are tied to MacOS updates perhaps somewhere in the middle when it stopped working for you MacOS had an update that updated Safari that caused this issue. It doesn't appear to be broken in their latest preview. To try Safari 16 (beta or via the technology preview) you do need to be on MacOS 12.3 or later.

Finally, looking at the release notes there do appear to be a ton of changes they've made to enhance the webrtc experience here: https://developer.apple.com/safari/technology-preview/release-notes/

behnam354 commented 2 years ago

Thanks for looking into this! Do you think this repo can be updated so that it could bypass the issue that safari has raised? Or does it mean that this sdk won't work on safari 14/15 versions? If you think there is no way to fix the safari issue for certain versions, it would be nice to list the broken versions in the readme so that other people are aware as well. We've already tested the demo page on safari versions 14.0.3, 15.4, and 15.5 and none of them work. Thanks!

behnam354 commented 2 years ago

We've tried a few combinations of browsers to give you more data on broken versions .. We still see issues when testing Safari 16 as one end and Safari 14.0.3 (or Chrome 97.0.4692.99) as the other end.

Here is the summary of our observations:

Master Viewer Video Works Audio Works Notes
Safari 15.5 Safari 14.0.3 Yes Yes
Safari 16 Safari 14.0.3 No Yes 16.0 (Master) video gets frozen. Sometimes viewer gets no stream
Chrome 103.0.5060.53 Safari 14.0.3 Yes Yes
Safari 14.0.3 Safari 15.5 Yes Yes A little lag upon initial connection, no problems after 10s
Safari 14.0.3 Safari 16 No Yes but from master is very quiet
Safari 14.0.3 Chrome 103.0.5060.53 Yes Yes
Safari 16 Chrome 97.0.4692.99 No No Neither participant can see/hear the other. 16.0 (Master) cannot see own video. Video Players indicate no connection occured
Chrome 103.0.5060.53 Chrome 97.0.4692.99 Yes Yes
Chrome 97.0.4692.99 Chrome 103.0.5060.53 Yes Yes

Please let us know if you have any updates!

disa6302 commented 2 years ago

Thank you for this. From the table, I see Safari 16 is not working for you. As suggested by @hassanctech , is the Safari 16 you are using beta/ running technical preview?

behnam354 commented 2 years ago

Yes the Safari 16 was the latest Tech Preview.

disa6302 commented 2 years ago

@behnam354 ,

As per your matrix, everything seems to be working fine with Safari versions lower than 16. I tested on my end with different browser combinations using Safari 15.6 and everything works fine. At this point, using a lower Safari version would be the fix.

jdelapla commented 2 years ago

As the only issue is with Safari 16, and Safari 16 is still in beta I will close this ticket and we'll review Safari 16 once it's formally released.

jeryini commented 1 year ago

Is Safari 16 still an issue? We've reports of some users experiencing issue (video not working) with Safari as viewers on iOS devices, specifically iPhone.

sirknightj commented 1 year ago

@jeryini I am using Chrome 113.0.5672.126 (master) along with Safari 16.4 (viewer) on my Mac am able to send/receive video on both ends.

Please create a new issue with some logs to investigate further.