Implementing startOffsetTime for HTML5
In this first of two technical blog posts on our recent
work on P2P Next, we explain why and how we implemented the
HTML5 media element attribute startOffsetTime
in Firefox to enable accurate synchronisation of
out-of-band timestamped metadata with media streamed live
to a browser over the internet.
First we'll explain our rationale for why we need the functionality this attribute makes possible. Then, we'll go into some technical detail as to how Firefox and Chrome currently interpret the specification. We'll explain how we built a proof of concept implementation in Firefox. Finally we'll state our position on the interpretation of the specification and highlight some challenges in getting this implemented more generally.
The reason for setting this out is that we'd like to see
consistent support for startOffsetTime
across
all commonly used codecs and for browser vendors to bring
their implementations into line with the published HTML5
media elements specification. There are ambiguities in the
specification itself, such as the interpretation of
'earliest seekable position', which could be clarified,
especially with respect to continuous live streaming media.
Browser vendors need to agree on a common interpretation of
attributes such as currentTime
so others can
experiment with the exciting possibilities this new
technology is opening up.