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 <br> ''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&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&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<---------