问题标签 [libnice]
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.
kurento - 建立连接时出现 ICE_ADD_CANDIDATE_ERROR
我有最新版本的 Kurento 媒体服务器 v6.4.0,当我尝试与 kurento 建立连接时,它返回错误
Kurento 在我的本地 ubuntu 机器上完美运行,即,当我尝试与安装在本地服务器上的 KMS 建立连接时,它运行良好,一切正常,但是当我将它安装在 Amazon 机器上时,它会产生这个错误。
webrtc - 如何让 libnice 停止候选人检查
我在 C++ 本机服务器上使用 libnice,它试图与 Web 浏览器客户端应用程序建立 WebRTC 对等连接。使用 libnice,候选人聚集成功,Offer/Answer 交换成功。然后它继续检查阶段,这也是成功的。我可以在 Wireshark 中看到 STUN 请求/响应交换也成功。
然而,候选检查一直在进行,不断地发送/接收成功的 STUN 请求/响应。
对我来说并不明显,示例代码也没有显示,当候选检查成功时如何实际停止它们。我已经调用了 API 例程:nice_agent_attach_recv() 并注册了回调,但它似乎没有触发。即使确实如此,回调签名也没有给我任何关于如何处理任何数据的线索。
问:ice_agent_attach_recv()回调中应该做哪些处理?
谢谢,-安德烈斯
android - 使用安卓版 Libnice
我需要在 Android 上实现 libnice。我知道有关此主题的一些部分帖子。但是,对于 libnice 所需的所有依赖项,我不知道如何着手包括、编译和访问 Android 所需的所有库。
这篇文章只是部分有用。任何人都可以帮助解决这个问题?
node.js - KMS 在一对多广播时崩溃,KMS error.log 中出现错误分段错误
我们在 24 名学生和一名演示者之间进行视频通话,最初,一切进展顺利,但 30 分钟后 KMS 崩溃了。我们的服务器上没有收到任何节点 js 错误。Kurento 占用了非常高的 CPU。KMS 日志文件 error.log 中存在一些错误
我们使用的是 KMS 版本 6.5.0 和 kurento-client 6.2.0。
客户端库
语言:<Node.js, JavaScript> 版本:v0.10.36
KMS 位于我们的服务器上,我们正在使用 stun 服务器 stunServerAddress=74.125.23.127 stunServerPort=19302
这是 kurento 媒体服务器 error.log 文件的快照:
我们随机面临这个问题,我们无法重现。
这个错误的原因是什么?kurento媒体服务器不稳定吗?
如果有人可以提供任何提示、建议或指示,我将不胜感激。谢谢!
google-chrome - 即使 STUN/TURN 服务器关闭,Chrome 似乎也可以创建可行的本地 ICE 候选者——我可以以某种方式使用它们吗?
当 STUN/TURN 服务器关闭时,我使用chrome://webrtc-internals/
URL 来调试我们的 WebRTC 应用程序行为。我注意到的一件有趣的事情是,在“Stats Tables”下,似乎生成了很好的“peerreflexive”本地 ICE 候选者,例如:
onicecandidate
问题是这个候选人从来没有通过回调来找我。
这只是 Chrome 的内部怪癖还是有办法获得这些完美的候选人?
cross-compiling - 使用 glib 2.28.7 进行 libnice-0.13.0 交叉编译
我正在为 ubuntu 14.04 上的 arc-linux-uclibc 主机交叉编译 libnice-0.13.0。但它失败了这个错误跟踪
让一切都在套接字中
我目前有定义 GMutex 类型的 glib 2.28.7 交叉编译库。我该如何处理?
webrtc - STUN 如何对候选对执行 ICE 连接检查?
我已经阅读了 RFC 5389 和 RFC 5245 以及更新的 RFC 8445。我了解 STUN 在返回服务器自反地址或中继地址时的工作原理。请求被发送到 STUN 服务器。
我的基本问题是关于使用 STUN 的 ICE 连接检查。RFC 8445 在第 10 页上声明:
对于检查候选对的连接性检查,STUN 消息必须至少提供目标 IP 地址、端口、Proto。这个 STUN 消息结构在哪里描述?我在哪里可以获得 STUN 如何完成此连接检查的详细信息?
webrtc - Kurento WebRTC 连接在约 30% 的情况下失败
我花了几天时间寻找连接问题,但没有任何运气。我正在尝试使用 Kurento 实现一个相对简单的 one2one 调用。
下面你会看到一个Kurento的调试日志,其中有一个可以建立连接的情况和一个连接失败的情况。
如果您需要更多日志(例如客户端、信令服务器、tcpdump 或 Kurento 的跟踪日志,请告诉我,我会提供!)
非常感谢任何帮助或新的输入!
问题描述:
在大约 30% 的情况下,无法建立 WebRTC 连接。不幸的是,当可以建立连接时,我缺乏任何类型的模式,而当不能建立时,它似乎完全是随机的。我在同一个网络中,使用相同的设备,使用相同的 TURN 服务器,使用相同的信令协议,但在 30% 的情况下无法建立连接。
当我在本地运行应用程序时,它似乎更可靠地工作,几乎可以 100% 的时间建立连接(或者甚至可能 100% 的时间,我已经测试了很多次,我失去了轨道)。我使用 docker 在本地设置基础设施,并在不同的网络中运行不同的容器(TURN、Kurento、Signalling)以模拟生产部署。
我们在开发和生产环境中遇到相同的行为。在我们的开发环境中,我们绝对没有防火墙,所以这似乎不是问题。
我试图找到问题的原因:
大多数情况下,我一直在比较有效案例和无效案例的日志,但我没有发现它们之间有任何显着差异可以指出我的问题。
我已经通过 TURN 服务器(使用 Firefox 和 force_relay 标志)和直接通过 Kurento 测试了 WebRTC 连接,但在这两种情况下,大约 30% 的情况下连接失败。
我尝试过滤所有不是接力候选人的 ICE 候选人。
我已经嗅探了我们的信令服务器(也控制 Kurento)和 Kurento 之间的流量,以查看交换的 JSON RPS 消息的任何差异,但它们似乎基本相同。
我已经使用这个工具测试了我们的 STUN 和 TURN 服务器:https : //webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 我得到了看起来正确的 serverreflexive 和 relay 候选
我已经嗅探了成功和不成功连接的客户端的流量,但可以发现显着差异
我已经简化了 Kurento 媒体管道(没有录制,没有集线器),但行为是一样的
我使用了不同的浏览器(Chrome、Firefox 和原生 iOS 实现),但行为是相同的
可以建立连接的情况的Kurento调试日志:
https://gist.github.com/omnibrain/2bc7ad54f626d278d3c8bac29767ac4c
无法建立连接的Kurento调试日志:
https://gist.github.com/omnibrain/f7caee04a5c6d77ea22a9ccfa95dd825
webrtc - ICE Lite 实施是否有任何可靠的文档或 RFC?
ICE 协议在 RFC 8445 中更新。ICE lite 早于该 RFC。RFC 8445 中有关 ICE Lite 的详细信息在附录 A 中提供。它非常粗略。然而,早在 2007 年,人们就曾尝试将 ICE Lite 正式化。那是在这个RFC草案中。它具有相当的描述性,但其中一些陈述与 RFC 8445 中的陈述相冲突。例如,RFC 8445 确实允许两个对等方都是 ICE LITE,而文件草案则另有建议。
有人可以指出 ICE LITE 上的 RFC 草案中的例外或更正,这将使其与 RFC 8445 兼容?或者指向比 RFC 8445 中的描述更详细地描述 ICE LITE 的文档?
我没有使用 libnice,但由于 ICE 上没有相关标签,我使用了 libnice,希望 libnice 的用户能够获得一些信息。
c++ - libnice - 访问套接字信息和 TURN 通道 ID
我正在实现一个基于 FPGA/ARM 的媒体流系统。我正在尝试使用 libnice 查找连接路由,并在必要时建立 TURN 连接。但是我不想使用 libnice 提供的用于数据传输的套接字/方法,而是想使用 FPGA(在 ETH PHY 和 ARM 之间)进行实际的数据传输。我得到了所有的运行,libnice 正在协商两个设备之间的连接。我现在的问题是:如何访问信息(尤其是传出的 UDP 端口、TURN 通道 ID 等)以将其传递给 FPGA?我无法在文档中找到某些内容。甚至可能吗?