HUMA system: Manual under Construction Embedded movies and runtime SMIL import

Introduction

Embedded (or child) movies (and their creation at runtime) offer numerous interesting possibilities in terms of further breaking up the timeline bound principles of video and also allow you to externally and remotely modify HUMAmovies before and while they are being displayed. Embedded movies are also the key to integrating streaming media and broadcasts into a HUMAproject. Besides that they can help save time and improve workflow during production.



The basic principle of embedded movies is simple: A piece of media in the HUMAmovie acts as a specimen for another (or multiple others), that is actually loaded on demand. While HUMA widely works with media that is situated in referenced files, embedded movies go some steps further. The external media file that is called by an embedded movie segment is completely independent from the HUMAmovie, which frankly knows nothing about it but where to find the file. Usual media references are stricter. Information on the character of the referenced media is present in the project movie; you can not just change the referenced file without telling the project movie about it - with embedded movies you can. Furtheron embedded movies can themselves consist of multiple streams of media - video, sound, text etc. - and may still be represented by a single embedded movie segment.


Child movies have their own sense of time, that is: they can act completely independent from the project movie's main timeline. HUMA gives you control over a wide range of child movie attributes, both at authoring as during runtime. You can dynamically load sourcefiles into a child movie segment, control its pitch or time position (scratch it) and even assign links to its extremes. Multiple child movies can be on stage and active at the same time. You can use embedded movie segments as any other visual media to define scenes with

Beside the mentioned options that enable the creation of parallel timelines or allow for timeline independent interaction with parts of the stage area, child movies also enable you to change your media without having to work on the project movie. Oportunities are plenty: remote updates, dynamic creation and modification of content incorporating external intelligent (...database, cms...) or less intelligent (...like a webcam supplying background pictures...) devices, modifying content in several project movies that embed the same external movie at once, etc. etc.

To create a child movie segment choose Media->embedded movie-> from media. The screen on the left will appear. Now select files to display inside the segment to create via the buttons on the top left side. The first two are for standard files (either single or folderwise), while the third pops up a textfield to enter the url of an rtsp stream to display in the segment. The trashcan removes a selected entry from the list. Only one of the files listed will play at a time, but you can later on switch between the movies listed here by means of actions When done, set the general attributes (playrules & appearance) which will apply for everything that plays inside the segment. Finally press apply. The full URLs in the list will change to the form shown above ("->+filename") and the elements on the bottom (ChildMovieControls) will be enabled. All the entries are editable. Change what you want to change and press apply again

Embedded movies that fail to load during runtime (the network might be down or something like this), will not entirely break the application. Instead you will see a red X on white ground and an error message.
A HUMAmovie can contain multiple embedded movies and you can use them to define scenes with or put them into scenes defined by other segments. Embedded movies can be separately controlled (creating multiple independent time systems) and the movie that actually plays in the embedded movie segment can be exchanged during runtime.


SMIL import

Another approach to create embedded movies is by pointing to a kind of layout description that combines multiple pieces of media to one image, and then display that within embedded movie segments
Said layout description is supplied in form of a .smil file and can be imported both during production in the HUMAtagger or "live" at runtime.
SMIL stands for Syncronized Multimedia Integration Language and is a W3 standard. In its character and syntax it is kind of a mix of html amd vrml. It's easy to understand and - as it is pure text - easy to automatically generate. SMIL is a descriptive language: As in HTML you got tags that describe to the SMIL Interpreter how to layout and display pieces of media both spatially and timewise. Most of today's popular rich media players (RealPlayer, Quicktime Player....) are capable of interpreting smil in some way. There are free SMIL generators and tons of indepth information on the subject on the internet. Please refer to that in case of ongoing interest. Here's a starting point: Synchronized Multimedia Integration Language (SMIL) 2.0 Specification


To import smil into the Tagger select "media->embedded movie->from smil". An embedded movie segment will be created for each piece of media referenced in the smil composition + 1 video segment for the background color if specified. You may change the referenced files later on, but you will not be able to modify the composition.
When you want to import the smil composition at runtime - so it remains modifyable - you embed the smil file as scene media. It will not make up segments in the Tagger. Create a new scene, arm it's media asignment fields and select "runtime SMIL imp. " from the media menu. Enter the URL of the smil file into the upcoming textbox and click ok. The scene will then appear as shown above and the scene title field will show the URL. You can use the title field to change the URL later, do not use it to name your scene, as the name will then be taken for the URL...

Both absolute and relative URLs can be used in the Tagger and in the smil file itself.

For further investigation of the subject please refer to the smilDemo_HUMA project. All .smil and external textfiles are supplied.

Cursors are not yet supported for runtime created smil scenes.