私は、ユーザーがwebappから(logmeinのように)自分のPCを制御するリモートデスクトップアプリケーションを作ろうとしています。 デスクトップ部分ではC#、WebアプリケーションではNodeJS、Socket.IOを使用して通信が行われました。C# - RTPスクリーンストリーミング
最初の試みはスクリーンショット(わずか5fps)をキャプチャしてから前回のスクリーンショットと比較し、8ビットのイメージカラーで差分を送信した結果、800 * 600解像度の仮想デスクトップ - 100kb最初の画像、次に画面上の変化に応じて5kbから60Kbになります。
バーチャルボックスを制御しているローカルマシンではすべてが完璧でしたが、私がオンラインでウェブアプリケーションをホストしたとき、結果は壊滅的でした。
いくつかの調査の結果、この種のアプリは私の方法では実現不可能であり、リアルタイムプロトコルを使用してクライアント画面からライブストリーミングを行わなければならないことが判明しました。
私の質問は以下のとおりです。
は、任意のフリー/オープンソースのRTPライブラリは、すぐに使用されることがありますか?
どのように私は開いているポートがないクライアント側から来ているので、デスクアプリからwebappにライブストリーミングを転送するのですか?私はサーバー上で動作する別のデスクトップアプリケーションを考えていました(webappをホストしています)。そして、同じコンテンツを再びストリームします。そして、webappは、RTPポートを使ってローカルIPにアクセスするだけでコンテンツを表示できます。ライブストリーミングをクライアントからサーバーに転送するという謎を解決していませんか?
ありがとうございます。あなたがsayd **のときに私はいくつかの質問があります。私は、クライアントであり、あなたのウェブサービスに "アップ"しています。**、あなたはクライアントですWebサービスに到達するスクリーンショットをキャプチャしますか?だからRTPはありませんか?コメントの2番目の部分に基づいて、RTPは本当に役立つものではありません。レイテンシーについては特別なことはありません。ですから、私は現在の方法に固執し、圧縮/スクリーンショットに焦点を当てていますか? (後に続く) –
私はzlibを試して圧縮に時間がかかっていたため、DPAがWin7をサポートしていないと思っていたので、手動でスクリーンショットを撮っています。私は超高速だったlz4netを試しましたが、結果はあまり満足できませんでした(60kbイメージは50kbになります)、どう思いますか? –
私の現在のスクリーンショットの実行時間は~05sです。 編集:画面をキャプチャし、現在のスクリーンショットと前のスクリーンショットの違いを確認し、差分ビットマップを保存する全プロセスは〜0.1秒〜.13秒です。 DDAを試してみてください –