[Playlist] call for clipping format proposals
Ryan Shaw
rshaw at yahoo-inc.com
Thu Aug 3 22:05:40 UTC 2006
>> What are the use cases for the developer who might implement this?
>> Remix? Time-based annotation? Time-based triggers for other media?
>> Podcast excerpting?
>
> Use case #1: there is a video of a speech by a politician, and the
> video is licensed in a way which prevents third parties from hosting a
> modified copy. Clipping functionality would allow a user to create a
> highlights reel containing notable sections.
>
> Use case #2: there is a concert recording, and the recording is
> licensed in a way which prevents third parties from hosting a modified
> copy. Clipping functionality would allow a user to address a single
> song within that concert.
>
> Use case #3: there are a set of recorded jazz performances which
> contain segments that an educator wants to use as examples, and the
> recordings are not licensed in a way that allows the educator to host
> a modified copy. Clipping functionality would allow the educator to
> publish the set of examples.
>
> I hadn't thought of the time-based annotation application, but now
> that you bring it up I think it's really good.
Here's a strawman proposal:
We want to enable client-side clipping for media being served from
sources that do not support server-side clipping. This means that the
client will either A) progressively download the source media until the
clip start point is available, or B) use the clip timings to guess at
byte ranges and make HTTP byte-range requests.
(For server-side clipping XSPF support is a non-issue. Servers that
support clipping will have a server-specific URI scheme for specifying
ins and outs, and these URIs can be used in standard XSPF <location>
elements.)
How about just allowing multiple <clip> elements under a <track>?
<playlist xmlns:cl="http://example.com">
<trackList>
<track>
<location>http://example.com/song_1.mp3</location>
<clip start="00:00:03.000" end="00:00:10.000"/>
<clip start="00:00:15.000" end="00:00:20.000"/>
<clip start="00:00:18.000" end="00:00:25.000"/>
</track>
</trackList>
</playlist>
The "start" and "end" attributes use NTP time code format.
The "end" attribute is optional, if it is missing the clip extends to
the end of the media.
Clips can overlap.
Clips can have gaps between them.
Players that support client-side clipping should play only the pieces of
the media that fall within the specified clip ranges. In this case, the
range from 00:00:18.000 to 00:00:20.000 would be played twice.
Players that don't support client-side clipping should ignore the
clipping stuff and play the source media in entirety.
Clip elements should support <link> or <extension> sub-elements, for
example to specify URIs of content (annotations, images, etc.) that are
relevant to the clip.
More information about the Playlist
mailing list