问题标签 [rtcpeerconnection]

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 投票
0 回答
545 浏览

javascript - 在 react-native-webrtc 中连接的对等点之间的正在进行的音频流中添加视频流

我有一个应用程序,我在其中实现了 web ( Reactjs ) 和移动 ( React Native ) 之间的音频/视频调用。我正在使用react-native-webrtc移动端对等方。连接音频呼叫并创建对等连接后,音频流可以完美运行。当我在音频通话期间切换到视频通话并且我设备上的摄像头打开时,现有的流不会更新以适应音频和视频流。我正在寻找一种解决方案,我可以在其中即时在音频和视频通话之间切换并相应地更新 webRTC 流。

Reactjs 代码:获取音频流并将其设置为localStream

Reactjs 代码:创建新的对等连接并localStream在其中添加流,其中包括音频为真和视频为假

React-native 代码:在添加新流时订阅事件侦听器,它会侦听此事件eventListener并将即将到来的流添加到remoteStream

Reactjs 代码:添加一个新的流,其中音频和视频都为 true

但是eventListener移动代码不听我添加的第二个流,音频为真,视频为真,前一个流继续,视频没有显示

0 投票
2 回答
292 浏览

webrtc - How does audio and video in a webrtc peerconnection stay in sync?

How does audio and video in a webrtc peerconnection stay in sync? I am using an API which publishes audio and video (I assume as one peer connection) to a media server. The audio can occasionally go out of sync up to 200ms. I am attributing this to the possibility that the audio and video are separate streams and this accounts for the why the sync can be out.

0 投票
0 回答
41 浏览

ios - 离子 ios,使用带有 RTCPeerConnection 的 websocket ws://

我有一个离子应用程序,它将远程 IP 摄像机的 websocket 加载到 HTML5 视频标签中。我正在使用一些浏览器支持的工具使其在没有 NodeJS 的情况下工作。我正在使用 Websocket 和 RTCPeerConnection 创建一个前缀为 'ws://' 的流,然后打开此连接并将其作为 sourceObject 放入 HTML5 视频标签。

这适用于浏览器,也适用于 Android 和 iOS 上的浏览​​器。此外,当我为 Android 创建 .apk 时,它还会加载流。但是当作为 iOS 应用程序测试时,websocket 在网络选项卡中打开,然后它通过 RTCPeerConnection 创建一个“报价”(就像其他浏览器一样),但随后连接关闭。

我没有收到任何警告或错误。我唯一看到的是,在 iOS 中,套接字会立即关闭。由于我的代码(我正在记录每个函数),这不会发生。

这是预期的输出,这就是它在 Android 和所有浏览器中的显示方式。 在 iOS 中

这是预期的输出,这就是它在 Android 和所有浏览器中的显示方式。在 iOS 中,"sdp" 行永远不会返回,并且在 "type":"offer" 之后连接关闭

请求标头与应用程序 Android 版本上的标头相同。应用内浏览器支持 WebSockets 和 RTCPeerConnection。有谁知道为什么这在我的 iOS 应用程序中不起作用?

我已经允许 'ws://*' url 也许我需要将摄像机的 IP 列入白名单之类的?我不知道如何在没有任何错误或警告的情况下更进一步。

0 投票
1 回答
295 浏览

javascript - 使用 RTCPeerConnection 将数据文件发送到另一台计算机?

如何更改代码以使计算机 1 代码连接到计算机 2 的代码(计算机 1 和计算机 2 不是同一台计算机,而是在同一网络上)。

它在本地工作,但当它是两台不同的计算机时不起作用

用于连接的计算机 1 和计算机 2 代码定义如下

这是在 computer1 上进行网络连接的代码

这是程序的一部分,负责接收计算机上的请求和文件数据2

我修改的代码(main.js)

感谢您的帮助

0 投票
0 回答
63 浏览

rtcpeerconnection - RTCPeerConnection 连接状态失败

我在 WebRTC 功能上开发了一些使用 Signaling & Matchmaker Server 运行的 Web 应用程序。在我办公室更换路由器之前,它运行良好。

当我检查问题是什么时,我发现 RTCPeerConnection.connectionstate 为“失败”然后视频没有播放,实际上它无法播放。

一件奇怪的事情是 RTCPeerConnection.connectionstate 是“连接的”并且在大多数其他位置运行良好,但在更改路由器后它不在某些位置,包括我的办公室。

另一种出现“connectionstate failed”的情况是Chrome浏览器更新到新版本之后。

