首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebRTC没有把Safari和连接起来

WebRTC没有把Safari和连接起来
EN

Stack Overflow用户
提问于 2017-11-23 19:25:19
回答 2查看 13.6K关注 0票数 8

WebRTC没有把Safari和连接起来。从桌面上的Chrome到Safari,都没有问题。另外,Safari - Safari没有问题。

自从WebRTC 11和Safari 11在桌面上运行以来,苹果就一直在支持iOS。

作为基础,我使用了google codelab的代码,在两个浏览器之间有一个基本的视频聊天应用程序。在测试中,我使用了同一WiFi网络中的两个设备,只是为了确保。

在这些情况下,很好地使用了(参见规范设备):

  • 桌面/Chrome <->桌面Safari
  • 桌面/Chrome <-> Android/Tab/Chrome
  • 桌面/Chrome <-> iPad/Safari
  • 桌面/Chrome <-> iPhone/Safari
  • 桌面/Safari <-> iPad/Safari
  • 桌面/Safari <-> iPhone/Safari
  • iPad/Safari <-> iPhone/Safari

在这些情况下,不是在工作:

  • Android/Tab/Chrome <-> iPad/Safari
  • Android/Tab/Chrome <-> iPhone/Safari
  • Android/Tab/Chrome <->桌面/Safari

这些设备的规格:

桌面/Chrome

  • Macbook MacOS 10.12.6
  • 铬63.0.3239.132

桌面/Safari

  • Macbook MacOS 10.12.6
  • 狩猎11.0.2

Android/Tab/Chrome

  • 三星Galaxy Tab3 8.0英寸(SM 310)
  • Android 4.4.2
  • 铬63.0.3239.111

iPad/Safari

  • iPad迷你2 (A1489)
  • iOS 11.2.2
  • Safari

iPhone/Safari

  • iPhone 6 (A1586)
  • iOS 11.2.2
  • Safari

1) Android/Tab/Chrome <-> iPad/Safari

Android/Tab/Chrome发送一个offer,然后iPad/Safari接收它,然后给出一个错误:

代码语言:javascript
运行
复制
Unhandled Promise Rejection: OperationError (DOM Exception 34): 
Failed to set remote offer sdp: Session error code: ERROR_CONTENT. 
Session error description: Failed to set remote video description send parameters..

sdp offer

代码语言:javascript
运行
复制
v=0
o=- 7644883235956031763 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 9 0 8 105 13 110 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:mXxq
a=ice-pwd:T4vRjmDaHYES+J3WJ8NAx65S
a=ice-options:trickle
a=fingerprint:sha-256 B1:36:E3:06:6E:6F:73:59:96:BB:74:95:79:20:64:F6:45:AD:99:1A:43:78:AD:CA:CA:7A:D9:23:2C:D8:C5:07
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:1841783350 cname:RdL9LRY2OCXO8jbB
a=ssrc:1841783350 msid:Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm e1a0f1a7-66bf-4921-9677-30e5e838ad02
a=ssrc:1841783350 mslabel:Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm
a=ssrc:1841783350 label:e1a0f1a7-66bf-4921-9677-30e5e838ad02
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:mXxq
a=ice-pwd:T4vRjmDaHYES+J3WJ8NAx65S
a=ice-options:trickle
a=fingerprint:sha-256 B1:36:E3:06:6E:6F:73:59:96:BB:74:95:79:20:64:F6:45:AD:99:1A:43:78:AD:CA:CA:7A:D9:23:2C:D8:C5:07
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 red/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 ulpfec/90000
a=ssrc-group:FID 659734980 914875391
a=ssrc:659734980 cname:RdL9LRY2OCXO8jbB
a=ssrc:659734980 msid:Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm 53ce1350-e2ef-426e-9023-e91e4ea08dc6
a=ssrc:659734980 mslabel:Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm
a=ssrc:659734980 label:53ce1350-e2ef-426e-9023-e91e4ea08dc6
a=ssrc:914875391 cname:RdL9LRY2OCXO8jbB
a=ssrc:914875391 msid:Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm 53ce1350-e2ef-426e-9023-e91e4ea08dc6
a=ssrc:914875391 mslabel:Yiel2ebiIcKBPDaLuAqKaFpR93Mbz1tSsNRm
a=ssrc:914875391 label:53ce1350-e2ef-426e-9023-e91e4ea08dc6

如果iPad/Safari首先发送报价,那么Android/Tab/Chrome上也会出现相同的错误消息。

2)同样的错误

Android/Tab/Chrome <-> iPhone/Safari

Android/Tab/Chrome <->桌面/Safari

代码语言:javascript
运行
复制
Uncaught (in promise) DOMException: Failed to set remote offer sdp: 
Session error code: ERROR_CONTENT. Session error description: 
Failed to set remote video description send parameters..

更新:

自从从iOS 11.1.2升级到iOS 11.2.2之后,桌面/Chrome <-> iPhone/Safari的另一个问题就解决了。所以这件事现在起作用了。

阅读的原始错误报告。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-11 18:02:47

有两个不同的问题使得安卓上的Chrome和iOS/Safari之间的WebRTC连接无法工作:

1)没有H.264在设备上的实现

Chrome只有一个用于H.264的硬件实现,并且没有软件实现。目前,H.264只与高通(Kitkat及更高版本)或三星Exynos (Lollipop及更高版本)的处理器一起工作。由于苹果只支持H.264,其他安卓设备无法与iOS和Safari连接。

2) Chrome for Android中存在缺陷:

Chrome Android不提供/回答H.264限制的基线配置文件

因为苹果只支持H.264,所以Android/Chrome目前无法与iOS连接。

这个问题将在65 (现为金丝雀)中得到解决。有关详细信息,请参阅

在我的例子中,问题是bug,但我认为人们应该意识到这两个问题。

票数 8
EN

Stack Overflow用户

发布于 2017-11-24 20:51:38

有几个问题:

  • iOS只支持H264 (配置文件42e01f)
  • 您的报价只包含VP8 & VP9视频编解码器,Safari可以解码,但不会编码(归咎于政治)。
  • 安卓设备似乎支持H264,但配置文件42001 f.因此,配置文件不匹配。

其结果是,为了让H264在您的所有设备上运行,您可能必须执行一些SDP吞咽操作。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47462247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档