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

WebRTC没有把Safari和连接起来
EN

Stack Overflow用户
提问于 2017-11-23 11: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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 10: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 12:51:38

有几个问题:

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

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

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

https://stackoverflow.com/questions/47462247

复制
相关文章
Safari上使用WebRTC指南
原文:https://webrtchacks.com/guide-to-safari-webrtc/
LiveVideoStack
2021/09/01
3.4K0
把Safari当chrome用(插件篇)
主页:http://markdown-here.com 点评:在网页的编辑器中用markdown的语法输入内容,然后右击选择Markdown Toggle或者按下markdown here插件的图标或者按下快捷键CTRL+ALT+M即可完成渲染,让你轻松搞定内容排版。 更多设置,请参考:利用 Markdown Here 实现高效排版
尾尾部落
2018/09/04
2.6K0
把Safari当chrome用(插件篇)
Zoom支持自动生成字幕;SharePlay上线;Safari 更新导致大量bug |WebRTC风向
自动生成字幕难度不低,但国民级应用Zoom把这一功能拿来了;在iOS 15.0 Safari的更新中,增加了很多WebRTC相关的特性,你想了解吗?相关信息,尽在文中。
刘连响
2021/11/17
1.4K0
WebRTC, IOS 和直播
主讲人首先介绍了他自己,Colin Biggin 从 2008 年开始作为 iOS 程序员一直在 AppStore 上开发应用程序,在 AppStore 上开发超过 70 个应用程序。2014 年入职 Stage TEN,与 YouTube、Google、TVO、Khan Academy 均有合作。
用户1324186
2022/05/24
1.7K0
WebRTC, IOS 和直播
Safari扩展
本系列文章分两部分,介绍macOS浏览器扩展背后的技术,以及恶意插件如何窃取密码、银行细节和其他敏感用户数据。
安恒网络空间安全讲武堂
2019/09/29
1.7K0
【WebRTC】WebRTC学习总结
WebRTC 是一项「实时通讯技术」,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。本篇文章从自身实践出发,结合相关代码,总结WebRTC实现的基本流程。
pingan8787
2020/05/14
3.8K0
【WebRTC】WebRTC学习总结
Noir – Dark Mode Safari (Safari 扩展程序)激活版
Noir是一个 Safari 扩展程序,它会自动为您访问的每个网站添加暗模式。它使晚上浏览网页变得更好。使用 Noir,您将不会再被明亮的网站蒙蔽双眼。
Mac小小
2022/08/17
1.3K0
iPad Safari多窗口视图分析和实现思路
2019年苹果更新了 iPad mini 和 Air 的产品线,iPad 算是个相当好用的产品,比起 iPhone ,部分型号允许你外接键盘、使用触控笔等硬件来提升生产力,那么我们从软件应用开发角度可以如何帮助用户提升生产力呢?这里我将以 Safari 为参考探讨它的实现思路。
horsley
2019/04/02
4.1K1
iPad Safari多窗口视图分析和实现思路
WebRTC的现状和未来(下)
可拓展视频编码(SVC)可以说是处理来自同一发送者的多个媒体流以处理组呼叫中每个接收者的不同条件的更好方法。在许多方面,它也被认为更复杂。Sergio&Gustavo对此主题发表了精彩的文章。
LiveVideoStack
2021/01/19
1.1K0
IOS 8 Safari JIT bug影响jQuery和underscore
前端时间为移动游戏做一个网页活动需求(9宫格的刮奖),遇到一个很诡异的问题:Android端OK,就是在Ios设备上,点击非第一块区域,显示却是第一块区域被刮开咯,查看后端返回数据缺失OK的【前端采用backbone写法,遍历返回数据用的是underscore.js中的each】。经过一番查证,原来如此。 参考水木社区这里的叙述,知晓原来这个属于:IOS 8 Safari JIT bug 影响 jQuery 和 underscore,致使: $.each/.each,看到 .length 后,会把一个 ob
晚晴幽草轩轩主
2018/03/27
8530
WebRTC直播技术(一)-初探WebRTC
本文介绍了WebRTC直播技术,包括相关概念、API、信令流程以及SDP握手等内容。通过这些介绍,读者可以了解WebRTC直播的原理和实现方式。
IMWeb前端团队
2017/12/29
4K0
WebRTC直播技术(一)-初探WebRTC
webrtc技术原理_webrtc开源项目
webrtc冗余打包方式有三种:Red(rfc2198)、Ulpfec(rfc5109)、Flexfec(草案)。其中Red和Ulpfec要成对使用。
全栈程序员站长
2022/09/22
3.4K0
webrtc技术原理_webrtc开源项目
Safari浏览器
浏览器 我们今天研究一下这个浏览器,自带的浏览器。我还没有用明白 版本 浏览器扩展,基本上都要钱 可以对单个网站进行设置 一些开发的设置 完善的功能 可以评测一些数据 一些快捷键 打开文件 导出书
云深无际
2020/09/03
2K0
Safari浏览器
绕过Edge、Chrome和Safari的内容安全策略
概述 ---- Web应用中有许多基本的安全机制,其中一个是同源(same-origin)策略机制,该机制规定了应用程序代码可以访问的资源范围。同源策略的基本思想是,源自于某台服务器上的代码只能访问同一台服务器上的web资源。 比如,在Web浏览器上下文中执行的某个脚本,如果其来源服务器为good.example.com,那么它就可以访问同一台服务器上的数据资源。另一方面,根据同源策略的思想,来自evil.example.com的另一个脚本不能访问good.example.com上的任何数据。
奶糖味的代言
2018/04/16
2.6K0
Google Gears 支持 Safari
Google Gears 是一种开源浏览器扩展,使开发人员能够创建可离线运行的网络应用程序。最初 Google Gears 只支持 IE 和 Firefox。很快 Google 浏览器 Chrome ,其中就内置了 Google Gears。而 Google Chrome 和 Safari 都是使用 Webkit 引擎,所以很快 Google 就推出了支持 Safari 版本的 Google Gears。 让 Gears 在 Safari 工作需要不同的机制,安装 Gears 的时候你会发现,Gears 由两个部件组成:一个 NPAPI 插件位于 “/Library/Internet Plugins”,一个 InputManager。Gears 在浏览器启动的时候,需要将第一个部件加载,网站中的第一个加载页面其实是来自 Gears 的离线缓存。NPAPI 没有办法早期加载,因此我们需要一个小小的 InputManager 部件来实现。
Denis
2023/04/13
7950
「WebRTC」最新 WebRTC 源码目录结构分析
最近一直在研究 WebRTC源码,发现目前网上分析WebRTC源码的资料非常少。随着Google不断推进WebRTC标准,WebRTC 代码的变化非常大,很多以前的分析文章目前都与最新的代码无法对应上了。
音视频_李超
2020/04/02
4.3K0
「WebRTC」最新 WebRTC 源码目录结构分析
WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba
WebRTC 无疑推动和改变了互联网视频,而这仅仅是刚刚开始,除了大家熟悉的 WebRTC-PC、Simulcast 和 SVC,有太多的新技术和新架构出现在 WebRTC 新的标准中,比如 WebTransport、WebCodecs、AV1、E2EE、SFrame、ML 等等,这篇文章详细介绍了未来的 WebRTC-NV,不容错过。
音视频开发进阶
2021/02/24
1K0
WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba
WebRTC直播技术(一)-初探WebRTC
信令是WebRTC用来协助建立p2p通讯的。主要用于协商双方通讯过程,传递基本信息SDP(会话描述协议)。 例如:打开/关闭连接的指令;视频信息,比如解码器,解码器的设置,带宽,以及视频的格式等;网关信息,比如双方的 IP,port... 一个简单的SDP格式:
IMWeb前端团队
2019/12/03
2.4K0
WebRTC直播技术(一)-初探WebRTC
点击加载更多

相似问题

带easyrtc的Safari WebRTC

22

有没有办法把Youtrack和Hipchat连接起来?

11

有没有办法把GIMP和PHP连接起来?

32

把资产和车把连接起来?

11

有没有办法把边界和尾风连接起来?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文