Extension:Sequencer

The sequencer component being developed in open source collaboration with kaltura. The sequencer uses the mv_embed library for core playback. The sequencer comprises of a few major components they are described below: The SMIL like sequence description language will facilitate a transition to native SMIL when / if native SMIL becomes available in the browsers.

Also see Media Projects Overview

Sequence Interface Components
The top level interface includes 3 major components: -- |               |               | | video tools    |  video player | |               |               | |-- |  video timeline                | ---

Video Player
This player extends the same MV_embed player used for single clip embeds. It adds in some abstractions to help deal with multiple clips.

Video Tools
The video tools include several sub components:
 * clipedit the "Edit Selected Resource" menu item includes several sub menus
 * set in out points lets you adjust the in and out points of the selected clip.
 * clip details lets you edit the clip details. Especially useful for included templates that contain parameterised items.
 * pan zoom crop lets you set the zoom and crop of the video or image. Also should let you set "key frames" for easy "ken burns" like effects / documentaries ;)
 * overlays will manage the text overlay effects. Will hook into the same image editing tool-set that we use for inline figure editing and image touch up. Will be described with the same XML.
 * audio control will facilitate per clip audio controls. (also should support multitrack editing views)
 * Add Resource hooks into the Add Media Wizard for importing assets from remote repositories and uploading content.
 * Transition Effects a tool for quick and easy transitions between video clips.
 * options lets you set change your global settings like switch the timeline view mode or disable context menus (so you can right click on things)

Video Timeline
The sequencer supports both storybook mode and timeline mode The video timeline supports both story book view (like imovie) and edit timeline view ( like avid or final cut pro). The timeline has many functions:
 * re-arange clips the timeline supports basic drag and droping to re-organize clips in the timeline.
 * multi clip select The timeline lets you select multiple clips at once holding ctrl or selects all the clips in between two clips when your holding shift.
 * you can copy, paste, cut & delete selected clips.
 * Shared clipboard If clips are copied or cut they enter into a shared clipboard. You can then paste them into another sequence in a separate tab.
 * drag and drop clip resizing is supported in the timeline view.

Sequence Formats
The sequencer supports a few different formats to describe a given sequence.
 * itunes video RSS Also known as the podcast format or video rss. The playlist library includes a quick xml parser for this format. It does not support any fancy features just a sequence of clips and associated text/html descriptions.
 * xspf playlists the official xiph playlist format. Again not many features just a sequence of clips.
 * reduced SMIL this format drives more advanced functionality of the video editor. All video editing operations "save out" to this format. This format is what is "saved" in the wiki. It contains helper components like the wiki titles of given resources.

Transitions & Effects
Presently transition and effects is pretty much skeleton code. The important part about the transitions/effects implementation is that they are driven by the underling timing of the assets. So if your video pause to buffer the transition pauses with it. Likewise effects or transitions for arbitrary time in the video can be requested.

Reduced SMIL format
See the HLRD RSMIL (High Level Resource Description, Reduced SMIL (Synchronized Multimedia Integration Language) ) Specification page.

Sequence Flatterer
The sequence flatterer component renders the sequence out to disk. Its dependent on the firefogg extension for rendering the sequences of images to a logical video stream.

Mozilla Dependency Tracking
This section tracks a few Mozilla bugs that are critical for sequencer functionality. We link to the bugs and describe a possible workaround where possible.


 * Support frame accurate seeking and display bug 481213. Without this bug resolved its difficult to get frame accurate video serving.
 * workaround we may be able to frame serve by issuing pause on a controlled interval. But accurate frame serving would be much more ideal.
 * Reuse buffer for identical assets and across page loads mostly identified in bug 476371. This would greatly improve the quality of experience letting us reuse the cached assets instead of reloading every asset every time the sequence is viewed.
 * Support oggz_chop content header. First we need to get oggz_chop to send out content-length header. We need this to do accurate buffering indication of segments of assets. Also when viewing a clip hosted in an oggz_chop supported server we should do time seeks instead of byte offset range guesses. Content-Length(bug 454) X-Content-Duration(bug 455)