バックグラウンド
リモート コンピューターのデスクトップのライブ フィードをアプリケーションにストリーミングしようとしています。これを行うために、接続指向 (TCP) ソケットを使用して、クライアントのコンピューターのフレームをキャプチャし、それをサーバーに送信しています。
私の研究
100 ミリ秒 (10 FPS) ごとにフレーム (スクリーンショット) を送信しています。各フレームは約 145kb です。つまり、1 秒あたり 1450kb を送信する必要があります (これは 1.4 メガバイト、1 秒あたり 11 メガビットに相当します)。
私のインターネットの最大ダウンロード速度は毎秒 0.32 メガビットです。毎秒 11 メガビットのデータを送信する必要があるため、これは私のインターネットが必要な速度よりも 10.6 メガビット遅いことを意味します。したがって、私の計算では、デスクトップを効率的にストリーミングするには、各フレームを約 4.5kb (4608b + 20b TCP ヘッダー) にする必要があります。これは、デスクトップの更新された部分のみを送信し、ビットマップを圧縮する場合でも、現在のシステムでは現実的に不可能です。 .
質問
システムがアップロード速度によって正確に制限されているかどうかはわかりません。4.5kb はとてつもなく小さいサイズだからだと思います。同様のソフトウェア (Teamviewer、Join.me、Skype などのソフトウェア) を使用して、デスクトップを完全にスムーズにストリーミングできます。これらのソフトウェア パッケージは、私よりもはるかにインテリジェントなプロトコルを使用します (ここで良い質問です)。各フレーム/デスクトップの更新。
したがって、私の質問は最終的には次のとおりです。私の計算はまったく正確ですか?なぜですか? ここでの目的は、各フレームの適切なサイズを決定することです。これにより、そのサイズに到達し、さまざまな速度の接続の品質/間隔を計算できるようになります。もちろん、私の状況に役立つコメント/回答に興味がありますが、私が受け入れる回答は、私の実際の質問に回答するものになります.