signageOS SMIL supported features and limitations

Have more questions? Submit a request

Necessary attributes in SMIL playlist

  • region name has to be specified in one of these two ways
<region regionName="widget12"..../>
<!-- OR -->
<region xml:id="widget12" .... />

Supported features

  • sequential and parallel play of audio, video, image and widget
  • supports simple layering ( z-index ) with videos always played on background ( lowest level )
  • pairs all media with proper regions from layout part of SMIL, if no region specified, uses values from root-layout tag 
  • plays media in endless loops if necessary ( one element as well as multiple )
  • supports prefetch event ( plays intro while downloading rest of the files )
  • downloads all necessary files from remote server, stores files in local storage
  • downloads and extracts of widgets into local storage
  • checks for changes in provided SMIL playlist as well as checks for all files linked in SMIL
  • ability to restart on SMIL playlist change
  • supports media scheduling using wallclock definition
  • supports media scheduling using conditional expressions
  • supports playing media loops using repeatCount attribute, possible to combine with wallclock
  • ability to use relative paths to process files, e.g.: src="folder/img.png"
  • triggers and sensors by Nexmosphere
  • keyboard based triggers
  • mouse based triggers
  • synchronization playback and failover content
  • priority playlist = excl and priorityClass tags
  • animated transitions between images and widgets
  • reporting logs using signageOS api
  • web widgets

NOT supported features

  • all videos are running in foreground, now it's not possible to place a widget on top of video at this moment
    Do you need to play a video in backgroundFollow this workaround.

Full SMIL reference table

