vnc通信でビデオフレームとともに余分なデータフレームを追加する方法を知っている人はいますか? クライアントとサーバーの両方が私によって処理されます。また、その余分なデータ フレームを両側でエンコードおよびデコードする方法についても説明します。
どんな助けでも大歓迎です。
vnc通信でビデオフレームとともに余分なデータフレームを追加する方法を知っている人はいますか? クライアントとサーバーの両方が私によって処理されます。また、その余分なデータ フレームを両側でエンコードおよびデコードする方法についても説明します。
どんな助けでも大歓迎です。
「透かし」を使用します。X 番目のフレームごとにデータを設定できます。すべてのピクセルは、ビット データを格納するために使用されます。X-1 番目のフレームごとにすべてのピクセルを記録し、X 番目のフレームごとにサーバーのビデオ フィードの実際の変化を無視しますが、ビットを 1 にしたい場合はそのピクセルを暗くし、0 にしたい場合はピクセルは同じです。1024 x 768 ピクセルのディスプレイでは、この方法で X フレームごとに 786kb のデータを保存できる可能性があります。データを保存するフレームのストリームを圧縮しないようにしてください。
786kb が必要ない場合は、画面の上半分だけを使用してください。帯域幅を節約でき、786kb の半分をデータとして使用できます。
すべてではないにしても、ほとんどの暗号化をうまく実装できるはずです。多くの難読化を行うこともできます。たぶん、3ビットごとにランダムで役に立たない. 1 番目のビットが 1 の場合は、すべてを反転します。などなど
RFB (VNC) プロトコルで見つけた最良のリファレンスは次のとおりです: http://tigervnc.org/cgi-bin/rfbproto
いくつかの一般的な指示があります。
プロトコルの拡張を気にしない場合は、プロトコルに新しいメッセージ タイプを追加するだけで済みます (両端を制御するため)。いずれかの方向に任意の量のデータを送信するための既存のメッセージの例として、 clientcuttextとservercuttextを参照してください。欠点は、クライアントまたはサーバーが別のクライアントまたはサーバーに接続されている場合、致命的なエラーが発生することです。
別のオプションは、下位互換性のある方法で既存のメッセージを拡張することです。たとえば、ビューポートの外側にあるマウス イベントを送信することで、クライアントからサーバーへのメッセージを送信できます (その後、実際の場所に戻る最終的なマウス イベントを送信します)。ビューポートの外にあるフレーム バッファーの更新を送信することで、サーバーからクライアントへのメッセージを送信できます。通常のクライアントでは表示されません。