vnc2flv(或者vnc2swf)的原理分析

來源:互聯網
上載者:User

VNC使用遠程幀緩衝協議(VFB,remote framebuffer)來實現桌面共用和遠端控制。一般包括VNC Client和VNC Server兩部分,Server預設使用5500連接埠監聽,VNC中不同的案頭(比如:0 to :3)使用不同的連接埠(比如5900到5903)。如果你在A上使用VNC訪問B,那麼VNC將把器A上的鍵盤滑鼠操作傳輸給器B,而B則把需要顯示的幀傳輸給A,這就是VNC的原理。

VNC Client在串連VNC Server的時候,可以使用share和viewonly的模式,這時候可以實現多人共用一個案頭。比如使用者A使用VNC串連了VNC Server,並使用1號案頭,使用者B可以使用share和viewonly的模式串連VNC server的1號案頭,那麼使用者B的串連不會斷開使用者A的串連,並且使用者B只是觀看模式,使用者B可以看到使用者A的所有操作。vnc2flv(或者vnc2swf)就是使用了這種Share和viewonly的模式。

vnc2flv(或者vnc2swf)本身就相當於一個VNC Viewer,它們都實現了VFB協議。不過它們接收到對應的顯示幀的時候,不是顯示出來,而是在記憶體中類比顯示,並且按照一定的時間間隔把幀儲存起來。儲存的時候可以選擇不同的格式儲存,vnc2flv與vnc2swf的主要不同就在於儲存格式的不同。

每當你開啟vnc2swf或者vnc2flv的時候,它就以Share和viewonly的模式的串連上VNC server的指定案頭,並把顯示記錄下來,這就實現了螢幕錄製。

如果把它們配置在VNC啟動的指令碼中,那麼就可以記錄使用VNC串連到這台機器上的任何操作。由於VNC 缺乏安全性,可以和SSH結合使用。

抓屏代碼:

vnc2swf -startrecording -geometry 800x600 -depth 16 -framerate 5 demo.swf vnc_server_ip:x.0

上面,demo.swf是要儲存的flash檔案,vnc_server_ip是要抓屏的運行著vncserver的機器的地址,x是vncserver的display number,比如vncserver的啟動命令是vncserver :2,那麼這個x就是2
輸入訪問vnc的密碼後,就會出現一個vnc案頭的視窗,左上方有數字表示當前幀
關掉這個視窗,錄製結束。開啟這個flash檔案看看吧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.