function extend(base, top) {
  let target = {};

  [base, top].forEach(function(obj) {
    for (let prop in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, prop)) {
        target[prop] = obj[prop];
      }
    }
  });

  return target;
}
WebM video encoder for Google Chrome. This implementation is suitable for
creating very large video files, because it can stream Blobs directly to a
FileWriter without buffering the entire video in memory.

When FileWriter is not available or not desired, it can buffer the video in
memory as a series of Blobs which are eventually returned as one composite
Blob.

By Nicholas Sherlock.

Based on the ideas from Whammy: https://github.com/antimatter15/whammy

Released under the WTFPLv2 https://en.wikipedia.org/wiki/WTFPL