请帮我解决这个问题。

谢谢你。

0 投票
0 回答
100 浏览

javascript - 我可以对不同的连接(非并发)多次使用相同的 WebRTC 对等连接对象吗?

想象一个场景,

  • 对等体 A 连接到对等体 B
  • 对等体 A 断开连接
  • 对等点 C 想要连接到对等点 B

在这种情况下,对等点 B 是否可以使用相同的 PeerConnection 对象与对等点 C 连接?还是应该创建一个新对象?

我使用 WebRTC 构建了一个聊天应用程序。当两个用户中的任何一个刷新页面时,问题就出现了。它本质上与一个用户断开连接而另一个用户取代该位置相同。我尝试时连接没有建立,但不确定问题是我的代码还是 RTCPeerConnection 的限制。

0 投票
1 回答
382 浏览

google-chrome - chrome://webrtc-internal 如何测量往返时间?

我一直在分析使用生成的 JSON 文件chrome://webrtc-internal,同时在 2 台 PCS 上运行 webrtc。

我查看了Stats API来验证 webrtc-internal 如何计算往返时间 (RTT)。我找到了两种方法:

  1. RTC 远程入站 RTP 视频流包含roundTripTime

  2. RTC IceCandidate 对,包含currentRoundTripTime.

哪一个是准确的,为什么以及如何计算?

RTT 是逐帧计算的吗?

它是用一种方式(sender --> receiver)还是两种方式(sender --> receiver--> sender)计算的?

哪些报告用于衡量 RTT?是Receiver Report RTCP还是Sender Report RTCP

中长度的大小是GOP多少Webrtc VP8 codec

0 投票
0 回答
24 浏览

javascript - RTCDataChannel 成功打开 - 但实际上并未打开

我正在尝试重新打开 RTCDataChannel 以响应前一个数据通道发出关闭事件。

我了解在许多情况下可能无法打开新频道。我预计createDataChannel在这种情况下会失败;或者,iceConnectionState会更改以指示失败,我可以重置/放弃连接。

我已经使用两个浏览器选项卡测试了这个逻辑。首先,我允许两个选项卡打开一个通道(协商成功,通道打开并支持数据传输)。然后我关闭一个标签。尽管其余对等点的通道按预期关闭,但我的乐观createDataChannel成功并且新通道发出了一个open事件。即使对等方未连接(数据无处可去),我也可以无限期地通过通道发送。readyState也仍然存在"open";这是关闭另一个选项卡后几分钟的真实情况!

我不知道为什么这个频道能成功打开。我注意到即使在对等点关闭后iceConnectionState仍然存在;disconnected这似乎与 Chromium 错误有关,failed由于无法排除未来候选人的到来,因此从未达到该状态。但是,我仍然希望通道在iceConnectionStateis时关闭/出错disconnected

为什么我能够在对等连接时创建数据通道disconnected?为什么不.send()引发错误?连接时如何拥有open频道disconnected?避免这种情况的最佳方法是什么?

谢谢!

在 Chrome 89.0.4389.76 上测试

0 投票
0 回答
33 浏览

node.js - RTC 数据通道无法在 aws ec2 上工作

我正在开发一个具有 Twilio Video 并使用 Websocket 和 RTC 数据通道的反应项目。一切都在我的本地网络上运行,但是当我将其部署到 AWS ec2 时,RTC 数据通道无法通过信令服务器相互传输数据。请提出我错的地方我已经在我的本地网络上用 3 台不同的电脑测试了我的应用程序,它正在本地网络上工作,比如通过 WebSocket 信号通过 RTC 数据通道和 Twilio 视频流传输数据

这是我的 Client.js

这是 serevr.js

0 投票
1 回答
219 浏览

webrtc - 具有多个对等连接的 WebRTC - 现有对等连接之间的流在创建新连接时停止

我正在为多个用户创建一个视频聊天应用程序。主持人发起呼叫,当第二个参与者加入时,在主持人和第二个参与者之间创建对等连接。

当第三个人加入时,在 1 & 3 和 2 & 3 之间创建对等连接(每个客户端有 n-1 个对等连接)。新连接按预期工作,但 1 和 2 之间的媒体流中断。

在创建对等连接后,我正在使用索引为每个对等连接注册适当的事件侦听器 -

在停止工作之前,索引为 0 的旧对等连接的任何事件都不会被触发。有关如何调试问题的任何线索。旧对等连接的连接状态是connected