Reworked at Froscon 2012

This commit is contained in:
Benny Lyons 2012-08-26 16:49:58 +01:00
parent 799a418bbe
commit fdb78f10f6

180
doc/user/intro/intro.txt Normal file → Executable file
View file

@ -2,32 +2,33 @@ Lumiera (as seen) from Outer Space
================================== ==================================
:Author: Lumiera_Core_Developers :Author: Lumiera_Core_Developers
:Date: Summer 2010 :Date: Summer 2010
[abstract] [abstract]
****************************************************************************** ******************************************************************************
The Lumiera Community creates a non linear video editing and compositing FOSS The Lumiera Community is in the process of making a non-linear video editing
application for Linux/Unix/Posix Operating Systems, suitable for professional and compositing FOSS application for Linux/Unix/Posix Operating Systems. The
and quality oriented work, building on common open source video, sound and GUI application is geared towards professional, high-quality work; but
toolkits and libraries, providing flexibility and a high degree of it is equally suitable for low-end users, due to its in-design scalability.
configurability and full control of all parameters, but at the same time a Lumiera builds on common open source video, sound and GUI toolkits and
smooth workflow which scales well to larger and more complicated editing libraries, being highly flexibile, configurable---user-control over a broad
projects. This Document outlines the Design from some distance, spectrum of configurable parameters---and with smoth workflows that scale well
helping people to understand the Ideas behind Lumiera and understand the tools to larger more intricate projects as and more smaller projects.
they get to work with. It is aimed for workflow designers any anyone who wants
to know how the program works in general. This document outlines the design from a more general perspective,
providing potential users with sufficient insight into the tools and technology
behind Lumiera to get started working with Lumiera quickly.
****************************************************************************** ******************************************************************************
// all things starting with '//' are asciidoc comments and drafts/notes while // all things starting with '//' are asciidoc comments and drafts/notes while
// working on this document // working on this document
.About this Document .About this Document
This document is meant to be read electronically, it contains a lot // It contains many hyper-links to explanations which are denoted by an arrow ->.
hyper-links between explanations denoted by an arrow ->. Lumiera is still in Lumiera is still under active development. Here we describe planned features
development, we describe here planned features without explicitly tagging them; without explicitly tagging them; some points have still to be worked out in
some things are not worked out in detail yet. Although this document is heavily detail. Although this document is heavily cross-linked, we try to start with a
cross-linked we try to start with a broad overview and work out more detailed broad overview and developing details towards the end.
things towards the end.
Vision Vision
@ -35,41 +36,48 @@ Vision
// objective and goals of the project // objective and goals of the project
Lumiera claims to be a _professional non-linear video editor_. To start with, we should Lumiera strives towards being a _professional non-linear video editor_. To start with, we should
point out that ``professional'' does not necessarily mean ``commercial'' or ``industrial''. point out that ``professional'' does not necessarily mean ``commercial'' or ``industrial''.
It's more of an attitude or mindset -- doing work seriously, and to be subject to any It's more of an attitude or frame of mind -- doing work seriously, and to be subject to any
kind of wider goal, demand, or purpose. When it comes to editing film, this might be kind of wider goal, demand, or purpose.
artistry, a narration or meaning to convey, a political message or something to show
to your audience. Anyhow, for the tools, the editing software used to this end, The concept of professionality in film editing can mean something of an artistic
we can identify several properties and requirements, to be labeled ``professional'': nature, a narrative or having a meaning to convey, a political message, or
portray something to an audience.
Anyhow, for the tools, the editing software used to this end, we can identify
several properties and requirements, to be labeled ``professional'':
With this perspective in mind, we can identify a number of key properties
of professional film production tools:
Reliability:: Reliability::
Whatever happens, your work must be safe, protected against software Your work must be safe and protected at all costs against software
glitches and incompatibilities. Ideally Lumiera should be very stable and glitches and incompatibilities. Ideally, Lumiera should be reliable,
never crash, in practice even crashes or power outages should not very stable and not crash. In practice, even crashes or power outages
result in lost work. should not result in data or work loss..
Quality:: Quality::
If you work with high quality, cinema grade digital video material you The demands placed on high-quality, cinema grade digital video material
want to be sure that you can deliver crisp quality without compromise, requires crisp-quality without any compromsise throught the entire work
throughout the whole workflow to your final product. All rendering flow in the final product. All rendering will have to be reproducable
must be reproducible to the bit. down to the last digit.
Performance and Productivity:: Performance and Productivity::
Professionals want to get things done, in time, but optionally with control Professionals want to get things done, in time and content, but ideally
over every aspect. Balancing these goals should be the central concern for with control over all details. The fine balance of these goals is a
workflow design and usability. central goal of workflow design and usability.
Scalability and Adaptability:: Scalability and Adaptability::
Projects and budgets differ, hardware advances, Lumiera must scale Projects and budgets differ, hardware advances, Lumiera must scale
in different dimensions and use the available resources as best as it in different dimensions and use available resources as best it
can. From small Laptops to multi core computers and Renderfarms. can. From small Laptops to multi core computers and Renderfarms.
Durability:: Durability::
Soft and Hardware advances at a fast pace. We must not lock into the Soft and Hardware advances at a fast pace. We must not lock into the
current state of technology but being flexible to extend the System current state of technology but must be flexible enough to extend the
without breaking compatibility. Projects you create nowadays with system without breaking compatibility. Projects you create nowadays with
Lumiera should be usable in foreseeable future, at least there needs Lumiera should be usable in the foreseeable future, there at least needs
to be a guaranteed upgrade path. to be a guaranteed upgrade path.
@ -137,24 +145,24 @@ final video.
Pulling not Pushing Pulling not Pushing
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
On a first glance, it looks fairly natural to set up the graphs xref:graphs[->] At a first glance, it looks fairly natural to set up the graphs xref:graphs[->]
as described above and then push data into the system through the input nodes as described above and then push data into the system through the input nodes
whereas the final result can then be seen soon on the output node. Several whereas the final result can then be seen soon on the output node. Several
multimedia frameworks use this approach. But it has a lot of shortcomings multimedia frameworks use this approach. However this scheme exhibits a number
which make it inappropriate for non-linear video editing. of shortcomings which make it inappropriate for non-linear video editing.
Lumiera instead pulls data though the pipe, that is a request starts at the Lumiera instead pulls data though the pipe, i.e., a request starts at the
output node and makes it way up to the inputs. This has certain advantages output node and makes its way up to the inputs. This has certain advantages
xref:pull[->], explained later. xref:pull[->], which will be explained later.
Don't waste work Don't waste work
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
Rendering A/V Data can be quite CPU intensive, to ensure that we do not waste Rendering A/V Data can be quite CPU intensive. To ensure that we do not waste
CPU power by rendering things twice, or the worse, have to throw results away any CPU power by rendering things twice, or worse still, having to throw away
because they couldn't be rendered in time, we use sophisticated caching results because it couldn't rendered in time, we use in Lumiera sophisticated
xref:caching[->] and profiling xref:profiling[->]. caching xref:caching[->] and profiling xref:profiling[->].
The visible Universe The visible Universe
@ -180,18 +188,14 @@ xref:screenconcept[->] to adapt to different workplaces and workflows.
Viewer Viewer
~~~~~~ ~~~~~~
[red]#to be written#
// only one viewer type used for everything
// how is audio integrated in the viewer
// effects may add overlays (masking/rotoscoping, information for example)
// these may be manipulateable in the viewer, but not part of the rendered
// video. Maybe effects can add widgets to the viewer too (how, where?)
// one can open as many viewers he needs
// these can be attached everyhere in the processing graph (pre/post effect)
// have bus in front to adapt output format
// detachable window, fullscreen, external screen
The viewer is an area where material can be displayed, i.e., ``play-back'',
which also supports audio playback connections. As there are many sources that
can be displayed, a viewer is attached to a source via the viewer switch board.
Timelines, probepoints, wiretaps and individual clips are examlpes of sources
that can be atached to a viewer. Moreover, the number of viewers open at any one
time is only limited by the hardware, and each viewer can be collapsed, hooked
up to a beamer or monitor.
Transport Controls Transport Controls
@ -222,13 +226,26 @@ no magic here.
Timeline View Timeline View
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
hierarchical tracks, not just a list A timeline is a container that provides a time axis and an output. The output
can de derived from various sources and have different configurations. An
output can have various configurations, for each output configuration, there
will be one timeline. A timeline does not temporally arrange material, this is
performed by a sequence, which can be snapped to a timeline.
Format Independent Timeline, one can put anything on the timeline. A typical film will define many sequences, but only a few timelines. A sequence
the busses constrain what kind of data is pulled out and in turn the contains a number of tracks which are ordered in a hierarchy. Tracs do not have
builder creates a processing graph which does the necessary conversions and any format associated with them and more or less anything can be put into a
stuff. track. Consequently, audio and video material can be equally assigned to a
track, there is no discrimination between audio and video in the Lumiera concept
of a track.
A timeline must be assigned to viewer if playback viewing is desired.
//Format Independent Timeline, one can put anything on the timeline.
//the busses constrain what kind of data is pulled out and in turn the
//builder creates a processing graph which does the necessary conversions and
//stuff.
//
// Q: how to handle interaction, for example when some conversion can only be // Q: how to handle interaction, for example when some conversion can only be
// done in a lossy way and some conversion node may or may not be inserted // done in a lossy way and some conversion node may or may not be inserted
// (i mean gui wise)? // (i mean gui wise)?
@ -246,19 +263,30 @@ stuff.
Busses Busses
~~~~~~ ~~~~~~
The GUI provides a separate _bus view_, showing the master busses (subgroups) The GUI provides a separate _bus view_, showing the master busses (subgroups)
in a manner similar to an audio mixing desk. Any bus is just a means to collect in a manner similar to an audio mixing desk. Any bus is just a means of collecting
and sum up the output of a specific kind of media (video, audio, number of channels), and and adding (aka overlaying) together the output of various kinds of media
produced by various processing elements and other busses. Conceptionally, these global (video, audio, number of channels), produced by various processing elements and
busses are considered a part of the timeline from other busses. These global busses can be concieved as being part of the
timeline.
Asset View Asset View
~~~~~~~~~~ ~~~~~~~~~~
We can conceive the Asset View as the timeline's book keeper: it manages the various
constituent in the timeline. Moreover, in addition to managing timeline
constituents, raw material, clips, bins (folders) are managed by the Asset
View, i.e., typical management operations including, deleting, adding,
naming, tagging, groupping into bins, etc. all occur here.
Plugins are also managed in the Asset View.
Manages all assets available in one project. Manages all assets available in one project.
* source media/footage/soundfiles * source media/footage/soundfiles
* prepared clips, known subprojects
* all available effects and transitions * all available effects and transitions
* internal artefacts like sequences and automation data sets * internal artefacts like sequences and automation data sets
@ -285,18 +313,20 @@ Manages all assets available in one project.
Dark Matter Dark Matter
----------- -----------
[red]#to be written# The material in this section provides a cursory view of features not required by
coarse overview about things the user does not see but have some contact a typical user, but of more importance to people loking under the hod, i.e.,
with, details later... programers, etc.
Now lets take a look under the hood.
Session storage Session storage
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
[red]#to be written# [red]#to be written#
//databank with logging, no data loss.
// not generateable data // not generateable data
// its the timeline mostly // its the timeline mostly
@ -406,6 +436,8 @@ and only provide limited functionality without any plug-ins.
Lumiera will not reinvent the wheel. One major goal is to provide considerable Lumiera will not reinvent the wheel. One major goal is to provide considerable
functionality via well-designed, external code supplied to Lumiera by plug-ins. functionality via well-designed, external code supplied to Lumiera by plug-ins.
How are Plugins Implemented?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^