web-dev-qa-db-ja.com

ネットワーク追跡またはWebRTCピアツーピア接続のデバッグを行う方法

基になるWebRTCピアツーピア接続を確認できるツールや方法はあるのでしょうか。

簡単な例として、webrtcを使用してビデオチャットを実装している場合、すべての接続(offer、answer、ice)は確立されていますが、ビデオストリーミングが表示されません。これらの間にパケットまたは何かが送信されていることをデバッグおよび確認するにはどうすればよいですか。 2つのピアかどうか。

28
A-letubby

Chromeを使用している場合は、chrome://webrtc-internals。これにより、オファー、アンサー、ICEの状態、接続に関する統計が表示されます(接続が確立された後)。

より詳細なデバッグについては、次のフラグでChromeを開始することで、候補間のすべてのSTUN pingのログを確認できます。

--enable-logging --v=4

ログはchrome_debug.logユーザーデータディレクトリのファイル: http://dev.chromium.org/user-experience/user-data-directory

28
tom

基になる接続ステータスをデバッグする方法があります。 Webアプリケーションを使用している場合は、ブラウザの統計に移動できます。クロムの場合、chrome://webrtc-internalsAPI構造 )。 このスレッド も役立ちます(peerJを使用)。 Firefoxの場合は、about:webrtcにアクセスします。

ネイティブアプリケーションの場合、つまりWindowsの場合、コンパイラ自体からログを取得します。 MS Visual Studio 2015で、[デバッグ]> [プロセスのアタッチ]>ネイティブアプリケーションのPID、[デバッグ]> [ウィンドウ]> [出力]を試します。

6
Anirban

ビデオがストリーミングされない理由はいくつかあります。

  1. スタンサーバーが応答していますか?これを確認するには、受信した氷の候補をコンソールに記録します。そして、それらのタイプを確認します。 stunサーバーが応答している場合は、「ホスト」タイプの氷の候補ではなく、タイプsrflxが表示されます。 chrome:// webrtc-internalsでそれらを探すこともできます。

  2. OnaddstreamがRTCPeerConnectionオブジェクトによってコールバックされたら、正しいsrc blobをビデオ要素にアタッチしていますか?

  3. リモートビデオストリームを開始するには、JavaScriptからビデオ要素の.play()メソッドを明示的に呼び出す必要があります。

2
Vasu