User Tools

Site Tools


doc:appunti:linux:video:olive_editor_tools

Olive Video Editor Tools

Olive Video Editor Tools This is an overview of the tools available in Olive Video Editor version 0.2.0-55eedbfc (Sep 24 2023 1:40:23 PM).

Olive is a free and open-source cross-platform video editing application for Linux, Windows and macOS. It is currently in alpha. It is released under GNU General Public License version 3. It is written in C++ and uses Qt for its graphical user interface, FFmpeg for its multimedia functions, OpenImageIO library, OpenColorIO for color management and CMake build system for configuring.

The home page of the project is at www.olivevideoeditor.org, you can download the source code from the GitHub repository.

Here it is a quick reference of the tools available in Olive; if you don't see the tools window in the user interface, enable it from the menu WindowTools.

The Olive Tools

Pointer Pointer Punta e seleziona una clip.
Track Select Track Select Punta e seleziona una clip con tutte le successive nella sequenza.
Edit Edit
Ripple Ripple Allunga o accorcia una clip alle sue estremità modificando la durata totale della traccia. Eventualmente inserisce del blank se si eccede la lunghezza della clip.
Rolling Rolling Sposta il punto di contatto tra due clip allungando la prima e accorciando la successiva o viceversa; in tal modo la durata totale della traccia resta invariata.
Razor Razor Taglia una clip in due parti.
Slip Slip Scorre il contenuto di una clip mantenendo invariata la lunghezza e la posizione della clip stessa nella timeline. L'effetto si applica a tutte le clip selezionate.
Slide Slide Sposta una clip lungo la timeline mantenendo invariata la lunghezza della clip stessa e della traccia. La clip precedente e quella successiva vengono allungate o accorciate secondo necessità. L'effetto si applica a tutte le clip selezionate.
Hand Hand Consente di effettuare il pan sulla timeline quando la sequenza è mostrata solo parzialmente. La posizione e la lunghezza delle clip non vengono alterate. In alternativa è possibile usare Mouse Wheel sulla timeline.
Zoom Zoom Con questo strumento è possibile selezionare con il mouse la zona della timeline su cui effettuare lo zoom-in. In alternativa è possibile usare Ctrl+Mouse Wheel per effettuare zoon-in/out sulla timeline stessa.
Record Record Consente di registrare una clip audio. La traccia audio su cui viene creata la clip e il punto di inizio vengono scelti con un click del puntatore.
Transition Transition Per aggiungere un effetto di transizione nel punto di contatto fra due clip diverse. È possibile aggiungere un Cross Dissolve oppure un Dip To Color.
Add Add Aggiunge una clip con effetti video vari: Empty, Bars, Shape, Solid, Title, Tone, Subtitle.
Toggle Snapping Toggle Snapping Abilita o disabilita l'effetto calamita all'estremità delle clip. L'effetto si applica all'inizio e alla fine della clip rispetto all'inizio e alla fine delle altre clip nella timeline, alla playhead, ai marker.

Export Media

:!: WARNING: It seems that the Export media dialog box does not fully support the handling of presets: when you save and re-load a preset, not all the settings are restored (checked with Olive 0.2.0-55eedbfc). So it is best to check every settings before doing the final video export.

I have the habit to make two exports of a video work: an high quality one to be used as the master for subsequent processing and a normal quality one for watching on a consumer grade player. In both cases I use the H.264 video codec at the moment, due to its wide acceptance and the maturity of the ffmpeg libx264 codec.

Ideally the master should be composed by the original clips without re-encoding them. I was able to obtain this result only with a complicated command line recipe, using ffmpeg. That recipe requires that all the source videos are in the same resolution, FPS and format. Using ffmpeg it is possibile to cut the clips to be assembled at exact keyframes boundaries, and concatenate them into the final master without re-encoding.

This lossless procedure is not possibile with Olive Video Editor, because generally you cut each clip regardless the keyframes, you may mix sources with different resolutions, FPS, etc. and you may apply video transformations. So exporting a video with Olive Editor necessarily involves re-encoding it.

High Quality export

For the high quality video export I use the constant quality mode of the libx264 codec. This is activated by the -crf ffmpeg option which accept a numeric parameter for the quality: lower numbers means higher quality!

