Strange use of SMIL 3.0 in Wikimedia video sequencer ?

Daniel Weck <[email protected]> Mon, 4 Oct 2010 10:23:42 +0100
Newsgroups gmane.comp.web.smil
Message-ID <[email protected]>
Dear SMIL and WikiMedia folks, I wanted to bring this to your attention:

The HTML5-driven Wikimedia "sequencer" - a template-based online video =20=

editor - stores the EDL (Edit Decision List) in the SMIL format. =20
There's a recent introductory blog post [1] about it.

You can see an example for yourself by opening this page [2] with =20
Firefox 4 (preferably), by clicking on "Edit Sequence", then by =20
clicking on the "View" button in the upper-left corner, followed by =20
"Sequence SMIL XML" from the popup menu. The SMIL 3.0 source will be =20
revealed. For convenience, I quoted the XML source at the bottom of =20
this email.

This appears to be a custom version of what I would normally qualify =20
as SMIL, at least (as far as I can tell) not something based on the =20
normative Scalability Framework [3], nor based on an existing subset =20
of SMIL (see Modularization and Profiling [4]).

For example, the format overrides the normal SMIL namespace for "img" =20=

and "ref" with xmlns=3D"http://www.w3.org/1999/xhtml", although I'm a =20=

bit confused as I can't see any XHTML constructs there. There's a =20
combination of XML attribute name/value pairs coming from SMIL a well =20=

as from some domain-specific markup (none of which seem to belong to =20
the specified namespace). The format also injects arbitrary parameters =20=

into media objects using nested "param" tags (and  "name" + "value" =20
pairs), thereby adding another layer of extensibility (why mix native =20=

attributes and the param element ?).

I am wondering whether there is scope in this "lab" project to discuss =20=

the EDL syntax ? It would be great if the final format was compatible =20=

with SMIL user agents (playback engines and production tools). I am =20
sure that simple changes could be made to "clean-up" the namespaces =20
and to define an XML schema that draws the boundaries between SMIL and =20=

domain-specific markup.

The statement from the blog "The SMIL spec has evolved over time and =20
has become famous for being very large and complicated to implement in =20=

a real world player" may be true for the specification as a whole, but =20=

not for a domain-specific subset ;)  Just look at SVG or DAISY as =20
prime examples of standards that integrate only the strictly-necessary =20=

parts of SMIL.

The claim that "Another nice feature of SMIL xml is that it is =20
extensible for custom components" may be true indeed, but this is not =20=

quite achieved with the proposed format, as it doesn't conform to the =20=

extensibility guidelines.

I am looking forward to hearing your thoughts. Feel free to correct me =20=

if I got something wrong ! :)

I assume the "public-smil" and "wikivideo-l" mailing lists are most =20
appropriate to continue this discussion, but I also CC'ed the more =20
mature WikiMedia technical lists to ensure this message reaches "whom =20=

it may concern" :)

[1]
=
http://techblog.wikimedia.org/2010/09/video-labs-kaltura-html5-sequencer-a=
vailable-on-wikimedia-commons/

[2]
=
http://commons.wikimedia.org/w/index.php?title=3DSequence:Cats&withJS=3DMe=
diaWiki:MwEmbed.js

[3]
http://www.w3.org/TR/SMIL3/smil-scalabilityFramework.html

[4]
http://www.w3.org/TR/SMIL/smil-modules.html

----- SNIP ----8<---------

<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<smil baseProfile=3D"Language" version=3D"3.0" =
xmlns=3D"http://www.w3.org/ns/SMIL=20
">
         <head>
                 <meta name=3D"title" content=3D"Cats"/>
             <transition xmlns=3D"http://www.w3.org/1999/xhtml" =20
id=3D"REF_5_fadeFromColor" type=3D"fade" dur=3D"0:02" =
fadeColor=3D"#000000" =20
subtype=3D"fadeFromColor">
         </transition>
     </head>
         <body id=3D"seq_0">
                 <par id=3D"par_1">
                         <seq title=3D"Video Track 1" tracktype=3D"video" =
=20
id=3D"seq_2">
                             <ref xmlns=3D"http://www.w3.org/1999/xhtml" =
=20
type=3D"application/x-wikitemplate" =20
apititlekey=3D"Template:SequenceTitleBlackBG" apiprovider=3D"commons" =20=

dur=3D"0:06" id=3D"REF_5" transIn=3D"REF_5_fadeFromColor">
                     <param name=3D"Title" value=3D"House Catff" />
                     <param name=3D"SubTitle" value=3D"English House Cat =
=20
Article &lt;br&gt; ''Read by DollieLlama'' " />
                     <param name=3D"Image" =20
value=3D"File:Olhos_de_um_gato-3.jpg" />
                 </ref>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"0:03" =
