私は現在、ある電子ウィンドウから別の電子ウィンドウに を介して送信するライブラリに取り組んでいます。MediaStreamTrack
RTCPeerConnection
私が現在抱えている問題は、リモート トラック以外はすべて正常に動作することです。私のMediaStreamTrack
カメラは localhost で作成され、問題なく送信できますが、外部サーバーから受信しているトラックを送信しようとすると、黒いフレームしか表示されません。
ここと同じ問題だと思います。
私がチェックしたこと
トラックは受信されており (私は をチェックchrome://webrtc-internals
しました)、ビデオ要素は再生中の状態です。コンソールにも webrtc-internals にもエラーは表示されません。さらに、ストリーム/トラックは有効であり、ミュートされていません。captureStream()
ソースウィンドウで使用しても同じ結果になります。
外部ソースを使用したビデオ要素のキャプチャとストリーミングは、問題なく機能しています。
考えられる理由
問題は、最初のストリームがそうではないドメインからのものでlocalhost
あり、そのために再ストリームすることが不可能である可能性があると思います. w3c 標準では、次のように記述されています。
トラックには、アプリケーションがアクセスできないコンテンツが含まれる場合があります。これは、トラックの CORS クロスオリジンを作成する原因である可能性があります。これらのトラックは addTrack() メソッドに提供でき、RTCRtpSender を作成できますが、コンテンツを送信してはなりません。無音 (オーディオ)、黒いフレーム (ビデオ)、または同等の存在しないコンテンツが、トラック コンテンツの代わりに送信されます。
考え
上記の「考えられる問題」が実際の問題であるかどうかはわかりませんが、要求ヘッダーと応答ヘッダーを一致するように書き直すというアイデアがありましたlocalhost
が、うまくいきませんでした。WebRTC 接続には影響しないと思います。
私が使用した電子フック:
session.defaultSession.webRequest.onBeforeSendHeaders();
session.defaultSession.webRequest.onHeadersReceived();