Videoconferencing with Zoom

Disclaimer: AARNET were kind enough to provide a free Zoom account for the Govhack organisers to use this year – which is I think is worth about $10 per month. Apparently the free version works just as well but has a 40 minute time limit. This is a brief write up of my experience using it.

One of the jobs I have for Govhack is to wrangle the technology that we use to coordinate the communication between the various organisers – mainly the video conferencing tools.

In the past we have made a lot of use of Google Hangouts to do this. We liked the way it integrated with Google Calendar, it was mostly easy to use and it is free.

For about three months leading up to Govhack, we have a weekly meeting with some people meeting in at the Link Digital Office in Canberra, and the other people joining via video conference.

This year, we added another layer to the organisation with 11 sites running local Govhacks as part of the weekend of hacking. So each week after the national organiser meeting, we held a meeting for the organisers from each site.

We pretty quickly hit the 10 person limit on the free version of Google Hangouts – so it was opportune that I caught up with a contact at AARNET who suggested I look at Zoom – a new video conference system they were trialling, and finding to be quite good.

I ran a couple of small test calls with people and found the quality to be really good. There are a couple of key differences from Google Hangouts.

  • up to 25 people in the meeting
  • no need for an account (unless you are organising the meeting)
  • uses a native client, not browser based
  • option to dial in via phone
  • no masks, funny effects or other extensions
  • no option to broadcast (like hangouts on air)

We decided to give it a test with the national team, and pretty quickly determined that we’d replace Google Hangouts. The most striking improvement was with audio. Much clearer, and fewer problems with echo and echo cancellation. We also have a range of connection speeds between the people involved in these meetings. Zoom seemed to manage this a lot better – and the quality for people with good connections was excellent. Exceeding what we normally saw with Hangouts. For people with poor connections, the option to dial in via phone was really useful. If you can reliably access the audio of the meeting, you can still effectively participate in the meeting.

The AARNET instance of Zoom is running on hardware in their network – which might explain a good deal of the improvement. Improved latency and better contention rates. Its hard for me to say without going into a lot of testing that is not really my domain. I can say, that the experience was better all round.

Outside the quality of the calls – the experience of setting up meetings is also easy. There is a tradeoff in using Google Hangouts in the way it requires a Google Account for each person. Some people don’t have these, and if they aren’t tech savvy, it can be an obstacle that takes time to deal with.

When you create a Zoom meeting, either in the software client or website, it generates text that you can email to your meeting participants with simple instructions on how to join the meeting and a link to click. The text also includes the phone details to dial in. Pretty simple to use I think.

I created a weekly recurring meeting and shared the details with my team. All they had to do at the agreed time was click the link on their computer/device to trigger the client and then join the meeting.

As the meeting host, I have the option to mute participants and a few other controls. Its also possible to record the video of the meeting for later use (though we didn’t use this).

Govhack Organiser meeting in Zoom

There are a few display options that you can choose during the meeting. There is a mode similar to Google Hangouts where the person speaking automatically fills the bulk of the screen. I preferred to use the gallery style view where all the people in the meeting are visible (as shown in the image above). This allows me to pick up on visual cues from everyone in the meeting – much as you might if you were in the same room.

I think there is still a place for other video chat / conference systems that I have used recently (Hangouts, Skype, Appear.in, Jabber) but is great to have another tool to choose. I think its going to be my first choice for organising groups and committees.


Make a multi-camera video using Quicktime

Did you know you can make a multi-camera video using Quicktime as one of the cameras?

Tomorrow I’ll be filming some presentations to a community group. There will be a few speakers – but the format will generally be someone speaking from a lectern to a seated audience with some slides projected on a screen at the front of the room.

Pretty standard stuff really.

The same technique can be used to make a demo or pitch video, like the ones we asked teams to make for Govhack this year.

There are lots of ways to film this sort of thing – but I tend to try to do it with as small an amount of equipment to carry as I can manage.

I’ve got a couple of tricks that can improve your finished video, and make shooting and editing little easier.
Sketch of room and equipment layout

Let’s assume you have one camera (we’ll get to multi camera in a bit). Sit the camera at the back of the room so that you capture the speaker across the heads of the audience. This will have your speaker facing the camera most of the time. Frame the shot so that you have the head and shoulders of the person in the shot most of the time – a fairly tight shot. Don’t worry about getting the slides in the shot.


If the laptop that is running the projector is a Mac, open Quicktime and do File -> New Screen Recording.
Make a multi-camera video using QuicktimeClick the small white down arrow, and make sure ‘Built in mic’ is selected at the audio source.Screen Shot 2014-07-23 at 8.56.54 pm

Hit the record button, and set it to record the whole screen (whichever screen the slides will be displayed on). You are now recording the slides, just as the are presented – including transitions, animations video playback – the whole thing.

If you are using a Windows PC, try CamStudio which is free software. I’m sure there are good alternatives for *nix systems (post a comment if you know of one).

Record the presentation. At the end, stop the screen recording on the laptop by clicking on the small ‘stop’ button in the bar at the top of the screen.

Save the screen recording. This will leave you with a Quicktime file that will easily drop into iMovie or Final Cut.

Using a second camera

If you have a 2nd camera I’d suggest you set it capture a shot of the speaker and projector screen together – so you can use footage of the speaker pointing and interacting with the screen if needed. The other useful spot can be near the front of the room – possible over the presenters shoulder in a fairly wide shot. This will give you a view of the room – which can provide a context for the viewers of your video. It may also provide an angle you can use if people ask questions. Either way – you’ll probably want to use this second camera angle sparingly.