Read the H.264 documentation page and check the following table:

0 Almost lossless.
18 Visually lossless or nearly so.
21 Should look the same at whatever preset you are running.
23 The default value.
51 The worst possible.

So I opted for this Olive Editor export settings:

Export Video
Format Matroska Video
Width x Height 1920×1080
Quality Full-Float (32-bit) (1)
Codec H.264
Encode Speed Very Slow (2)
Compression Method Constant Rate Factor
CRF value 18
Pixel Format yuv420p (4)
YUV Color Range Full (0-255)
Color Space Rec.709 OETF (5)

Using this presets you cannot predict the bitrate used by the video, because it will be determined by the complexity of the scene to be encoded. Neverthless I expect something like 23 Mbps (10 Gb per hour) when exporting a video from clips recorded with an Insta360 action cam, set at the resolution of 1920×1080@30 and 40.0 Mbps quality.

Olive Video Editor uses ffmpeg to make the video export, but unfortunately it does not allow to take control of the options passed to ffmpeg (see issue #754). As an example I would have liked to pass a keyint=8 option to the libx264 codec, to get a video with a keyframe every 8 frames. This would have made the master more suitable to do further video editing, e.g. cutting clips without re-encoding. The exported video obtained with the above settings have instead keyframes at variable intervals, up to 8 seconds long.

Normal Quality export

:!: NOTICE: Because Olive Video Editor does not allow you to exactly control the ffmpeg options used for video exporting, you may prefer to make the normal quality copy from from the high quality master (produced as explained above) using ffmpeg alone on the command line. This has the disadvantage of requiring two re-encoding process from the original footages, but allow you the complete control on the resulting media. See this page for some recipes: Final Rendering with libx264 and ffmpeg.

Here they are my preferred settings to produce HD-Ready 780p and Full HD 1080p videos.

Export Video
Format Matroska Video
Width x Height 1920×1080 or 1366×768
Quality Full-Float (32-bit) (1)
Codec H.264
Encode Speed Very Slow (2)
Compression Method Target Bit Rate
Target Bit Rate (Mbps) 6 Mbit (3)
Maximum Bit Rate (Mbps) 9 Mbit (3)
Two Pass Yes
Pixel Format yuv420p (4)
YUV Color Range Full (0-255)
Color Space Rec.709 OETF (5)
Export Audio
Codec Vorbis
Sample Rate 48000 Hz
Channel Layout Stereo
Format Float 32-bit
Bit Rate 192 kbps
  1. The proposed values are: 8-bit, 16-bit Integer, Half-Float(16-bit) and Full-Float (32-bit). It is not clear what the Quality option means here, may be it is what ffmpeg calls bits_per_raw_sample. We made some experiment with Olive 0.2.0-55eedbfc and we found no differences at all on exports at 8-bit or at Full-Float 32-bit (the files produced were analyzed with with ffprobe and mediainfo). Our input footages have 8-bit per raw sample, so we may stay with it, but it seems that there are no drwaback in choosing the higer setting Full-Float 32-bit.
  2. Depending on the combination of the Encode Speed and Compression Method ⇒ Bitrate options, the resulting video may use the video format profile High@L3.2, High@L4, High@L4.1, High@L5, High@L5.1 etc. Make some tests if this is important to you (it may be important for your player, if it does not support the required IDC level).
    NOTICE: It is a bit silly for Olive Editor to produce videos using format profiles higher than High@L4.1 (it does so e.g. when using a slow encode speed), because that profile is capable of 2048×1080@60 with a bitrate of 20 Mbps.
  3. A bitrate of 8 Mbit is suitable for an high quality video, Full HD 1080p, but 4 Mbit is acceptable for a normal quality video.
  4. The improvement achievable using yuv422p or yuv444p is visually imperceptible and some players only support yuv420.
  5. There are no substantial differences in the ability to represent colors between the sRGB, Rec.701 and Rec.601 color spaces, but almost any player expecting high definition videos will accept Rec.709.
doc/appunti/linux/video/olive_editor_tools.txt · Last modified: 2024/07/31 08:00 by niccolo