1

vnc通信でビデオフレームとともに余分なデータフレームを追加する方法を知っている人はいますか? クライアントとサーバーの両方が私によって処理されます。また、その余分なデータ フレームを両側でエンコードおよびデコードする方法についても説明します。

どんな助けでも大歓迎です。

4

2 に答える 2

1

「透かし」を使用します。X 番目のフレームごとにデータを設定できます。すべてのピクセルは、ビット データを格納するために使用されます。X-1 番目のフレームごとにすべてのピクセルを記録し、X 番目のフレームごとにサーバーのビデオ フィードの実際の変化を無視しますが、ビットを 1 にしたい場合はそのピクセルを暗くし、0 にしたい場合はピクセルは同じです。1024 x 768 ピクセルのディスプレイでは、この方法で X フレームごとに 786kb のデータを保存できる可能性があります。データを保存するフレームのストリームを圧縮しないようにしてください。

786kb が必要ない場合は、画面の上半分だけを使用してください。帯域幅を節約でき、786kb の半分をデータとして使用できます。

すべてではないにしても、ほとんどの暗号化をうまく実装できるはずです。多くの難読化を行うこともできます。たぶん、3ビットごとにランダムで役に立たない. 1 番目のビットが 1 の場合は、すべてを反転します。などなど

于 2011-07-12T10:53:36.583 に答える
0

RFB (VNC) プロトコルで見つけた最良のリファレンスは次のとおりです: http://tigervnc.org/cgi-bin/rfbproto

いくつかの一般的な指示があります。

プロトコルの拡張を気にしない場合は、プロトコルに新しいメッセージ タイプを追加するだけで済みます (両端を制御するため)。いずれかの方向に任意の量のデータを送信するための既存のメッセージの例として、 clientcuttextservercuttextを参照してください。欠点は、クライアントまたはサーバーが別のクライアントまたはサーバーに接続されている場合、致命的なエラーが発生することです。

別のオプションは、下位互換性のある方法で既存のメッセージを拡張することです。たとえば、ビューポートの外側にあるマウス イベントを送信することで、クライアントからサーバーへのメッセージを送信できます (その後、実際の場所に戻る最終的なマウス イベントを送信します)。ビューポートの外にあるフレーム バッファーの更新を送信することで、サーバーからクライアントへのメッセージを送信できます。通常のクライアントでは表示されません。

于 2011-07-12T14:30:49.997 に答える