I'm making much progress on our streaming video annotation client, but I'm running into a problem that I'm not sure how to resolve.
I'm working with HTML5 <video/> right now because that seems to be the easiest to work with. However, I'm not sure which URL is the target of the annotation. For example, I have the following in my test page:
<video preload="metadata" controls>
<source src="
http://html5demos.com/assets/dizzy.mp4" type="video/mp4" />
<source src="
http://html5demos.com/assets/dizzy.webm" type="video/webm" />
<source src="
http://html5demos.com/assets/dizzy.ogv" type="video/ogv" />
</video>
The browser selects the file format it's most comfortable with. The implication/expectation/assumption is that all three are equivalent. Which one am I targeting? Which URL is the value of the oa:hasSource property?
In this example, the only difference between the sources is the file extension, but there's nothing in the HTML5 spec that requires that. They aren't relying on HTTP content negotiation. The sources could be from three different services. The assumption is that they represent different formats with the same semantic content, even if the bit streams differ. Annotations on one should work against the others.
If we select one as the source and the others as alternatives, how do we choose which one to make the canonical source? How does this affect aggregating annotations?
I'll keep thinking about this, but I have to spend most of my time finishing up the code. For now, I'm making the target URL/URI a configuration option of the annotation application, so I've pushed any code-related decision off to the future.
-- Jim