2013-07-09 4 views
8

WebRTCを使用して画面共有を実装する必要があります。私はWebRTCがタブコンテンツの共有をサポートしていることを知っていますが、私は画面全体を共有する必要があります。 私が考えている解決策は、頻繁にスクリーンショットを取り、WebRTCデータチャネルを使用して画像を相手に転送することです。相手は、新しい画像が受信されるたびに画像を更新する。WebRTCを使用して画面共有を実現

これは可能ですか?特に、WebRTCのデータチャネルを使って画像を転送することが可能かどうかは疑問です。

ありがとうございます。

+0

データチャネル経由で画像を転送することはできますが、大きな問題はJavaScriptサンドボックス内から画面をキャプチャすることです。私はそれがブラウザ拡張のいくつかの種類なしでは不可能だと思う。 – Makkes

答えて

7

Chromeの実験getUserMediaの制約(not yet available in Firefox)でスクリーン共有を利用できます。

chrome://flagsに最初にEnable screen capture support in getUserMedia()というフラグを有効にする必要があります。

ここで画面をキャプチャする方法の良い例があります:https://html5-demos.appspot.com/static/getusermedia/screenshare.html

+1

ありがとう、良い例。しかし、私は自分のローカルhtmlファイルにhtmlコンテンツをコピーすると動作しません。 HTTPSサーバーをインストールする必要があるようです。 – mkd156

+0

https://groups.google.com/forum/#!topic/discuss-webrtc/TPQVKZnsF5g – Max

+1

Chromeから「画面キャプチャを有効にする」フラグが削除されました – RezaRahmati

9

getUserMediaは、タブの内容だけでなく、画面全体のスクリーン共有をサポートしています。

ストリームをRTCPeerConnection:https://simpl.info/screencaptureにパイプするスクリーンキャプチャデモ(必須のchromeMediaSource: 'screen'を使用)を実行しました。

chrome.tabCapture APIはタブのコンテンツを取得しますが、もちろんそれはあなたが望むものではありません。例:here(コードは壊れていますが)。

EDIT:リンクにHTTPSを追加:これはスクリーンキャプチャに必要です。

+0

答えをありがとう。 getUserMediaは本当に必要なものです。しかし、ローカルでテストするためには、私はいくつかのHTTPSサーバーを正しくインストールする必要がありますか? – mkd156

+0

はい:HTTPSをローカルに持っている必要があります –

+1

この方法で60FPSを得ることは可能ですか?私は試みましたが、理想から遠く離れているようです。 – wonglik

関連する問題