我想知道有工具或任何方法我可以看到底层的WebRTC点对点连接是什么?
举个简单的例子,如果我使用webrtc实现视频聊天,所有连接(offer,answer,ice)都已建立但我看不到视频流,我怎么调试并看到有任何数据包或什么的是否在这两个同伴之间发送。
答案 0 :(得分:27)
如果您使用的是Chrome,则可以导航至chrome://webrtc-internals
。这将显示有关连接的提供,答案,ICE状态和统计信息(一旦建立)。
要进行更深入的调试,您可以使用以下标志启动Chrome,查看候选人之间所有STUN ping的日志:
--enable-logging --v=4
日志将位于用户数据目录的chrome_debug.log
文件中:http://dev.chromium.org/user-experience/user-data-directory
答案 1 :(得分:5)
有一些方法可以调试基础连接状态。如果您使用的是Web应用程序,则可以导航到浏览器统计信息。对于chrome,chrome://webrtc-internals
(API structure)。 This thread也可以提供帮助(使用peerJs)。对于Firefox,请浏览about:webrtc
。
对于本机应用程序,例如对于Windows,您已从编译器本身获取日志。在MS Visual Studio 2015中,尝试Debug>附加过程>您的本机应用程序PID,调试>窗口>输出。
答案 2 :(得分:2)
视频不流媒体可能有几个原因。
您的昏迷服务器是否响应?要检查这一点,请在控制台中记录您收到的冰候选人。然后检查他们的类型。如果您的昏迷服务器正在响应,那么您将看到类型srflx而不仅仅是“主机”类型冰候选者。您也可以在chrome:// webrtc-internals中找到它们。
一旦RTCPeerConnection对象回调onaddstream,您是否正确将src blob附加到视频元素?
您必须从javascript中明确调用视频元素上的.play()方法才能启动远程视频流。