Strange use of SMIL 3.0 in Wikimedia video sequencer ?

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Strange use of SMIL 3.0 in Wikimedia video sequencer ?

Daniel Weck
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="", 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" :)





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

<?xml version="1.0" encoding="UTF-8"?>
<smil baseProfile="Language" version="3.0" xmlns=" 
                 <meta name="title" content="Cats"/>
             <transition xmlns=""  
id="REF_5_fadeFromColor" type="fade" dur="0:02" fadeColor="#000000"  
         <body id="seq_0">
                 <par id="par_1">
                         <seq title="Video Track 1" tracktype="video"  
                             <ref xmlns=""  
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 &lt;br&gt; ''Read by DollieLlama'' " />
                     <param name="Image"  
value="File:Olhos_de_um_gato-3.jpg" />
                 <img xmlns="" dur="0:03"  
title="Spielendes Kätzchen" src=" 
" poster=" 
" id="IMG_4" panZoom="0%, 0%, 100%, 100%">
                     <param name="id" value="3494791" />
                     <param name="apiTitleKey"  
value="File:Spielendes_Kätzchen.JPG" />
                 <img xmlns="" dur="2"  
title="Woman with Cat" src=" 
" poster=" 
" id="IMG_0" panZoom="6%, -13%, 170%, 127%">
                     <param name="id" value="1410943" />
                     <param name="apiTitleKey"  
value="File:Woman_with_Cat.jpg" />
                 <img xmlns="" dur="0:03"  
title="Cat and mouse" src=" 
" poster=" 
" id="IMG_1" panZoom="0%, -81%, 196%, 147%">
                     <param name="id" value="6979116" />
                     <param name="apiTitleKey"  
value="File:Cat_and_mouse.jpg" />
                 <img xmlns="" dur="0:05"  
title="Ancient Egyptian bronze cat" src=" 
" poster=" 
" id="IMG_5" panZoom="-1%, -35%, 181%, 135%">
                     <param name="id" value="3804250" />
                     <param name="apiTitleKey"  
value="File:Ancient_Egyptian_bronze_cat.jpg" />
                 <img xmlns="" dur="2"  
title="Catstalkprey" src=" 
" poster=" 
" id="IMG_2" panZoom="-18%, -5%, 116%, 87%">
                     <param name="id" value="3820113" />
                     <param name="apiTitleKey"  
value="File:Catstalkprey.jpg" />
                 <img xmlns="" dur="2"  
title="Cat&amp;Pigeon" src=" 
" poster=" 
" id="IMG_6" panZoom="-6%, -10%, 135%, 101%">
                     <param name="id" value="444674" />
                     <param name="apiTitleKey"  
value="File:Cat&amp;Pigeon.jpg" />
                 <img xmlns="" dur="0:03"  
title="Cat1" src=" 
" poster=" 
" id="IMG_3" panZoom="-1%, -1%, 100%, 100%">
                     <param name="id" value="2954217" />
                     <param name="apiTitleKey" value="File:Cat1.jpg" />
                 <video xmlns=""  
durationhint="6.5" dur="0:04" title="Cat claws" src=" 
" poster=" 
" id="VIDEO_7" clipBegin="0:00">
                     <param name="id" value="532143" />
                     <param name="apiTitleKey"  
value="File:Cat_claws.ogg" />
                 <ref xmlns=""  
apititlekey="Template:SequenceTitleBlackBG" apiprovider="commons"  
dur="2" id="REF_0">
                     <param name="Title" value="end title" />
                         <seq title="Audio track 1" tracktype="audio"  
                             <audio xmlns=" 
xhtml" durationhint="1628.9262585034" dur="0:29" title="En-Cat (part  
1)" src=" 
" id="AUDIO_4" clipBegin="1:05">
                     <param name="id" value="2755934" />
                     <param name="apiTitleKey" value="File:En-
Cat_(part_1).ogg" />

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