问题标签 [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 回答
271 浏览

javascript - 需要使用 selenium python [webRTC] 从 RTCPeerConnection.getStats() 捕获数据

我使用 python selenium-webdriver 创建了一个应用程序,其中第一个浏览器说(FF)启动视频呼叫,另一个浏览器说(Chrome)接受呼叫并开始交换音频和视频数据。

在进行视频通话时,我想捕获 webrtc-internals 数据。我可以通过使用 selenium 定位这些元素来捕获该数据,但寻找一种更稳定的方法来使用 python 捕获与 JSON 相同的数据。

我进行了很多研究,发现存在 RTCPeerConnection.getStats() API,它在 JSON 中提供相同的数据,但我无法在 python 中使用相同的数据。

请帮我做同样的事情。

0 投票
0 回答
394 浏览

android - 应用程序在断开呼叫 webRTC android 时崩溃

在我的应用程序中,我实现了webRTC. 主持人开始直播,多个客人可以加入他观看他的直播,就像Facebook Live或一样insta Live。但是,当直播直播并且有任何客人时,我会在主持人端断开直播。它崩溃了。日志如下:

我已经正确关闭了对等连接,但我认为这不是我们通过多个连接关闭它的方式。

我一直在寻找 3 三天,但一无所获。

0 投票
0 回答
107 浏览

javascript - webrtc 视频通话在本地网络上工作,但在互联网上远程视频未加载

发现许多关于谷歌搜索的文章,但没有发现任何有用
我正在使用 asp.net MVC 作为信号服务器
请在此处查看代码并此处
演示 该解决方案在本地网络上运行良好,但是当我尝试使用两个不同的 Internet 连接在 Internet 上时,远程视频没有加载 请帮助我我陷入了这个问题谢谢


0 投票
0 回答
185 浏览

webrtc - 如何在对等连接中获取多个流

您好,我将创建一个监视系统。我想获得一个网络摄像头视频和一个共享屏幕,但使用 addtrack 只会获得我稍后声明的媒体流。有什么办法可以同时获得两个流。谢谢。

这是代码提供方

这是答案的一面

当我检查日志时。事件有一个轨道,流[0] 有媒体流但蒸汽[1] 没有媒体流

0 投票
0 回答
126 浏览

android - 应用程序在关闭对等连接时崩溃 appRTC android

我已经在我的应用程序中实现了 appRTC,但将其流程更改为一位主持人的多位客人(如会议等)。但是我面临的问题是,当我从主机端断开连接时,应用程序崩溃了。它还在与 SQLite 和约束相关的日志上显示了不同的奇怪异常。我已经为此工作了一周,但找不到任何东西。这次我得到了这个。

2020-08-11 18:10:01.856 19916-19916/? E/SQLiteDatabase:无法打开数据库“/data/user/0/com.facebook.appmanager/databases/androidx.work.workdb”。android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码 14):无法打开数据库

我用来关闭对等连接的代码如下:

和 closeInternal() :

0 投票
2 回答
2126 浏览

browser - webRTC 远程视频轨道静音/启用的含义

几年前实现了一种机制,用于通过数据通道消息发出信号,远程用户将其本地视频静音(例如,将启用设置为 false),然后在远程端采取适当的操作(例如,改为显示远程用户头像的黑色视频流),我一直在对一个非直接相关的函数进行一些测试,让我查看视频轨道的状态(即,对等连接的接收流上的视频轨道),我注意到远程视频上的静音状态有时会在真假之间波动(尽管远程流本身没有实际变化)。

很难说这什么时候发生,但似乎它可能(不知道是否真的是这种情况)与长时间不将媒体附加到对象(例如,用于播放的 HTML 视频元素)相关(例如,10 秒),并且似乎如果它在短时间内附加,则视频轨道在接收端不会显示静音 = true 状态。

W3 媒体捕获和流规范(参见https://w3c.github.io/mediacapture-main/#track-muted)“当源暂时无法为轨道提供数据时,MediaStreamTrack 被静音。轨道可以被用户静音。通常此操作不在应用程序的控制范围内。这可能是由于用户点击硬件开关或切换操作系统/浏览器 chrome 中的控件。用户也可以将轨道静音代理人。” 该规范似乎没有说明造成这种情况的原因是什么或可能是什么。

在 webRTC 的情况下,任何人都可以提供一些指示,说明为什么当来自远程的媒体实际流动时,从 webrtc 对等连接引用的远程视频流可能会显示静音状态 true。此外,当远程视频流实际上不反映远程状态而是某些本地处理时,静音状态的实际价值或用途可能是什么。

感谢您对此的任何想法。

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 回答
600 浏览

java - 带有 PeerConnection 的 Android WebRTC

我需要使用 Java 创建一个用于语音通话的 Android 应用程序,提供给我的数据是:iceServer: ["stun:stun.l.google.com:19302"]、channelName 和 EventName。它们是否足以构建语音呼叫应用程序,甚至需要用于信号传输的东西?谢谢!!

0 投票
1 回答
149 浏览

webrtc - WebRTC 媒体服务器:管理长期存在的对等连接

我从 WebRTC 开始,这主要是一个设计问题。寻找两种竞争方法的优缺点。

语境

我正在创建一个将视频流式传输到多个客户端的媒体服务器。每个客户端都可以请求一个或多个视频流以在浏览器页面中查看,然后关闭这些视频流并请求其他视频流,依此类推。单个客户端可能一次有几个小时或几天的持久连接,可以随意打开和关闭不同的流。

问题

如何管理与客户端的对等连接?

考虑的方法

  1. 每个(客户端,视频流)对都有自己的对等连接。因此,如果客户端正在查看 5 个视频流,则该网页将有 5 个对等连接。每个对等连接都有一个轨道。这涉及每次客户端采取行动查看/关闭视频流时创建/销毁对等连接。
  2. 每个(客户端)都有一个对等连接。基于客户端的操作,我们要么添加轨道,要么从对等连接中删除轨道。只要客户端在我们的网页上,单一连接就会一直存在。

从表面上看,选项 2 似乎不那么“浪费”,因为只有一个连接,但是阅读 WebRTC 信号,添加/删除曲目的行为会触发新一轮的提议/答案,所以我不确定它实际上更多高效的。此外,它似乎更难管理和实施,因为它更有状态,例如,确保在不再使用时正确清理轨道。

谢谢。

0 投票
1 回答
2485 浏览

kubernetes - 如何在 Kubernetes 上使用 WebRTC 和 RTCPeerConnection?

我想构建一个处理来自用户网络摄像头的视频的网络应用程序。看起来 WebRTC 非常适合这个项目。但是,我很难在用户机器和 Kubernetes 集群中的 pod 之间创建对等连接。您将如何连接这两个对等点?

这个关于服务器故障的问题讨论了我遇到的问题:WEBRTC MCU/SFU inside kubernetes - Port Ranges。WebRTC 希望打开一堆端口,以便用户可以与服务器创建对等连接,但 Kubernetes 默认关闭端口。这是我的问题的改写:如何创建 RTCPeerConnections 将多个用户连接到托管在 Kubernetes 集群中的应用程序?网络端口应该如何设置?

我找到解决方案最接近的方法是使用 WebRTC 编排 GPU 加速流应用程序,他们的代码可在GitHub上找到。我不完全理解他们的方法,我相信这取决于Istio