Dear SMIL and WikiMedia folks, I wanted to bring this to your attention:
The HTML5-driven Wikimedia "sequencer" - a template-based online video
editor - stores the EDL (Edit Decision List) in the SMIL format.
There's a recent introductory blog post [1] about it.
You can see an example for yourself by opening this page [2] with
Firefox 4 (preferably), by clicking on "Edit Sequence", then by
clicking on the "View" button in the upper-left corner, followed by
"Sequence SMIL XML" from the popup menu. The SMIL 3.0 source will be
revealed. For convenience, I quoted the XML source at the bottom of
this email.
This appears to be a custom version of what I would normally qualify
as SMIL, at least (as far as I can tell) not something based on the
normative Scalability Framework [3], nor based on an existing subset
of SMIL (see Modularization and Profiling [4]).
For example, the format overrides the normal SMIL namespace for "img"
and "ref" with
xmlns="http://www.w3.org/1999/xhtml"html", although I'm
a
bit confused as I can't see any XHTML constructs there. There's a
combination of XML attribute name/value pairs coming from SMIL a well
as from some domain-specific markup (none of which seem to belong to
the specified namespace). The format also injects arbitrary parameters
into media objects using nested "param" tags (and "name" +
"value"
pairs), thereby adding another layer of extensibility (why mix native
attributes and the param element ?).
I am wondering whether there is scope in this "lab" project to discuss
the EDL syntax ? It would be great if the final format was compatible
with SMIL user agents (playback engines and production tools). I am
sure that simple changes could be made to "clean-up" the namespaces
and to define an XML schema that draws the boundaries between SMIL and
domain-specific markup.
The statement from the blog "The SMIL spec has evolved over time and
has become famous for being very large and complicated to implement in
a real world player" may be true for the specification as a whole, but
not for a domain-specific subset ;) Just look at SVG or DAISY as
prime examples of standards that integrate only the strictly-necessary
parts of SMIL.
The claim that "Another nice feature of SMIL xml is that it is
extensible for custom components" may be true indeed, but this is not
quite achieved with the proposed format, as it doesn't conform to the
extensibility guidelines.
I am looking forward to hearing your thoughts. Feel free to correct me
if I got something wrong ! :)
I assume the "public-smil" and "wikivideo-l" mailing lists are most
appropriate to continue this discussion, but I also CC'ed the more
mature WikiMedia technical lists to ensure this message reaches "whom
it may concern" :)
[1]
http://techblog.wikimedia.org/2010/09/video-labs-kaltura-html5-sequencer-av…
[2]
http://commons.wikimedia.org/w/index.php?title=Sequence:Cats&withJS=Med…
[3]
http://www.w3.org/TR/SMIL3/smil-scalabilityFramework.html
[4]
http://www.w3.org/TR/SMIL/smil-modules.html
----- SNIP ----8<---------
<?xml version="1.0" encoding="UTF-8"?>
<smil baseProfile="Language" version="3.0"
xmlns="http://www.w3.org/ns/SMIL
">
<head>
<meta name="title" content="Cats"/>
<transition
xmlns="http://www.w3.org/1999/xhtml"
id="REF_5_fadeFromColor" type="fade" dur="0:02"
fadeColor="#000000"
subtype="fadeFromColor">
</transition>
</head>
<body id="seq_0">
<par id="par_1">
<seq title="Video Track 1"
tracktype="video"
id="seq_2">
<ref
xmlns="http://www.w3.org/1999/
xhtml" type="application/x-wikitemplate"
apititlekey="Template:SequenceTitleBlackBG" apiprovider="commons"
dur="0:06" id="REF_5" transIn="REF_5_fadeFromColor">
<param name="Title" value="House Catff"
/>
<param name="SubTitle" value="English House Cat
Article <br> ''Read by DollieLlama'' " />
<param name="Image"
value="File:Olhos_de_um_gato-3.jpg" />
</ref>
<img
xmlns="http://www.w3.org/1999/xhtml"
dur="0:03"
title="Spielendes Kätzchen"
src="http://upload.wikimedia.org/wikipedia/commons/3/33/Spielendes_K%C…
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Spiel…
" id="IMG_4" panZoom="0%, 0%, 100%, 100%">
<param name="id" value="3494791" />
<param name="apiTitleKey"
value="File:Spielendes_Kätzchen.JPG" />
</img>
<img
xmlns="http://www.w3.org/1999/xhtml" dur="2"
title="Woman with Cat"
src="http://upload.wikimedia.org/wikipedia/commons/8/8c/Woman_with_Cat…
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Woman…
" id="IMG_0" panZoom="6%, -13%, 170%, 127%">
<param name="id" value="1410943" />
<param name="apiTitleKey"
value="File:Woman_with_Cat.jpg" />
</img>
<img
xmlns="http://www.w3.org/1999/xhtml"
dur="0:03"
title="Cat and mouse"
src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Cat_and_…
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Cat_a…
" id="IMG_1" panZoom="0%, -81%, 196%, 147%">
<param name="id" value="6979116" />
<param name="apiTitleKey"
value="File:Cat_and_mouse.jpg" />
</img>
<img
xmlns="http://www.w3.org/1999/xhtml"
dur="0:05"
title="Ancient Egyptian bronze cat"
src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Ancient_…
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Ancie…
" id="IMG_5" panZoom="-1%, -35%, 181%, 135%">
<param name="id" value="3804250" />
<param name="apiTitleKey"
value="File:Ancient_Egyptian_bronze_cat.jpg" />
</img>
<img
xmlns="http://www.w3.org/1999/xhtml" dur="2"
title="Catstalkprey"
src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Catstalk…
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Catst…
" id="IMG_2" panZoom="-18%, -5%, 116%, 87%">
<param name="id" value="3820113" />
<param name="apiTitleKey"
value="File:Catstalkprey.jpg" />
</img>
<img
xmlns="http://www.w3.org/1999/xhtml" dur="2"
title="Cat&Pigeon"
src="http://upload.wikimedia.org/wikipedia/commons/6/6d/Cat%26Pigeon.j…
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Cat%2…
" id="IMG_6" panZoom="-6%, -10%, 135%, 101%">
<param name="id" value="444674" />
<param name="apiTitleKey"
value="File:Cat&Pigeon.jpg" />
</img>
<img
xmlns="http://www.w3.org/1999/xhtml"
dur="0:03"
title="Cat1"
src="http://upload.wikimedia.org/wikipedia/commons/a/ae/Cat1.jpg
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Cat1.…
" id="IMG_3" panZoom="-1%, -1%, 100%, 100%">
<param name="id" value="2954217" />
<param name="apiTitleKey"
value="File:Cat1.jpg" />
</img>
<video
xmlns="http://www.w3.org/1999/xhtml"
durationhint="6.5" dur="0:04" title="Cat claws"
src="http://upload.wikimedia.org/wikipedia/commons/a/a6/Cat_claws.ogg
"
poster="http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Cat_c…
" id="VIDEO_7" clipBegin="0:00">
<param name="id" value="532143" />
<param name="apiTitleKey"
value="File:Cat_claws.ogg" />
</video>
<ref
xmlns="http://www.w3.org/1999/xhtml"
type="application/x-wikitemplate"
apititlekey="Template:SequenceTitleBlackBG" apiprovider="commons"
dur="2" id="REF_0">
<param name="Title" value="end title" />
</ref>
</seq>
<seq title="Audio track 1"
tracktype="audio"
id="seq_3">
<audio
xmlns="http://www.w3.org/1999/
xhtml" durationhint="1628.9262585034" dur="0:29"
title="En-Cat (part
1)"
src="http://upload.wikimedia.org/wikipedia/commons/d/d5/En-Cat_%28part…
" id="AUDIO_4" clipBegin="1:05">
<param name="id" value="2755934" />
<param name="apiTitleKey" value="File:En-
Cat_(part_1).ogg" />
</audio>
</seq>
</par>
</body>
</smil>
----- SNIP ----8<---------