=20
title=3D"Spielendes K=E4tzchen" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/3/33/Spielendes_K%C3%=
A4tzchen.JPG=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Spielen=
des_K%C3%A4tzchen.JPG/80px-Spielendes_K%C3%A4tzchen.JPG=20
" id=3D"IMG_4" panZoom=3D"0%, 0%, 100%, 100%">
                     <param name=3D"id" value=3D"3494791" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Spielendes_K=C3=A4tzchen.JPG" />
                 </img>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"2" =20=

title=3D"Woman with Cat" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/8/8c/Woman_with_Cat.j=
pg=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Woman_w=
ith_Cat.jpg/80px-Woman_with_Cat.jpg=20
" id=3D"IMG_0" panZoom=3D"6%, -13%, 170%, 127%">
                     <param name=3D"id" value=3D"1410943" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Woman_with_Cat.jpg" />
                 </img>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"0:03" =
=20
title=3D"Cat and mouse" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Cat_and_mo=
use.jpg/432px-Cat_and_mouse.jpg=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Cat_and=
_mouse.jpg/80px-Cat_and_mouse.jpg=20
" id=3D"IMG_1" panZoom=3D"0%, -81%, 196%, 147%">
                     <param name=3D"id" value=3D"6979116" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Cat_and_mouse.jpg" />
                 </img>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"0:05" =
=20
title=3D"Ancient Egyptian bronze cat" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Ancient_Eg=
yptian_bronze_cat.jpg/449px-Ancient_Egyptian_bronze_cat.jpg=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Ancient=
_Egyptian_bronze_cat.jpg/80px-Ancient_Egyptian_bronze_cat.jpg=20
" id=3D"IMG_5" panZoom=3D"-1%, -35%, 181%, 135%">
                     <param name=3D"id" value=3D"3804250" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Ancient_Egyptian_bronze_cat.jpg" />
                 </img>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"2" =20=

title=3D"Catstalkprey" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Catstalkpr=
ey.jpg/800px-Catstalkprey.jpg=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Catstal=
kprey.jpg/80px-Catstalkprey.jpg=20
" id=3D"IMG_2" panZoom=3D"-18%, -5%, 116%, 87%">
                     <param name=3D"id" value=3D"3820113" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Catstalkprey.jpg" />
                 </img>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"2" =20=

title=3D"Cat&amp;Pigeon" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/6/6d/Cat%26Pigeon.jpg=
=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Cat%26P=
igeon.jpg/80px-Cat%26Pigeon.jpg=20
" id=3D"IMG_6" panZoom=3D"-6%, -10%, 135%, 101%">
                     <param name=3D"id" value=3D"444674" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Cat&amp;Pigeon.jpg" />
                 </img>
                 <img xmlns=3D"http://www.w3.org/1999/xhtml" dur=3D"0:03" =
=20
title=3D"Cat1" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/a/ae/Cat1.jpg=20
" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Cat1.jp=
g/80px-Cat1.jpg=20
" id=3D"IMG_3" panZoom=3D"-1%, -1%, 100%, 100%">
                     <param name=3D"id" value=3D"2954217" />
                     <param name=3D"apiTitleKey" value=3D"File:Cat1.jpg" =
/>
                 </img>
                 <video xmlns=3D"http://www.w3.org/1999/xhtml" =20
durationhint=3D"6.5" dur=3D"0:04" title=3D"Cat claws" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/a/a6/Cat_claws.ogg=20=

" =
poster=3D"http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Cat_cla=
ws.ogg/mid-Cat_claws.ogg.jpg=20
" id=3D"VIDEO_7" clipBegin=3D"0:00">
                     <param name=3D"id" value=3D"532143" />
                     <param name=3D"apiTitleKey" =20
value=3D"File:Cat_claws.ogg" />
                 </video>
                 <ref xmlns=3D"http://www.w3.org/1999/xhtml" =20
type=3D"application/x-wikitemplate" =20
apititlekey=3D"Template:SequenceTitleBlackBG" apiprovider=3D"commons" =20=

dur=3D"2" id=3D"REF_0">
                     <param name=3D"Title" value=3D"end title" />
                 </ref>
             </seq>
                         <seq title=3D"Audio track 1" tracktype=3D"audio" =
=20
id=3D"seq_3">
                             <audio xmlns=3D"http://www.w3.org/1999/=20
xhtml" durationhint=3D"1628.9262585034" dur=3D"0:29" title=3D"En-Cat =
(part =20
1)" =
src=3D"http://upload.wikimedia.org/wikipedia/commons/d/d5/En-Cat_%28part_1=
%29.ogg=20
" id=3D"AUDIO_4" clipBegin=3D"1:05">
                     <param name=3D"id" value=3D"2755934" />
                     <param name=3D"apiTitleKey" value=3D"File:En-=20
Cat_(part_1).ogg" />
                 </audio>
             </seq>
                 </par>
         </body>
</smil>

----- SNIP ----8<---------