Reworked at Froscon 2012
This commit is contained in:
parent
799a418bbe
commit
fdb78f10f6
1 changed files with 106 additions and 74 deletions
180
doc/user/intro/intro.txt
Normal file → Executable file
180
doc/user/intro/intro.txt
Normal file → Executable 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?
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue