Tuesday, May 29, 2012

Screen sharing during on-air hangouts works, but could be better

Some friends and I do a weekly podcast called Yet Another Tech Show (YATS). We're streaming the podcasts using Google's "on-air" hangouts, and last Wednesday, we experimented with screen sharing during the podcast.

In the middle of the podcast, we talked about the simplicity of deploying servers and applications in the Amazon cloud and demonstrated a virtual server on a shared screen. The discussion went smoothly -- we could easily participate and collaborate -- but, as you see in this screen shot, the video quality was not perfect. You would not want to stream a fine print contract at this level of quality.

In the best of circumstances, real time screen sharing is difficult. A lot of data has to be moved quickly and a lot of processing is required to reconstruct and render the data as it arrives. It gets even rougher when the screens have different sizes, aspect ratios or resolutions. If I share my 1,920 by 1,200 desktop and you are viewing it in a 400 by 400 window, we have a problem.

After our podcast, I played around a bit more with screen sharing. I started an on-air hangout between two computers sharing the same Internet connection -- my laptop and my wife's iMac.
Both machines have 1,920 by 1,200 pixel displays. My laptop has a 3.06 Ghz dual core CPU, 4GB memory and is running 64-bit Windows and the iMac has a 2.8 Ghz core 2 CPU with 2GB memory and is runnng OS X. Google hangouts was the only application running on either machine.

First I shared the Mac's properties screen. It showed up quickly on the laptop, but as you see here, it was blurry. The image gradually sharpened until after around three seconds, it was easily readable, though, as you see, still imperfect. While the screen was easily legible, the rendering delay may have hindered a conversation.
Next I made Word documents with screens full of words on both machines and shared both screens. Again, rendering and "focusing" the pages took around 3 seconds on either machine. Character quality on the laptop was better than that on the Mac (shown here).

Cursor movement on a remote screen was jerky, but it was less than a second behind. The delay in selecting a single word then deleting it was well under a second whether working on the Mac or PC. The delay in deleting a paragraph was more noticable -- about a second.

The delays were caused by some combination of the speed of the computers and communication time. The CPU utilization on both machines varied significantly while screen sharing, even if there was no change on the screens. (At times it was over 90 percent on the laptop). When other applications were running, performance deteriorated noticeably.

While imperfect, hangouts on air was good enough for our demo and conversation to run smoothly. This is version 1 and Google will improve their sharing and rendering algorithms -- version 2 will be better. Communication link speed is controlled by business interests, not technology, so it will be a more persistent constraint in the US.

The video of the YATS session is shown below -- the screen sharing segment starts at just after the 30 minute mark.