When you are ready to edit the video of the presentation – you can take the screen recording and treat it like camera footage. If you are using Final Cut, import the camera footage and the screencast, select these clips and then click File -> New -> Multicam clip. The standard options should work ok.

Once its done you’ll have each cameras footage and the screen recording synched via the audio. Do Shift+Command+7 in Final Cut to open the Angle Viewer. Before you start playback, make sure you have the angle with the best audio set to provide the audio track – then use the ‘video only switching’ tool to choose which angle you want to show at any point in the video.

If you need to sync the camera footage with the Quicktime file manually, roughly line the files up on your timeline and then use the audio waveform to get them exactly in sync. If the camera and Quicktime file were recorded at different frame rates, they can drift out of sync over time. This is a pain, and can be time consuming to fix. You may need to split one of the videos into a number of parts and sync each one. Use the one you are showing less of. The video will still be out of sync much of the time, but you can use the splits to adjust it back in sync once it gets really bad.

Good audio is important – if you’re new to this, go and look for some tutorials on recording audio. You can record an audio track to a dedicated recorder like a Zoom H4N and include it in your multitrack, and set it as the audio track for your video.

Multi camera video editing is easier after you’ve seen some demos. Search on Youtube for examples.


Faster uploads to Youtube via Amazon S3

I’ve worked out how to do faster uploads to Youtube via Amazon S3 and I’m pretty excited about it.

Over the last few months, I’ve been uploading even more video to youtube that usual. I’ve probably uploaded about 10+ hours of TEDxCanberra video each year for the last few years. Since the start of 2014 I’ve been producing a lot of video for canberralive.act.gov.au – probably 50 hours or so.

And this isn’t small, low quality video – its normally 1080HD in a fairly high bitrate. The video I published today was 16:26 minutes and 1.4Gb in file size.

For the recent Govhack event, I produced a short video to open the event, and another short video to close.

Each of these was finished just an hour or two before they were due to go online for a national audience to watch (no pressure!).

Once the edit is done, rendering the video file takes a while – but I’ve found the upload time to Youtube has been quite varied. Sometimes quite fast, other times painfully slow. And this is across a range of internet connection types and speed.

On a 100/40mbps NBN connection I had access to, uploads of video files that were 3-4 gig in size could take hours. On the fast internet in my workplace (about 150/60mbps I think) these large files could again take hours to upload to youtube.

I can’t say I did any exhaustive testing to find out why – I put it down to brewer problems, internet bottleneck, or throttling at Youtube’s end of the connection.

I was wrong!

Due to the time crunch for the Govhack videos, I asked a geek friend @Maxious if we had access to a fast cloud file server where I could upload the video to provide a second way to distribute the video to the sites around the county. He was very quick to point me to the Amazon S3 instance that he had setup and provide a login.

Uploading the 800mb Govhack Open video took about 5 minutes. Upload to youtube had taken about 2 hours.

The opportunity to save so much time in my video upload workload is too much to ignore – but getting video onto S3 only helps so much. What I need to do is test what the upload speed is to move video files to Youtube from Amazon S3. Even if this is no faster (i.e. youtube are the bottleneck) it would allow me to get the files off my network and PC quickly and let me leave work for the day.

I have done some poking around, and come up with a clunky way to upload to youtube from S3. I’ll post the basic steps below, but I think there is a lot of room to improve this. These steps assume you know your way around S3 and Amazon EC2. They make use of the youtube-upload python library  which is pretty easy to get running using the installation instructions.

Upload video to youtube from S3

  1. Transfer your video onto S3. I’m using a client called Cyberduck
  2. Make the video publicly readable – copy the url
  3. Login to your EC2 instance (I created a new one based on the Debian Wheezy IAM)
  4. Copy your video file from your S3 bucket with a command like

    wget https://s3-ap-southeast-2.amazonaws.com/bucket-name/video-name.mov

  5. Upload to youtube using the command

    youtube-upload –email=youtubeaccountname –password=youtubepassword video-name.mov –private –title=”Video Title” –category=Music

  6. Check your youtube account – you should see the movie has been uploaded :)

In the testing I did of the above process the 800mb video file imported into youtube in about 8 minutes and then needed about 10 more minutes to encode the video ready for viewing.

I’ll do more testing of this but it looks like I can reduce my youtube publishing time for a file of this size from about an hour to about 10-12 minutes depending on the speed of my connection.

Other Notes

  • S3 is probably not needed. I could simply move the file to my EC2 instance, but I can’t SCP or SSH from my corporate network so its hard to test. Using S3 is a reasonable workaround for now.
  • If using S3, there are AWS APIs that might make the wget step redundant (its pretty lame to just copy the file to S3 and then copy again to EC2 – but as a test, I can live with it).
  • I found the user name / password for the youtube-upload script worked best when I used google’s two-factor authentication and setup a profile just for this script.
  • It would be possible to build a web front end for this type of process.
  • If not a web front end, it would be easy to build a script that automated this process via cron. I’d need to look into how the Title of the video could be set – but this could use a temp title such as the date + filename etc. Then remove the video file when done, keep a log etc.
  • If it had a web front end, it would make it easier for lay people to use this approach, add titles, check for success/problems etc.
  • There is probably a project out there that already does all this but a 5min search on github didn’t turn anything up :)

I’ll try and refine this a little over the next week or two and post an update.