[0.11] gst-editing-services: docs/design: Add section on compositing and mixing

Edward Hervey bilboed at kemper.freedesktop.org
Tue Oct 11 01:12:32 PDT 2011


Module: gst-editing-services
Branch: 0.11
Commit: cd82ce8123ffdf8e59a0a4a35d78028244eba014
URL:    http://cgit.freedesktop.org/gstreamer/gst-editing-services/commit/?id=cd82ce8123ffdf8e59a0a4a35d78028244eba014

Author: Edward Hervey <edward.hervey at collabora.co.uk>
Date:   Mon Aug 29 11:47:01 2011 +0200

docs/design: Add section on compositing and mixing

---

 docs/random/design |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 117 insertions(+), 0 deletions(-)

diff --git a/docs/random/design b/docs/random/design
index 0c2958d..bca6be1 100644
--- a/docs/random/design
+++ b/docs/random/design
@@ -17,6 +17,23 @@ FUNDAMENTAL GOALS:
  ones.
 
 
+FEATURES
+
+Index of features:
+
+ * Project file load/save support (GESFormatter)
+ * Grouping/Linking of Multiple TrackObjects
+ * Selection support (Extension from Grouping/Linking)
+ * Effects support
+ * Source Material object
+ * Proxy support
+ * Editing modes (Ripple/Roll/Slip/Slide)
+ * Coherent handling of Content in different formats
+ * Media Asset Management integration
+ * Templates
+ * Plugin system
+
+
 * Project file load/save support (GESFormatter)
 
   Status:
@@ -103,6 +120,7 @@ FUNDAMENTAL GOALS:
   We must be able to configure effects through time -> Keyframes
   without duplicating code from GStreamer.
 
+
 * Source Material object
 
   Problems:
@@ -207,6 +225,9 @@ FUNDAMENTAL GOALS:
         aspect ratio of 4:3, we will make the width of the two videos
         be equal without distorting their respective aspect-ratios.
 
+  See also:
+   Video compositing and audio mixing
+
 * Media Asset Management integration
 
   (Track, Search, Browse, Push content) TBD
@@ -239,3 +260,99 @@ FUNDAMENTAL GOALS:
 
   Use a registry system similar to GStreamer.
 
+
+* Video compositing and audio mixing
+
+  Problems:
+   Editing requires not only a linear combination of cuts and
+   sequences, but also mixing various content/effect at the same
+   time.
+
+   Audio and Video compositing/mixing requires having a set of base
+   properties for all sources that indicate their positioning in the
+   final composition.
+
+   Audio properties
+    * Volume
+    * Panning (or more generally positioning for multi-channel).
+
+   Video properties
+    * Z-layer (implicit through priority property)
+    * X,Y position
+    * Vertical and Horizontal scaling
+    * Global Alpha (see note below about alpha).
+
+   A big problem with compositing/mixing is handling positioning that
+   could change due to different input/output format AND avoiding any
+   quality loss.
+
+   Example 1 (video position and scale/aspect-ratio changes):
+    A user puts a 32x24 logo video at position 10,10 on a 1280x720
+    video. Later on the user decides to render the timeline to a
+    different resolution (like 1920x1080) or aspect ratio (4:3 instead
+    of 16:9).
+    The overlayed logo should stay at the same relative position
+    regardless of the output format.
+
+   Example 2 (video scaling):
+    A user decides to overlay a video logo which is originally a
+    320x240 video by scaling it down to 32x24 on top of a 1280x720
+    video. Later on the user decides to render a 1920x1080 version of
+    the timeline.
+    The resulting rendered 1920x1080 video shall have the overlay
+    video located at the exact relative position and using a 64x48
+    downscale of the original overlay video (i.e. avoiding a
+    640x480=>32x24=>64x48 double-scaling).
+
+   Example 3 (audio volume):
+    A user adjusts the commentary audio track and the soundtrack audio
+    track based on the volume of the various videos playing. Later on
+    the user wants to adjust the overall audio volume in order for the
+    final output to conform to a target RMS/peak volume.
+    The resulting relative volumes of each track should be the same
+    WITHOUT any extra loss of audio quality (i.e. avoiding a
+    downscale/upscale lossy volume conversion cycle).
+
+   Example 4 (audio positioning):
+    A user adjusts the relative panning/positioning of the commentary,
+    soundtrack and sequence for a 5.1 mixing. Later on he decides to
+    make a 7.1 and a stereo rendering.
+    The resulting relative positioning should be kept as much as
+    possible (left/right downmix and re-positioning for extra 2
+    channels in the case of 7.1 upmixing) WITHOUT any extra loss in
+    quality.
+
+  Add a set of extensible properties to the base source classes
+  relative to compositing and mixing.
+
+  The properties values can be both set/stored as 'relative' values
+  and as 'absolute' values in order to handle any input/output formats
+  or setting.
+
+  Objects that are linked/grouped with others have their properties
+  move in sync with each other. (Ex: If an overlay logo is locked to a
+  video, it will scale/move/be-transparent in sync with the video on
+  which it is overlayed).
+
+  Objects that are not linked/grouped to other objects have their
+  properties move in sync with the target format. If the target format
+  changes, all object positioning will change relatively to that
+  format.
+
+  Add {audio|video}mixer elements in the Tracks where applicable, and
+  take into account input/output formats and relative values to apply
+  the most efficient processing.
+
+  See also:
+   Coherent handling of Content in different formats
+
+* Handling of alpha video (i.e. transparency)
+
+  Problem:
+   Some streams will contain partial transparency (overlay
+   logos/videos, bluescreen, ...).
+
+   Those streams need to be handle-able by the user just like
+   non-alpha videos.
+
+  
\ No newline at end of file



More information about the gstreamer-commits mailing list