问题标签 [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.
javascript - 在 react-native-webrtc 中连接的对等点之间的正在进行的音频流中添加视频流
我有一个应用程序,我在其中实现了 web ( Reactjs ) 和移动 ( React Native ) 之间的音频/视频调用。我正在使用react-native-webrtc
移动端对等方。连接音频呼叫并创建对等连接后,音频流可以完美运行。当我在音频通话期间切换到视频通话并且我设备上的摄像头打开时,现有的流不会更新以适应音频和视频流。我正在寻找一种解决方案,我可以在其中即时在音频和视频通话之间切换并相应地更新 webRTC 流。
Reactjs 代码:获取音频流并将其设置为localStream
Reactjs 代码:创建新的对等连接并localStream
在其中添加流,其中包括音频为真和视频为假
React-native 代码:在添加新流时订阅事件侦听器,它会侦听此事件eventListener
并将即将到来的流添加到remoteStream
Reactjs 代码:添加一个新的流,其中音频和视频都为 true
但是eventListener
移动代码不听我添加的第二个流,音频为真,视频为真,前一个流继续,视频没有显示
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.
ios - 离子 ios,使用带有 RTCPeerConnection 的 websocket ws://
我有一个离子应用程序,它将远程 IP 摄像机的 websocket 加载到 HTML5 视频标签中。我正在使用一些浏览器支持的工具使其在没有 NodeJS 的情况下工作。我正在使用 Websocket 和 RTCPeerConnection 创建一个前缀为 'ws://' 的流,然后打开此连接并将其作为 sourceObject 放入 HTML5 视频标签。
这适用于浏览器,也适用于 Android 和 iOS 上的浏览器。此外,当我为 Android 创建 .apk 时,它还会加载流。但是当作为 iOS 应用程序测试时,websocket 在网络选项卡中打开,然后它通过 RTCPeerConnection 创建一个“报价”(就像其他浏览器一样),但随后连接关闭。
我没有收到任何警告或错误。我唯一看到的是,在 iOS 中,套接字会立即关闭。由于我的代码(我正在记录每个函数),这不会发生。
这是预期的输出,这就是它在 Android 和所有浏览器中的显示方式。在 iOS 中,"sdp" 行永远不会返回,并且在 "type":"offer" 之后连接关闭
请求标头与应用程序 Android 版本上的标头相同。应用内浏览器支持 WebSockets 和 RTCPeerConnection。有谁知道为什么这在我的 iOS 应用程序中不起作用?
我已经允许 'ws://*' url 也许我需要将摄像机的 IP 列入白名单之类的?我不知道如何在没有任何错误或警告的情况下更进一步。
javascript - 使用 RTCPeerConnection 将数据文件发送到另一台计算机?
如何更改代码以使计算机 1 代码连接到计算机 2 的代码(计算机 1 和计算机 2 不是同一台计算机,而是在同一网络上)。
它在本地工作,但当它是两台不同的计算机时不起作用
用于连接的计算机 1 和计算机 2 代码定义如下
这是在 computer1 上进行网络连接的代码
这是程序的一部分,负责接收计算机上的请求和文件数据2
我修改的代码(main.js)
感谢您的帮助
rtcpeerconnection - RTCPeerConnection 连接状态失败
我在 WebRTC 功能上开发了一些使用 Signaling & Matchmaker Server 运行的 Web 应用程序。在我办公室更换路由器之前,它运行良好。
当我检查问题是什么时,我发现 RTCPeerConnection.connectionstate 为“失败”然后视频没有播放,实际上它无法播放。
一件奇怪的事情是 RTCPeerConnection.connectionstate 是“连接的”并且在大多数其他位置运行良好,但在更改路由器后它不在某些位置,包括我的办公室。
另一种出现“connectionstate failed”的情况是Chrome浏览器更新到新版本之后。
请帮我解决这个问题。
谢谢你。
javascript - 我可以对不同的连接(非并发)多次使用相同的 WebRTC 对等连接对象吗?
想象一个场景,
- 对等体 A 连接到对等体 B
- 对等体 A 断开连接
- 对等点 C 想要连接到对等点 B
在这种情况下,对等点 B 是否可以使用相同的 PeerConnection 对象与对等点 C 连接?还是应该创建一个新对象?
我使用 WebRTC 构建了一个聊天应用程序。当两个用户中的任何一个刷新页面时,问题就出现了。它本质上与一个用户断开连接而另一个用户取代该位置相同。我尝试时连接没有建立,但不确定问题是我的代码还是 RTCPeerConnection 的限制。
google-chrome - chrome://webrtc-internal 如何测量往返时间?
我一直在分析使用生成的 JSON 文件chrome://webrtc-internal
,同时在 2 台 PCS 上运行 webrtc。
我查看了Stats API来验证 webrtc-internal 如何计算往返时间 (RTT)。我找到了两种方法:
RTC 远程入站 RTP 视频流包含
roundTripTime
RTC IceCandidate 对,包含
currentRoundTripTime
.
哪一个是准确的,为什么以及如何计算?
RTT 是逐帧计算的吗?
它是用一种方式(sender --> receiver
)还是两种方式(sender --> receiver--> sender
)计算的?
哪些报告用于衡量 RTT?是Receiver Report RTCP
还是Sender Report RTCP
?
中长度的大小是GOP
多少Webrtc VP8 codec
?
javascript - RTCDataChannel 成功打开 - 但实际上并未打开
我正在尝试重新打开 RTCDataChannel 以响应前一个数据通道发出关闭事件。
我了解在许多情况下可能无法打开新频道。我预计createDataChannel
在这种情况下会失败;或者,iceConnectionState
会更改以指示失败,我可以重置/放弃连接。
我已经使用两个浏览器选项卡测试了这个逻辑。首先,我允许两个选项卡打开一个通道(协商成功,通道打开并支持数据传输)。然后我关闭一个标签。尽管其余对等点的通道按预期关闭,但我的乐观createDataChannel
成功并且新通道发出了一个open
事件。即使对等方未连接(数据无处可去),我也可以无限期地通过通道发送。readyState
也仍然存在"open"
;这是关闭另一个选项卡后几分钟的真实情况!
我不知道为什么这个频道能成功打开。我注意到即使在对等点关闭后iceConnectionState
仍然存在;disconnected
这似乎与 Chromium 错误有关,failed
由于无法排除未来候选人的到来,因此从未达到该状态。但是,我仍然希望通道在iceConnectionState
is时关闭/出错disconnected
。
为什么我能够在对等连接时创建数据通道disconnected
?为什么不.send()
引发错误?连接时如何拥有open
频道disconnected
?避免这种情况的最佳方法是什么?
谢谢!
在 Chrome 89.0.4389.76 上测试
node.js - RTC 数据通道无法在 aws ec2 上工作
我正在开发一个具有 Twilio Video 并使用 Websocket 和 RTC 数据通道的反应项目。一切都在我的本地网络上运行,但是当我将其部署到 AWS ec2 时,RTC 数据通道无法通过信令服务器相互传输数据。请提出我错的地方我已经在我的本地网络上用 3 台不同的电脑测试了我的应用程序,它正在本地网络上工作,比如通过 WebSocket 信号通过 RTC 数据通道和 Twilio 视频流传输数据
这是我的 Client.js
这是 serevr.js
webrtc - 具有多个对等连接的 WebRTC - 现有对等连接之间的流在创建新连接时停止
我正在为多个用户创建一个视频聊天应用程序。主持人发起呼叫,当第二个参与者加入时,在主持人和第二个参与者之间创建对等连接。
当第三个人加入时,在 1 & 3 和 2 & 3 之间创建对等连接(每个客户端有 n-1 个对等连接)。新连接按预期工作,但 1 和 2 之间的媒体流中断。
在创建对等连接后,我正在使用索引为每个对等连接注册适当的事件侦听器 -
在停止工作之前,索引为 0 的旧对等连接的任何事件都不会被触发。有关如何调试问题的任何线索。旧对等连接的连接状态是connected