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檔案看看吧