| Summary: | [WebRTC] Video from safari is freezing and video quality is bad overall | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | ivan.zahrodskyi | ||||||
| Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> | ||||||
| Status: | RESOLVED CONFIGURATION CHANGED | ||||||||
| Severity: | Critical | CC: | kagh, karlcow, mike.beale, webkit-bug-importer, youennf | ||||||
| Priority: | P2 | Keywords: | BrowserCompat, InRadar | ||||||
| Version: | Safari 17 | ||||||||
| Hardware: | Mac (Apple Silicon) | ||||||||
| OS: | macOS 14 | ||||||||
| Attachments: |
|
||||||||
|
Description
ivan.zahrodskyi
2023-09-28 04:31:23 PDT
@Ivan, are you able to check remote inbound rtp stats and see whether you see increasing packetsLost? This might be the same issue as rdar://112043387 (In reply to youenn fablet from comment #2) > @Ivan, are you able to check remote inbound rtp stats and see whether you > see increasing packetsLost? Yes, packetsLost is increasing in remote inbound rtp stats. Hi, does anyone have any further information on this? We are experiencing similar with our webrtc solution, only with Safari 17. We are using a media proxy, and see this generating a series of NACKs back to Safari 17 when possibly network conditions aren't ideal. We are wondering if there's some issue with the way that Safari 17 is handling NACKs? (We don't see the same sort of video freezing in Chrome, Safari 16 etc.) Any information greatly received! Created attachment 469442 [details]
Wireshark dump(encrypted packets) of Safari video sender
We have seen this problem a lot recently while running Microsoft Teams call on Safari.
For example, we ran a P2P call between Safari and Chrome. Here the Safari client is the video sender and Chrome client is the video receiver. I have attached a wireshark dump captured on the Mac (Safari video sender). In the pcap, payload type 116 is for video and payload type 117 is for RTX. There you can see a lot of video packets are missing, i.e., packets are dropped by Safari before they reach the network. Due to this, a lot of NACKs are received/RTX are sent. If the round-trip time is small enough the resends from the NACKs arrive just a bit late. For higher latencies, this may cause video freezes.
It might be caused by too small send buffer in Safari. @youenn could you please take a look?
Created attachment 469443 [details]
RTP dump from Chrome video receiver(unencrypted packets)
Also attaching the RTP dump of the Chrome video receiver side
To be more explicit, in the RTP dump of Chrome video receiver, it has the first NACK in packet 3. The NACK pid is for RTP packet with seq 4134. The RTP packet with seq 4134 is not there in the RTP dump of Safari video sender, i.e., dropped by Safari before sending it out to network. This missing packet should have the RTP timestamp 1049679440. Filtering for that in receiver's pcap, shows a couple of PT=117 (rtx). The first one is packet 11 which has a payload starting with 0x1026 or 4134. This should be fixed in latest macOS Sonoma beta 14.3. Could you have a try? FWIW, this should be resolved by rdar://112043387. @youenn We have tested this on Safari v17.4/MacOS v14.4 and we still see the problem in some calls. Could you please take a look? |