12 | RTCPeerConnection:音视频实时通讯的核心
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
RTCPeerConnection是WebRTC实现音视频通讯的核心类,负责建立端到端连接、传输音视频数据以及保障服务质量。与普通socket类似,但功能更强大,实现更为复杂。在实现1对1通话系统时,RTCPeerConnection处理诸多细节,如建立连接、NAT穿越、丢包处理、带宽控制、音视频同步等。文章介绍了RTCPeerConnection的工作原理和实现通话的例子,强调了其重要性和功能。此外,还提到了适配各种浏览器的问题,并介绍了adapter.js适配器脚本的作用。整体而言,文章深入浅出地介绍了RTCPeerConnection的重要性和工作原理,对于想要了解WebRTC音视频通讯的读者具有很高的参考价值。
《从 0 打造音视频直播系统》,新⼈⾸单¥59
全部留言(24)
- 最新
- 精选
- forever老师您好,我想请教一下如何解决webrtc 兼容性的问题,特别是在ios端使用腾讯x5内核的时候
作者回复: iOS端只能用 safari,其它的浏览器都不能用 webrtc,之所以这样是因为苹果不允许其它浏览器访问底层 API,只能通过 webview实现浏览器。因此你会发现在iOS上只有 safari才能访问专栏中讲解的那些API
2019-08-107 - BubblyaddStream好像要被addTrack替代了。老师可以分析下使用addTrack来替代addStream的原因吗?
作者回复: 是的,原因在于WebRTC底层都是以 track 为单位的,而且使用track 更灵活,音频与视频可以随音组合
2020-10-303 - dayu老师,请问一下,如果在局域网内进行一对一通话,是不是可以不搭建STUN\TURN服务器?
作者回复: 可以,除非你们公司内部对 P2P 做了限制
2020-02-1623 - Jackson这个例子是webrtc官方的吧?
作者回复: 是的!
2019-12-1822 - Random老师你好,通话过程中的ice restart的触发时机选择什么时候比较好呢?
作者回复: 这个你要检测"iceConnectionState"的值了,其中我们感兴趣的是disconnected和failed两个状态,disconnected 表式断连了,failed表示经多次偿试仍无法恢复。所以当你检测到 failed时就可以重启 ICE 了
2020-06-0421 - xilie前面看不懂,到这才有感觉,又得回头去看前面的协议,建议凡事先上能跑起来的代码,再逐步解剖协议,好一点
作者回复: 😄,协议的内容相对来说稍难了一些,而知识的理解也需要一个时间过程
2019-08-141 - Ray-J老师,Candidate的作用是用来做什么的呢?翻译过来 是候选人, 很难理解这个词,希望能得到老师的帮助加深理解
作者回复: 就是 <IP,端口>对, 假设你的主机有两上网卡,都使用5678这个端口,那你就有两个候选者,它们分别是<网卡1的IP,5679>,<网卡2IP, 5678>
2019-08-121 - Her later在真实的场景中,每当获得一个新的 Candidate 后,就会通过信令服务器交换给对端,对端再调用 RTCPeerConnection 对象的 addIceCandidate() 方法将收到的 Candidate 保存起来,然后按照 Candidate 的优先级进行连通性检测。 真实场景中,应该是candidate 都是通过信令服务器转发的吧,rtcpeerconnection并不会收到oncandidate 的回调,不知道我理解是否正确?
作者回复: oncandidate是webrtc 底层收集到本机自己的Candidate 时通知上层应用的回调函数呀,你应该是还没看懂这快逻辑
2021-04-15 - Her later这篇文章解析了 如何端对端的推拉流 ,但是如果我要将流推到服务器 ,其他很多人订阅服务器的流老播放 ,又该怎样实现呢 ,有没有专门的文章介绍 ,有的话 ,我就买了 。
作者回复: 多人订阅使用nginx+rtmp 的方式
2021-04-08 - npersonal老师,编解码没有讲解吗。我现在碰到个问题,使用h264编码,stream的width和height都为0,这是什么原因
作者回复: 那肯定是编码失败的
2021-03-02