Element [Attribute] Usage Available from SMIL Applet Version Reference
/smil Main SMIL element v1.0.0 Layout
/smil/head SMIL head section v1.0.0 Layout
/smil/head/layout Screen layout v1.0.0 Layout
/smil/head/layout/root-layout Screen logical resolution v1.0.0 Layout
/smil/head/layout/root-layout [width] Logical resolution of width of the screen, in pixels v1.0.0 Layout
/smil/head/layout/root-layout [height] Logical resolution of height of the screen, in pixels v1.0.0 Layout
/smil/head/layout/region Definition of screen part v1.0.0 Layout
/smil/head/layout/region [xml:id] ID of the screen part v1.0.0 Layout
/smil/head/layout/region [left] Left coordinate of the screen part v1.0.0 Layout
/smil/head/layout/region [top] Top coordinate of the screen part v1.0.0 Layout
/smil/head/layout/region [width] Width of the screen part v1.0.0 Layout
/smil/head/layout/region [height] Height of the screen part v1.0.0 Layout
/smil/head/layout/region [z-index] Z-order (closer if larger) of the screen part v1.0.0 Layout
/smil/head/sensors/ Define available sensors v4.0.0 Sensors
/smil/head/sensors/sensor [type] Sensor type like RFID v4.0.0 Sensors
/smil/head/sensors/sensor [id] Sensor id for reference in triggers v4.0.0 Sensors
/smil/head/sensors/sensor [driver] Sensor driver specific for each sensor manufacturer v4.0.0 Sensors
/smil/head/sensors/sensor/option Sensor custom options required for sensor driver v4.0.0 Sensors
/smil/head/triggers/ Triggers defined for current SMIL playlist v4.0.0 Triggers
/smil/head/triggers/trigger [id] Trigger id for use in begin attribute v4.0.0 Triggers
/smil/head/triggers/trigger [condition] Conditional logic between all defined triggers in the triggers group v4.0.0 Triggers
/smil/head/triggers/trigger/condition [origin] Source of trigger, usually sensor id v4.0.0 Triggers
/smil/head/triggers/trigger/condition [data] Data required/match for trigger to be active v4.0.0 Triggers
/smil/head/triggers/trigger/condition [action] Event on the trigger origin required for trigger to be active v4.0.0 Triggers
/smil/head/trigger/region [z-index] Z-order (closer if larger) of the screen part v1.0.0 Layout
/smil/body SMIL body section v1.0.0 Layout
/smil/body/seq Simple sequential playlist v1.0.0 Sequential playlist <seq>
/smil/body/par Parallel scheduling of playlists v1.0.0 Parallel playlist <par>
/smil/body/excl Grouping of playlists with priority-based exclusive playback v1.0.0 Exclusive playlist <excl>
seq [begin] Begin time/event of the playlist relative to timebase v1.0.0 Sequential playlist <seq>
seq [end] End time/event of the playlist, as offset from sequence start v1.0.0 Sequential playlist <seq>
seq [dur] Duration of the playlist, per single loop v1.0.0 Sequential playlist <seq>
seq [repeatCount] Number of times the playlist is to repeat (also “indefinite”) v1.0.0 Sequential playlist <seq>
seq [repeatDur] Total duration of the repeats (also “indefinite”) v1.0.0 Sequential playlist <seq>
seq/seq Nested sequential schedule v1.0.0 Sequential playlist <seq>
seq/par Sequentially nesting parallel schedules v1.0.0 Sequential playlist <seq>
seq/excl Sequentially nesting exclusive schedules v1.0.0 Sequential playlist <seq>
par [begin] Begin time/event of the parallel schedule relative to timebase v1.0.0 Parallel playlist <par>
par [end] End time/event of the parallel, as offset from parallel start v1.0.0 Parallel playlist <par>
par [dur] Duration of the parallel schedule, per single loop v1.0.0 Parallel playlist <par>
par [repeatCount] Number of times the parallel is to repeat (also “indefinite”) v1.0.0 Parallel playlist <par>
par [repeatDur] Total duration of the repeats (also “indefinite”) v1.0.0 Parallel playlist <par>
par/seq Scheduling of multiple playlists to start simultaneously v1.0.0 Parallel playlist <par>
par/seq [begin(wallclock)] Start sequence on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
par/seq [end(wallclock)] End sequence on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
par/par Scheduling of multiple parallels to start simultaneously v1.0.0 Parallel playlist <par>
par/par [begin(wallclock)] Start parallel on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
par/par [end(wallclock)] End parallel on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
par/excl Scheduling of multiple exclusives to start simultaneously v1.0.0 Parallel playlist <par>
par/excl [begin(wallclock)] Start exclusive on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
par/excl [end(wallclock)] End exclusive on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl [begin] Begin time/event of the exclusive schedule relative to timebase v1.0.0 Exclusive playlist <excl>
excl [end] End time/event of the exclusive, as offset from exclusive start v1.0.0 Exclusive playlist <excl>
excl [dur] Duration of the exclusive schedule, per single loop v1.0.0 Exclusive playlist <excl>
excl [repeatCount] Number of times the exclusive is to repeat (also “indefinite”) v1.0.0 Exclusive playlist <excl>
excl [repeatDur] Total duration of the repeats (also “indefinite”) v1.0.0 Exclusive playlist <excl>
excl/seq Scheduling of multiple playlists to run one at a time v1.0.0 Exclusive playlist <excl>
excl/seq [begin(wallclock)] Start sequence on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl/seq [end(wallclock)] End sequence on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl/par Scheduling of multiple parallels to run one at a time v1.0.0 Exclusive playlist <excl>
excl/par [begin(wallclock)] Start parallel on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl/par [end(wallclock)] End parallel on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl/excl Scheduling of multiple exclusives to run one at a time v1.0.0 Exclusive playlist <excl>
excl/excl [begin(wallclock)] Start exclusive on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl/excl [end(wallclock)] End exclusive on ISO-8601 time (also repeat pattern) v1.0.0 Playback scheduling via WallClock
excl/priorityClass Defining interrupt behavior for an exclusive schedule v1.0.0 Exclusive playlist <excl>
excl/priorityClass [peers] “stop”, “pause”, “defer”, or “never” to interrupt peers in class v1.0.0 Exclusive playlist <excl>
excl/priorityClass [higher] “stop” or “pause” to interrupt higher priority class v1.0.0 Exclusive playlist <excl>
excl/priorityClass [lower] “defer” or “never” to interrupt lower priority class v1.0.0 Exclusive playlist <excl>
(seq,par,excl)/video Video media item v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [ref] URL pointing to media item v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [region] Screen part to play v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [begin] Begin time to start play media item, relative to timebase v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [end] End time of media item, relative to media item start v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [dur] Duration of media item v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [repeatCount] Number of times to repeat media item (also “indefinite”) v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/video [repeatDur] Total duration to repeat media item (also “indefinite”) v1.0.0 Media Objects - videos, images, HTML5
par/video [begin(wallclock)] Begin playback at specified wallclock time v1.0.0 Playback scheduling via WallClock
par/video [end(wallclock)] End playback at specified wallclock time v1.0.0 Playback scheduling via WallClock
excl/video [begin(wallclock)] Begin playback at specified wallclock time, interrupt peers v1.0.0 Playback scheduling via WallClock
excl/video [end(wallclock)] End playback at specified wallclock time, resume peers v1.0.0 Playback scheduling via WallClock
(seq,par,excl)/img Still image media item v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [ref] URL pointing to media item v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [region] Screen part to play v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [begin] Begin time to start play media item, relative to timebase v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [end] End time of media item, relative to media item start v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [dur] Duration of media item v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [repeatCount] Number of times to repeat media item (also “indefinite”) v1.0.0 Media Objects - videos, images, HTML5
(seq,par,excl)/img [repeatDur] Total duration to repeat media item (also “indefinite”) v1.0.0 Media Objects - videos, images, HTML5
par/img [begin(wallclock)] Begin playback at specified wallclock time v1.0.0 Playback scheduling via WallClock
par/img [end(wallclock)] End playback at specified wallclock time v1.0.0 Playback scheduling via WallClock
excl/img [begin(wallclock)] Begin playback at specified wallclock time, interrupt peers v1.0.0 Playback scheduling via WallClock
excl/img [end(wallclock)] End playback at specified wallclock time, resume peers v1.0.0 Playback scheduling via WallClock
(seq,par,excl)/audio Audio media item Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [ref] URL pointing to media item Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [region] Screen part to play Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [begin] Begin time to start play media item, relative to timebase Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [end] End time of media item, relative to media item start Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [dur] Duration of media item Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [repeatCount] Number of times to repeat media item (also “indefinite”) Not supported Media Objects - videos, images, HTML5
(seq,par,excl)/audio [repeatDur] Total duration to repeat media item (also “indefinite”) Not supported Media Objects - videos, images, HTML5
par/audio [begin(wallclock)] Begin playback at specified wallclock time Not supported Playback scheduling via WallClock
par/audio [end(wallclock)] End playback at specified wallclock time Not supported Playback scheduling via WallClock
excl/audio [begin(wallclock)] Begin playback at specified wallclock time, interrupt peers Not supported Playback scheduling via WallClock
excl/audio [end(wallclock)] End playback at specified wallclock time, resume peers Not supported Playback scheduling via WallClock
Was this article helpful?
0 out of 0 found this helpful
Share