Best practice in pre-editing

CINELERRA-GG supports the simultaneous presence in the Timeline of sources with different frame sizes and frame rates. However, audio/video synchronization problems may occur due to their different timing.1Plugins that rely on the timing of each frame, for example Motion and Interpolate plugins, may have problems when used at the same time with engines which increase frame rate. Frame rate per definition cannot be increased without either duplicating some frames or generating them in some intelligent way. But to work reliably, the Motion plugin requires access to all actual frames. These kinds of plugins (and also the rare cases of audio/video desync) explicitly require the Play every frame option.

There is no problem as long as the source fps, project fps, and destination fps are identical. In most cases, high frame rates such as 120 or 144 or any fps, will be just fine for Motion provided that source footage all has the same frame rate.

But when project and source frame rates are different (or project and rendered fps), then the CINELERRA-GG engine has to either duplicate (interpolate) some frames or throw some away. Because of this, the audio tracks and the timeline get out of sync with such accelerated (or slowed down) video. And to make Motion plugins reliably calculate interframe changes, you have to ensure the consistent frame numbers and frame properties.

Generally, best practice is to perform the following sequence of preparations for video editing.

  1. Motion stabilization, and maybe some other preparations, to improve the quality of the source video is best done under the properties identical to the properties of the original video; it may be different codec, but same frame size and same frame rate. For stabilization you can use ffmpeg command line plugins called vidstabdetect and vidstabtransform.
  2. To have a workflow at the highest quality it may be convenient to convert the sources into image sequences (e.g. OpenEXR). Especially if we want to exchange files with other Color or Compositimg programs that preferably use image sequences.
  3. Uniform the color models. It is convenient to unify the color models of the sources because they would give different and inconsistent results with each other once displayed in the Compositor window.
  4. If we intend to do some color correction or compositing with VFX, it is convenient to do some de-noising on the sources to make their pixels more homogeneous and suitable for post processing. De-noising is a heavy operation for the system so it may be convenient to do it in pre-editing.
  5. If you need to alter the frame rate, for example because different source clips have different frame rates, then recode all the necessary clips to the same future project frame rate. Here frame sizes can still have different sizes, but frame rates should be all the same. If you need to change frame rate of some restricted part, particularly when smooth acceleration/deceleration is needed, it can be done in timeline. But if frame rate has to be changed only due to different source fps, it is better to do it during the preparation stage.

CINELERRA-GG does not have color management , but we can still give some general advice on how to set color spaces:

  1. Profiling and setting the monitor:
    source: sRGB monitor: sRGB (we get a correct color reproduction)
    source: sRGB monitor: rec709 (we get slightly dark colors)
    source: sRGB monitor: DCI-P3 (we get over-saturated colors)

    source: rec709 monitor: rec709 (we get a correct color reproduction)
    source: rec709 monitor: sRGB (we get slightly faded colors)
    source: rec709 monitor: DCI-P3 (we get over-saturated colors)

  2. It would be better to set the project as RGB(A)-FLOAT, allowing system performance, because it collects all available data and does not make rounding errors. If we can't afford it, starting from YUV type media it is better to set the project as YUV(A)8, so as not to have a darker rendering in the timeline. On the contrary, if we start from RGB signals, it is better to use RGB(A)8. If we don't display correctly on the timeline, we'll make adjustments from the wrong base (metamerism) and get false results.
  3. Having correct color representation in the Compositor can be complicated. You can convert the imput YUV color range to a new YUV color range that provides more correct results (i.e. MPEG to JPEG). The Colorspace plugin can be used for this conversion.
  4. Among the rendering options always set the values
    color_trc=... (gamma correction)
    color_primaries=... (gamut)
    colorspace=... (color spaces conversion, more depth-color);
    colormatrix=... (color spaces conversion, faster).

    These are only metadata that do not affect rendering but when the file is read by a player later they are used to reproduce the colors without errors.

For more tips on how CINELERRA-GG processes colors on the timeline see Color Space and Color Range Affecting Playback, Automatic "Best Model" Media Load and Overview on Color Management.


... timing.1
credit to sge and Andrew Randrianasulu
The CINELERRA-GG Community, 2021