Better video conferencing with Daily.co (and Mux)

I spent four years as a heavy user of Google Hangouts. At Zencoder, we had a few remote employees, and after we joined Brightcove, we became the remote employees (with Brightcove in Boston and Zencoder in San Francisco).

I wish I could say we had a great experience with Hangouts, but we didn't. When it worked, it was great. No downloads, nice integration with Google Calendar, acceptable video and audio quality.

The problem is that it often doesn't work. Audio failures were the most common problem; if Google controls Hangouts, Chrome, WebM, and started the WebRTC project, why do I need to exec sudo kill 'ps -ax | grep 'coreaudiod'| grep 'sbin' | awk '{print $1}'' to get audio to work?1 Some of the problems just seemed self-inflicted.

I know video is hard, and real-time video has its own challenges. But spending the first 5 minutes of every videoconference fighting with video conferencing software sucks.

Our solution at Mux is to use Daily.co, who just launched support for recording video calls. Incidentally, Daily.co is also a user of Mux - Mux Video powers the new video recording feature.

Why we use Daily.co

Daily.co is a freemium video conferencing service that works both in the Chrome web browser (just like Hangouts) and on dedicated TV/conference room hardware (as an alternative to something like the Hangouts Meet hardware kit). We mostly use the Daily TV version of Daily in our conference rooms at Mux, but also use it for Chrome calls sometimes.

Daily is great for three reasons.

First, it's intuitive. To control a TV or start a meeting, you just visit tv.daily.com and type in a 6-character code that is displayed on a TV.

Daily.co welcome screen

To share a meeting invite with someone, you can either generate a unique link (usually something weird and food-based like https://i.daily.co/udon-zaalouk-paysam) or create your own a named room (like https://newco.daily.co/meeting-room). Either way, it's pretty easy.

Second, it almost always works. We've maybe had one or two call failures in a year of heavy usage, and for each one, we just had to restart the meeting and things worked from there. In addition to the box, Daily TV package includes a solid microphone and camera that both sound and look good in our mid-sized conference room (say, 10 people around a table).

We also had one Daily TV box fail a few weeks ago, and Daily.co had a replacement box to us within a day.

Daily TV box

Third, it supports the right features: security settings, phone dial-in, reporting, custom subdomains, Slack and Intercom integration, and the like. Zoom and Hangouts might support more features, but we don't really miss them. Features aren't what really matters anyway. In my humble opinion, the most important feature of video conferencing is being able to video conference. What we really want is reliable video conferencing that doesn't begin with 5 minutes of frustration.

How Daily.co uses Mux

Speaking of features, Daily.co just released beta support for a new feature that lets users record video calls. This feature uses Mux Video under the hood.

Recording is useful for a number of reasons. Every Friday afternoon, for example, we have a company Show & Tell, where anyone can show off what they worked on that week. Engineers show off features, salespeople tell about closed deals and customer conversations, and the like. But 4pm isn't a great time for everyone, especially our London office (where it's 12am). So we can now record Show & Tell for anyone to watch at their leisure.

Recording is powered by Mux Video. Daily.co meetings are captured using the MediaStream Recording API, which outputs vp8+opus video. When a meeting ends, Daily.co archives this file to S3 and sends a single API request to https://api.mux.com that includes the URL of the file.

POST https://api.mux.com/video/v1/assets

{
  "input" : "https://s3.amazonaws.com/{path/to/meeting}.webm",
  "playback_policy": "signed",
  "per_title_encode" : "true"
}

Mux pulls the file from S3, applies per-title encoding optimization, and makes recorded videos available. Daily then takes the Playback ID of the video, puts it in a stream.mux.com URL, and plays that URL in the hls.js player, like:

src="https://stream.mux.com/{playback-ID}.m3u8"  

That's it - at the risk of oversimplifying, Daily.co was able to add support for recorded meetings with two API calls.

Check it out

Try out Daily.co, and the new recording feature, and let us know what you think!

  1. I suppose the answer is "Google doesn't control MacOS," but...that seems like a weak excuse, unless Apple is deliberately sabotaging Hangouts here.