42

我想知道是否有工具或任何方法可以看到底层的 WebRTC 对等连接?

举个简单的例子,如果我正在使用 webrtc 实现视频聊天,所有连接(offer、answer、ice)都已建立,但我看不到视频流,我如何调试并查看这些之间是否有任何数据包或发送的东西两个同行与否。

4

3 回答 3

46

如果您使用的是 Chrome,您可以导航到chrome://webrtc-internals. 这将向您显示有关连接的提议、答案、ICE 状态和统计信息(一旦建立)。

要进行更深入的调试,您可以通过使用以下标志启动 Chrome 来查看候选人之间所有 STUN ping 的日志:

--enable-logging --v=4

日志将chrome_debug.log在您的用户数据目录中的文件中:http: //dev.chromium.org/user-experience/user-data-directory

于 2013-07-08T16:42:18.693 回答
13

有一些方法可以调试底层连接状态。如果您使用的是 Web 应用程序,则可以导航到浏览器统计信息。对于 chrome,chrome://webrtc-internalsAPI 结构)。这个线程也很有帮助(使用 peerJs)。对于 Firefox,浏览至about:webrtc.

对于本机应用程序,即对于 Windows,您需要从编译器本身获取日志。在 MS Visual Studio 2015 中,尝试调试 > 附加进程 > 您的本机应用程序 PID,调试 > 窗口 > 输出。

于 2016-02-23T06:37:53.473 回答
2

There could be a few reasons for video not streaming.

  1. Is your stun server responding? To check this, log the ice candidates you receicve in a console. and then check their type. if your stun server is responding then you would see the type srflx rather than just "host" type ice candidates. You can also look for them in chrome://webrtc-internals.

  2. Are you attaching the correct src blob to the video element once onaddstream is called back by the RTCPeerConnection object?

  3. You have to call the .play() method on the video element explicitly from your javascript to start the remote video stream.

于 2013-11-26T00:36:05.607 回答