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", 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-ava...
[2] http://commons.wikimedia.org/w/index.php?title=Sequence:Cats&withJS=Medi...
[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%C3%A4tzchen.JPG " poster="http://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Spielendes_K%C3%A4tzchen.JPG/80px-Spielendes_K%C3%A4tzchen.JPG " 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.jpg " poster="http://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Woman_with_Cat.jpg/80px-Woman_with_Cat.jpg " 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_mouse.jpg/432px-Cat_and_mouse.jpg " poster="http://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Cat_and_mouse.jpg/80px-Cat_and_mouse.jpg " 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_Egyptian_bronze_cat.jpg/449px-Ancient_Egyptian_bronze_cat.jpg " poster="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Ancient_Egyptian_bronze_cat.jpg/80px-Ancient_Egyptian_bronze_cat.jpg " 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/Catstalkprey.jpg/800px-Catstalkprey.jpg " poster="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Catstalkprey.jpg/80px-Catstalkprey.jpg " 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.jpg " poster="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Cat%26Pigeon.jpg/80px-Cat%26Pigeon.jpg " 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.jpg/80px-Cat1.jpg " 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_claws.ogg/mid-Cat_claws.ogg.jpg " 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_1%29.ogg " 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<---------