ç§ã®å ŽåãiPhoneãšAndroidã·ãã¥ã¬ãŒã¿ãŒã§ã²ãŒã ã®åäœãèšé²ããå¿ èŠããããŸããã ç§ã®äžã®ããã°ã©ããŒã¯ããã«ãiOS / Androidãããã³Macèªäœã®äž¡æ¹ã®ã³ãŒããæžããŠãOpenGLãªã©ãä»ããŠãã¬ãŒã ããã³ãããããšãææ¡ããŸããããããã®è¡åãæ¢ããŠãæ¢è£œã®è§£æ±ºçãèŠã€ããŠãããã«ã¡ã¢ãšããŠèšäºãæžãããšã«ããŸããã
åæ¯
ãã©ãŒã©ã ãæ€çŽ¢ãããšãããåæ§ã®ã¿ã¹ã¯ãæã€äººã ã¯ããã£ããã£æ©èœãåããç¹æ®ãªããã°ã©ã ïŒQuickTime Proãªã©ïŒãè³Œå ¥ãã人ãšãåãããã°ã©ã ã®ãããã³ã°/è©Šçšç/ããŒã¿çã䜿çšãã人ã®2ã€ã®ã«ããŽãªã«åãããŠããŸãã ããå°ãæãäžããŠã¿ããšãx11grabã¢ãžã¥ãŒã«ãffmpegã«è¿œå ãããŠä»¥æ¥ãLinux / Unixã®äžçã§ã¯ãã®ãããªåé¡ã¯ãŸã£ãããªãããšãããããŸããã ãã®ã¢ãžã¥ãŒã«ã¯Xã¢ããªã±ãŒã·ã§ã³ã®ãããã¡ãŒãã€ã³ã¿ãŒã»ããããffmpegãä»ããŠãããªãäžé圢åŒïŒqtrleãrawãx264ãã¹ã¬ã¹ãªã©ïŒã«å§çž®ããŸãã Macã«ãXãµãŒããŒããããŸãããLinuxãã移æ€ãããããã°ã©ã ã®ã¿ããCocoaåºåæ å ±ã«é©åããŠããŸããã ãããç§ã®å®éšã®åºçºç¹ã§ããã
ããŒã«ïŒffmpeg + x11grab + Xvfb
ffmpegã®MacPortsã«ã¯ãx11grabã¢ãžã¥ãŒã«ãåºæ¬çã«ãããŸããã æåã®è©Šè¡ã®ãœãŒã¹ããã¯ãã£ãšããŸããããªãã£ãã®ã§ãffmpeg-develã®ããŒããã¡ã€ã«ã«ããããé©çšããããšã«ããŸããã
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/multimedia/ffmpeg-devel/Portfile
ããã§ãnonfreeæ§æã§ãè¡--enable-x11grabããã³--enable-sharedãè¿œå ããŠx11grabãã¢ã¯ãã£ãã«ããŸããã
å ãèŠãŠããã®ã¡ãœããã«ã¯æ¬ é¥ããã£ããšèšããŸãããªããªããç·šéããŠããŒããã¡ã€ã«ãã¢ããããŒãããã®ã§ã¯ãªããåç §ã®ããã«ããã§èª¬æããã ãã ããã§ãã
Xããã°ã©ã ãã»ãã·ã§ã³ïŒãã£ã¹ãã¬ã€ïŒã«è¡šç€ºãããå ŽåïŒããã©ã«ãã§ã¯0.0ã§ãäž»ã«ç»é¢ãµã€ãºïŒiMacã§ã¯2560x1440ïŒãããã³ããããã°ã©ãã£ãã¯ã®ã¬ã³ããªã³ã°ãåå ã§ããããªé²ç»ã®ãã¬ãŒã ã¬ãŒããå°ãããªããŸããå°ããªè§£å床ã®ä»®æ³ãã£ã¹ãã¬ã€ã®ããã°ã©ã ã ããã¯ãããŒãããç°¡åã«ã€ã³ã¹ããŒã«ã§ããXvfbãããžã§ã¯ããéããŠè¡ãããŸãã
ã¿ãŒããã«ãä»ããŠéåžžã«åçŽã«éå§ããŸãïŒããŒãžã³ã®ãããµã€ãºïŒïŒ
Xvfb :1 -screen 0 1024x800x15 -shmem
ãŸãããã®ä»®æ³ffmpegãã£ã¹ãã¬ã€ã«æ¥ç¶ããã ãã§ãã
ffmpeg -r 30 -s 1024x768 -f x11grab -i :1.0+0,20 -vcodec qtrle target.mov
ãã®æ®µéã§ãå ±æã¡ã¢ãªãªãŒããŒãããŒã®ãšã©ãŒãåŸ ã£ãŠããŸãããããã¯ãäœããã®çç±ã§OS Xã§ãããã€ãªå€4mbã«èšå®ãããŠããŸããã ãµã€ãºã®äžæçãªå¢å ã«ã€ããŠã¯ã ãµãŒããŒã«é¢ããAppleã®æšå¥šäºé ãããã³ä»ã®æ å ±æºã§èª¬æãããŠããŸã ã
sudo sysctl -w kern.sysv.shmmax=67108864
sudo sysctl -w kern.sysv.shmall=67108864
VirtualBoxã»ãã·ã§ã³ã®èšé²
次ã®ã¹ãããã§ã¯ãXãµãŒããŒãä»ããŠæçšãªãã®ãåºåããããšã«ããŸããã æåã®èãã¯ãVirtualBoxã®XããŒãžã§ã³ãæ§ç¯ããæåéããã¹ãŠã衚瀺ããããšã§ãããããããŒã®VirtualBoxã¯è¡ãæ¢ãŸãã ã£ããããé·ãéCoââcoaã«ç§»è¡ããŸããã 2çªç®ã®äžè¬çãªèãã¯ãRDPãä»ããŠä»®æ³ãã·ã³ã«æ¥ç¶ããrdesktopã»ãã·ã§ã³ãèšé²ããããšã§ãããVirtualBoxã®äžã§RDPãã¢ã¯ãã£ãåããã®ã¯éåžžã«ç°¡åã§ãããå ¬åŒãµã€ãããExtension Packãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ç»é¢åºåä»ãã®rdesktopã®æ¥ç¶ïŒ0.1
DISPLAY=:1.0 rdesktop -xl localhost
ãããã®æé ã®åŸãffmpegã¯.movãã¡ã€ã«ãžã®ãããªã®æžã蟌ã¿ãæ£åžžã«éå§ããŸãã ç§ã®å ŽåãAndroid x86ã®ã¢ãŒã ã§æ£åžžã«æ€åºãããŸããã
æ®å¿µãªããããããªã¯ããªããŽããŽãããŠããããšãå€æããRDPå§çž®ã圱é¿ããŸãããã®ãããã¢ãã¡ãŒã·ã§ã³ã¯ãã®ããã«æ®åœ±ããã®ã«ã¯ããŸãé©ããŠããŸããã
次ã®ã¹ãããã§ã¯ãRDPããVNCã«åãæ¿ããããšã«ããŸããã VirtualBoxã«ã¯VNCãµãŒããŒãçµã¿èŸŒãŸããŠããŸããããããªãã¯ãã«ãã§ã¯ãªããããŒããŸãã¯ãœãŒã¹ã³ãŒãããã³ã³ãã€ã«ãããŠããŸãã ããŒããæäœããå¿ èŠã¯ãããŸããã§ãããvirtualboxããŒããäœæããåŸãããŒãžã§ã³4.1.14ãå ¥æã§ããŸããã
äžå¿«ãªç¬éã¯ãVNCãã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã¢ã¯ã»ã¹ã§ããããããã¬ã¹ã¢ãŒãã§èµ·åããå Žåã®ã¿ã§ããã
VBoxHeadless -startvm 'Android x86' -v on --vnc
ãã®ã¢ãŒãã¯ã2çªç®ã®VNCã»ãã·ã§ã³ãä»ããŠããŸãã¯RDPãä»ããŠå床管çããå¿ èŠããããŸãããããã¯ããŸã䟿å©ã§ã¯ãããŸããããéåžžã¯èš±å®¹ç¯å²ã§ãã VNCã¹ããªãŒã ããã£ããã£ããããã«ãvncviewerã䜿çšãããä»®æ³Xãã£ã¹ãã¬ã€ã«ãªãã€ã¬ã¯ããããŸããã
vncviewer localhost -ViewOnly -display :1.0 -PreferredEncoding raw -FullColor
ããããã¹ãŠã®ããªã«ã®çµæã¯ã1024x768ã®è§£å床ã§æ£çŽãª30 fpsã®5åéã®ãããªã§ããã
ïŒã³ã³ãã³ãã®å質ã«ã€ããŠäºåã«è¬çœªããŸãããç§ã¯ãŸã ããã®ãã¬ãŒã€ãŒã§ã¯ãããŸããïŒ
ããèŠããšãæ°ç§éã®äžæåæ¢ãç®ç«ã€ããšããããŸãã æ®å¿µãªããããã®åé¡ã«æã¡åã€ããšã¯ã§ãããã¢ãããŒãèªäœã¯ããªãåä»ã§ããããšãå€æããŸããã Androidã§ã®ã²ãŒã ã®æãç°¡åãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§ã¯ã次ã®ã¿ã¹ã¯ã§ããiPhoneã®ãããªã·ãã¥ã¬ãŒã¿ãŒã®æ®åœ±ã«åãæ¿ãããããããã§ååã§ãã
ãã«ã¹ã¯ãªãŒã³VNCãã£ããã£
OS Xã«ã¯ãARDãšVNCã®2ã€ã®ãããã³ã«ã§åæã«åäœããçµã¿èŸŒã¿ã®ãªã¢ãŒãã¢ã¯ã»ã¹ããããŸãã Lion 10.7ã®ãªãªãŒã¹åã¯ãã·ã¹ãã èšå®ã§ç»é¢å ±æãæå¹ã«ããŠãVNCã¯ã©ã€ã¢ã³ãã§çŸåšã®ã»ãã·ã§ã³ã«æ¥ç¶ã§ããŸããã 10.7ãããé倧ãªå€æŽãå§ãŸããŸããïŒZRLEãé€ããã¹ãŠã®ã¿ã€ãã®å§çž®ãã¹ããŒããããã¹ãŠã®ã¯ã©ã€ã¢ã³ããæ¥ç¶ã§ããããã§ã¯ãªããæ¥ç¶åŸã«ç°è²ã®ãã°ã€ã³ç»é¢ã衚瀺ããããŠãŒã¶ãŒãã¹ã¯ãŒããå ¥åããåŸã«ã®ã¿ã»ãã·ã§ã³ã«æ¥ç¶ããŸãã ããã¯ç®¡çè ã«ãšã£ãŠã¯çŽ æŽãããããšã§ãããç§ã®ä»äºã«ãšã£ãŠã¯ãããã©ããããé害ç©ãäœæããã ãã§ãã ææ°ããŒãžã§ã³ã®vncviewerããã°ã©ã ïŒå¥åRealVNCïŒã¯OS Xãžã®æ¥ç¶æ¹æ³ãæ¢ã«ç¥ã£ãŠããŸããããŠãŒã¶ãŒãã¹ã¯ãŒãã®å ¥åæ¹æ³ãç¥ããªãããããã®ãã¹ãè¡ãæ¢ãŸãã«ãªããŸããã
å¥ã®æ¹æ³ãšããŠãTestPlantïŒosxvncããã³VineïŒããç¡æã®VNCãµãŒããŒãååŸããŸããã sourceforgeãåããããŒãžã§ã³3.0ã¯éæšå¥šã§ãããã®ããããœãŒã¹ããæ°ããããŒãžã§ã³ããã«ããããã TestPlant Webãµã€ãããååŸããå¿ èŠããããŸãã
ãã®ãµãŒããŒã®åãã«è¶³ããªããã°ã¯ããäžæãªã¡ãã»ãŒãžã¿ã€ã131ããšãããšã©ãŒã§ã¯ã©ã€ã¢ã³ããæã æ¶ããããšã§ãã ãµãŒããŒãåèµ·åããããšã§åŠçãããŸãã
ffmpeg + x11grab + Xvfbããã³vncviewerããã§ã«ç¢ºç«ãããŠãããããiPhoneã·ãã¥ã¬ãŒã¿ãŒãå®è¡ãããŠããçŸåšã®OS Xã»ãã·ã§ã³ã®ãã«ã¹ã¯ãªãŒã³ãããªãæ®åœ±ããããšãå€æããŸããã
ç§ãéžãã ä»®æ³ãããã¡ã®ãµã€ãºã¯ãå·Šäžé ãæ®åœ±ããããã«ç»é¢è§£å床ããæããã«äœãã£ãã çµæã¯éåžžã«äŸ¡å€ããããŸããããæ®å¿µãªãããFPSãäœããã²ãŒã å ã®ã¢ãã¡ãŒã·ã§ã³ã¯ççŽã«é ããªããŸããã ããã«ãVirtualBoxã®åè·¯å³ã§ã¯éåžžã«ãŸãã§ãã£ãäžæåæ¢ããããé¡èã«ãªããŸããã
ãã®æ®µéã§ãããã€ãã®å®éšãè¡ããVNCãµãŒããŒãšã¯ã©ã€ã¢ã³ãããœãŒã¹ããåæ§ç¯ããæå°ç»é¢è§£å床ãèšå®ããŸããããããã§ãè¯ãçµæã¯åŸãããŸããã§ããã æ°æéåŸããµãŒããŒèªäœãå°ãé ããŠãã¬ãŒã ãéä¿¡ããŠããããšãæããã«ãªããŸããã ã³ãŒããæãäžããåŸãç»é¢ã®æŽæ°ã®éã«ãµãŒããŒãæå³çã«äžæåæ¢ããããšãããããŸããã
/* OK, now, to save bandwidth, wait a little while for more updates to come along. */ /* REDSTONE - Lets send it right away if no rfbDeferUpdateTime */ if (rfbDeferUpdateTime > 0 && !cl->immediateUpdate && !cl->needNewScreenSize) { pthread_mutex_unlock(&cl->updateMutex); usleep(rfbDeferUpdateTime * 1000); pthread_mutex_lock(&cl->updateMutex); }
rfbDeferUpdateTimeå€æ°ã®åæå€ã¯40ããªç§ã§ãããããã¯éåžžã«å¶åŸ¡å¯èœã§ãããã³ãã³ãã©ã€ã³ã§èšå®ãããŸãã Vine Serverèªäœã«ã¯ãããã«é¢ããå¥ã®ãã£ãŒã«ãããããŸãã
ããŒãžã³ã15ã«èšå®ãããšãæ倧ãã¬ãŒã ã¬ãŒãã¯66 fpsã«ãªããŸãã ãã®åŸãé 延ã¯åæ¢ããŸãããããããªã«ã¯é¡èãªäŒæ¢ããããŸããã çè«çã«ã¯ããã®ãããªãããªããããããã«ããããåãå ¥ãããããã®ãçµã¿ç«ãŠãããšãã§ããŸãããããæ®éçãªãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ããã
ã¹ãªãŒãã¢ããïŒvnc2flv
ä»ãç§ã¯åªããå質ã®vnc圢åŒã®ãããªã¹ããªãŒã ãæã«å ¥ããŸãããããã¯ãã¡ã€ã«ã«æžã蟌ãã ãã§ããã ç§ã¯åã³ãç¬èªã®ãã³ããŒãäœæãããšããå ã®ããã°ã©ãã³ã°ã®æ¬²æ±ãæå¶ããã€ã³ã¿ãŒãããã®è žã§vnc2swfãããžã§ã¯ããèŠã€ãããã®åŸç¶ã®vnc2flvãèŠã€ããŸãã ã Pythonã®ã°ã©ããŒã«å¯Ÿããæççãªæ 床ã¯ãæåã®çµæã®çŽåŸã«ééããŸãã-ããã°ã©ã ã¯ã15 + fpsã§ãã¹ã¬ã¹å質ãšWQHD解å床ã§ãããªã¹ããªãŒã ãèšé²ããŸãïŒ Xvfbã§
flvrec.py -r 30 127.0.0.1
fpsãäžããã«ã¯ã解å床ã1280x720ã«äžããã ãã§ãã èå³æ·±ãããšã«ãVine VNCãåèµ·åãããšãçŸåšã®ç»é¢è§£å床ããã£ããã£ããããã€ãã£ã解å床ã«å®å šã«åãæ¿ããŠèšé²ãæå¹ã«ã§ããŸãã
vnc2flvã®ã€ã³ã¹ããŒã«ã¯éåžžã«ç°¡åã§ããµã€ãã§èª¬æãããŠããŸããããã«ã¯ç¹å¥ãªèœãšãç©Žã¯ãããŸããã
å®æãããããªã¯ããæ°ã«å ¥ãã®ãããªãšãã£ã¿ãŒã§åŠçããäœåãªéšåãããªãã³ã°ããŠãç®çã®åœ¢åŒã«å€æã§ããŸãã ç§ã¯ã¯ã€ã³ã®äžã§å®è¡ãããŠããVirtualDubã䜿çšããŠããŸãããããã¯ãã§ã«ç¿æ £ã®åé¡ã§ãã
ãã®åäºè©©å šäœã®çµæã¯æ¬¡ã®ãšããã§ãã
ãããªã¯ããããããããã«éåžžã«é®®æã§ãã ã¢ãã¡ãŒã·ã§ã³ã¯æ£åžžã«èšé²ãããŸããã ç§ã«é¢ããŠã¯ãMac OSç»é¢ã®æåéãäœã§ã䜿çšããŠèšé²ããããšãã§ããŸãã æåéããã«ãŒãœã«ã ããæ¬ èœããŠããŸããããšã«ããçãæ®ãããšãã§ããŸãã
ããšããïŒè¡ãæ¢ãŸãã®æ
誰ããèªåã®ã¡ãœãããæ€çŽ¢ããå Žåã«åããŠãããã§ç§ãåºäŒã£ãè¡ãæ¢ãŸããšçæããªã¹ãããŸãã
VLC Player -OS X 10.7以éã§ã¯ãç»é¢ãããããªãé²ç»ã§ããŸãã
CaptureMe-ã¯ã©ãã·ã¥ãã空ã®ãããªãæžã蟌ã¿ãŸã
iPhoneã·ãã¥ã¬ãŒã¿ãŒçšã®SIMBLãã©ã°ã€ã³ -ã³ãŒãå ã®ã·ãã¥ã¬ãŒã¿ãŒããŒãžã§ã³ã®å€æŽãšåæ§ç¯ãå¿ èŠã§ãiPadãããªãæžã蟌ãŸããéåžžã¯ãŸã£ããæ©èœããŸããã§ãã
osxvnc 3.0 with SourceForge-10.7ã§ã¯ã©ãã·ã¥
RealVNC Server-ã©ã€ã»ã³ã¹ããŒãå¿ èŠã§ã
VirtualBoxããããªé²ç»ã¢ãŒã -3幎åã«äº¡ããªããŸãããããµããŒããããŠãããåäœããŸãã
ffmpeg + x11grab-ææã§æè»æ§ããããŸããããããªã§äžæ²»ã®äŒæ¢ãäžããŸãã ããã«ãç§ããã®ã¢ã€ãã¢ãåãå ¥ããããã°ãžã®ãªã³ã¯ããããŸãã
Apple HTTPã©ã€ãã¹ããªãŒãã³ã° -ã¹ããªãŒãã³ã°ããŒã«ãªã