问题标签 [peer-connection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1279 浏览

android - 如何修复 Android/Webrtc/PeerConnection/createOffer 中的“m=video 9 UDP/TLS/RTP/SAVPF 0”问题

如何获取/启用 webrtc/video-coding-format?(安卓)

我正在尝试使用媒体/视频创建 sdp-offer,但似乎没有返回支持 fmt:

它适用于一个应用程序中的数据通道和音频流(2 个对等连接)。

部分代码:

onCreateSuccess(SessionDescription),Type=Offer,描述:

0 投票
1 回答
170 浏览

video-streaming - 实时视频

互联网上散布着很多信息,但很难找到具体的信息

问题是为视频流创建实时、低延迟解决方案的最佳现代方式是什么

Wyze 摄像头、Ring 视频门铃等产品正在使用哪些解决方案?

Android/ios 客户端和 Web 客户端的最佳解决方案是什么

0 投票
1 回答
666 浏览

webrtc - Webrtc Android DTMF 支持

我正在尝试基于 WebRTC 为 Android/iOS 应用程序实现 DTMF。是否有适用于 Android 的 DTMF 的 API?我曾尝试调用以下内容:

我已经尝试将上述 api 用于 javascript,它在浏览器上运行良好,但无法在 Android 上运行。我还没有在 iOS 上尝试过,因为我需要先让它在 android 上运行。

请让我知道这是否在 Android/iOS 上受支持?如果是的话,任何人都可以帮助我正确的api

使用的 libjingle 版本:chrome 74.0.3729.169

0 投票
1 回答
2247 浏览

swift - iOS Swift WebRTC - 无法设置远程报价 sdp:无法设置远程视频描述发送参数

我正在尝试 iPhone 设备之间的 webRTC 视频通话。一个应用程序正在创建报价 SDP,如下所示。当我尝试设置此 SDP 时,在另一个应用程序中出现错误

错误 Domain=org.webrtc.RTCPeerConnection Code=-1 “无法设置远程报价 sdp:无法设置远程视频描述发送参数。” UserInfo={NSLocalizedDescription=设置远程offer sdp失败:设置远程视频描述发送参数失败。}

以下是用于设置报价和创建答案的代码。第二行self.peerConnection?.setRemoteDescription抛出错误。

以下是Offer SDP格式

0 投票
1 回答
3033 浏览

javascript - WebRTC:如何在 Firefox 中检测流或轨道何时从 PeerConnection 中删除?

onremovestream已被弃用(并从 Firefox 中删除),而onremovetrack尚未在 Firefox 中实现。

如何检测何时在 Firefox 中删除流或轨道?

0 投票
0 回答
444 浏览

react-native - react-native-webrtc 无法创建 RTCPeerConnection

我正在尝试使用 react-native-webrtc 创建一个基本的 RN 应用程序,但我无法创建 RTCPeerConnection 类实例。

有错误: 在此处输入图像描述

无法创建 RTCPeerConnection 类的实例可能是什么原因?所有依赖项都已安装。

0 投票
1 回答
969 浏览

java - 由于会话选项无效,Android webrtc 无法创建报价

我尝试使用 webrtc sdk 在 android 中创建一个视频聊天实现,使用 Firebase FireStore 作为信号机制。我遵循了一些教程,并成功地创建了点对点连接。

最初,我尝试将视频流从一个对等方发送到另一个对等方并且它有效。然后,当我尝试将音轨添加到流中时,初始对等方无法再创建报价(我从调试中发现)。结果,无法再建立webrtc连接。现在我很困惑这是怎么发生的。

后来我还发现,如果我只添加一个轨道,无论是音频轨道还是视频轨道,那么我的应用程序就可以正常工作,但是如果我尝试同时添加音频和视频轨道,那么初始对等方将无法再创建报价。

这是我的 CallActivity.java 的完整代码,其中包含所有 webrtc 实现。我从这段代码中删除了一些我认为不需要的不需要的语句。

请注意这一行

在 initialize() 函数的末尾。由于注释了此行,因此一切正常,但是如果我取消注释此行,webrtc 将无法创建连接,因为没有成功创建报价,这是我不知道如何解决的问题。我尝试了谷歌搜索,只发现了一些与 webrtc 浏览器 API 无关的问题。我不明白这一行如何阻止整个 webrtc 连接正常工作。(我知道 webrtc 无法创建报价,因为 peerConnection.createOffer() 之后的 onCreateSuccess() 方法,如果我取消注释这一行,则永远不会被调用)。由于这行注释一切正常,我不相信我的执行信号的firestore代码是一个问题。

这是 build.gradle 文件:

我已经关注了一些关于 webrtc android 的在线教程,他们都只做了视频流(在我的应用程序中有效)。由于没有官方的 webrtc 文档,我不知道如何解决这个问题。请帮忙!

0 投票
1 回答
212 浏览

go - 未找到 webrtc.PeerConnection 中的 OnNegotiationNeeded 事件(pion golang)。但是在官方文档中它表明它就在那里

在我尝试列出 webrtc.PeerConnection 对象中的可用方法后来自我的 PC 的屏幕截图ur.com/3Nydn.png

官方文档pion webrtc doc显示 * func ( PeerConnection) OnNegotiationNeeded存在。但实际上 PeerConnection 对象中不存在此事件。可以从给定的屏幕截图中进行检查。除了这一事件之外,还存在其他事件。解决办法是什么?

0 投票
1 回答
61 浏览

webrtc - 我应该等待 RTCPeerConnection.setRemoteDescription() 和 RTCPeerConnection.addIceCandidate() 承诺解决吗?

  1. RTCPeerConnection.setRemoteDescription()返回一个 Promise,一旦连接的 remoteDescription 的值成功更改,该 Promise 就会解析。在调用RTCPeerConnection.addIceCandidate()之前,我是否需要等待此 Promise 成功解决 ?

  2. 此外RTCPeerConnection.addIceCandidate(),返回一个 Promise,当 ICE 代理成功地将候选者添加到远程对等点的描述中时,该 Promise 就实现了。在通过添加下一个可用候选人之前,我应该等待此 Promise 成功解决,RTCPeerConnection.addIceCandidate()还是可以并行添加 IceCandidates?

0 投票
0 回答
192 浏览

javascript - RTCPeerConnection - MediaStreamTrack 从外部源重新流式传输时只有黑帧

我目前正在开发一个库,该库MediaStreamTrack通过RTCPeerConnection.

我目前遇到的问题是除了远程轨道外一切正常。我的MediaStreamTrack相机是在本地主机上创建的,可以毫无问题地发送,但是当我尝试发送从外部服务器接收的轨道时,它只显示黑框。

我猜这和这里的问题一样。

我检查过的

正在接收曲目(我检查过chrome://webrtc-internals)并且视频元素处于播放状态。我在控制台和 webrtc-internals 中都没有看到任何错误。此外,流/轨道已启用且未静音。在源窗口上使用captureStream()结果相同。

使用外部源捕获和流式传输视频元素可以正常工作。

可能的原因

我认为问题可能在于初始流来自不是的域,localhost因此无法重新流式传输它。在 w3c 标准中是这样描述的:

轨道可能包含应用程序无法访问的内容。这可能是由于任何会使跟踪 CORS 跨域的原因。这些轨道可以提供给 addTrack() 方法,并为它们创建一个 RTCRtpSender,但不得传输内容。发送静音(音频)、黑帧(视频)或同等缺失的内容来代替轨道内容。

来源 (10.)

主意

我不确定我上面提到的“可能的问题”是否是真正的问题,但我的一个想法是重写请求和响应标头以匹配localhost但它不起作用。我猜它不会影响 WebRTC 连接。

我使用的电子钩子: