static patchRemovalRange_() {
    // eslint-disable-next-line no-restricted-syntax
    const originalRemove = SourceBuffer.prototype.remove;

    // eslint-disable-next-line no-restricted-syntax
    SourceBuffer.prototype.remove = function(startTime, endTime) {
      // eslint-disable-next-line no-restricted-syntax
      return originalRemove.call(this, startTime, endTime - 0.001);
    };
  }
Patch remove().  On Safari 11, if you call remove() to remove the content
up to a keyframe, Safari will also remove the keyframe and all of the data
up to the next one. For example, if the keyframes are at 0s, 5s, and 10s,
and you tried to remove 0s-5s, it would instead remove 0s-10s.

Offsetting the end of the range seems to be a usable workaround.

@private