[ Overview | Editing Tools ( KDEnlive ( Overview , Installation , Usage ) , Pitivi Video Editor ( installation , usage ) , Flowblade Movie Editor ( installation , usage ) , Shotcut ( Installation , usage ) , Cinelerra ( Installation , Usage ) , Cinelerra forks ( Overview , installation , usage ) , OpenShot Video Editor ( Installation , usage ) | Miscellaneous Tools ( Synfig Studio ( Installation , Usage ) , Blender ) ]
Last modified February 20, 2025
This site has
been automatically translated with Google Translate from this
original page written in french, there may be some
translation errors
Kdenlive is certainly one of the most accomplished editing software under Linux, rich in functionality and which allows a thousand editing fantasies but which is therefore quite complex to use, it is the software that I usually use.
Flowblade Movie Editor is also based on mlt like kdenlive , it is quite confusing to use because it stands out from the others on the vocabulary and on certain philosophy of use, it is a software which like kdenlive is rich in functionality and which remains complex to use, it is not recommended for simple montages.
Shotcut is based on mlt as well, it's a very good compromise between ease of use and richness of features.
OpenShot Video Editor , on the other hand, is easier to use and has fewer features, particularly in terms of effects. On the other hand, it includes basic animation features that are not found in Kdenlive , particularly based on Blender and Inkscape.
Pitivi Video Editor is even easier to use, its features are quite basic but sufficient to get started, we will favor it to start video editing.
Cinelerra is an advanced and relatively complex and demanding editing software.
This page only presents the installation of these software, the tutorials for using Kdenlive , Cinelerra , OpenShot Video Editor , Pitivi Video Editor , Flowblade Movie Editor , Shotcut and synfig studio are more dedicated to their implementation. Also note a page on the use of LiVES software originally designed to make video clips that I no longer maintain.
For a comparison of all these software you can consult this other page and this page which presents the main concepts of video editing.
There is also avidemux which allows you to make some edits from a pre-existing video even if this is not its primary purpose.
All the tools previously mentioned do not allow you to make audio arrangements for this you will have to use the DAW tools which are the subject of a specific page . I also present synfigstudio which allows you to create animations that can be used in video montages.
KDEenlive is a relatively powerful and easy-to-use video editing software.
Under Mageia you need to install the following packages
urpmi extra-cmake-modules qt5-devel lib64qt5svg-devel lib64kf5bookmarks-devel lib64kf5plotting-devel lib64kf5notifyconfig-devel lib64kf5newstuff-devel lib64kf5notifications-devel lib64qt5qml-devel lib64qt5quick-devel lib64kf5parts-devel kded task-plasma5-minimal lib64kf5crash-devel lib64kf5filemetadata-devel lib64kf5xmlgui-devel lib64exif-devel lib64v4l-devel lib64qt5webkitwidgets-devel lib64kf5purpose-devel lib64kf5declarative-devel lib64qt5quickwidgets-devel lib64qt5multimedia-devel lib64qt5webengine-devel lib64ebur128-devel lib64qt5networkauth-devel lib64xpm-devel kdelibs4-devel lib64v4l-devel lib64qjson-devel ladspa-devel lib64gdk_pixbuf2.0-devel swig lib64python-devel lib64samplerate-devel mediainfo lib64sox-devel lib64rtaudio-devel ladspa-plugins-swh clang-tools-extra lib64lilv-devel
To activate
Qt6, you will need to install the packages qtbase6-common-devel,
qt6core-devel, qt6widgets-devel, qt6network-devel,
qt6concurrent-devel, qt6svg-devel, qt6multimedia-devel,
qt6gui-devel, qt6xml-devel, qt6svgwidgets-devel,
qt6core5compat-devel .
We will install the integrated animation tool glaxnimate which we will retrieve from the address https://glaxnimate.mattbas.org and more precisely here https://gitlab.com/mattbas/glaxnimate/-/releases and we unzip the archive by typing
tar xvfz glaxnimate-0.5.4.tar.bz2
this gives the glaxnimate-0.5.4 directory we will first install lib64potrace-devel we move to glaxnimate and we type
mkdir build
cd build
cmake ..
On my mageia 9 this gives me an error
CMake Error
at CMakeLists.txt:32 (include):
include could not
find requested file:
misc
CMake Error at
CMakeLists.txt:33 (include):
include could not
find requested file:
GetGitRevisionDescription
I didn't try to understand I installed the development version by typing
git clone --recursive https://gitlab.com/mattbas/glaxnimate.git
we start again then we type
make then as root make install
We will also install spatialaudio
for ambisonic encoding/decoding which is a technique for capturing, synthesizing and
reproducing sound environments. The site is https://github.com/videolabs/libspatialaudio where we retrieve the current master and not the
release that we unzip by typing
unzip
libspatialaudio-master.zip
this gives the libspatialaudio-master directory in which we type
mkdir build
cd build/
cmake ..
make
puir as root make install
We return to mlt which we will find here https://www.mltframework.org/ we unzip the archive by typing
tar xvfz
mlt-7.30.0.tar.gz
this gives the mlt-7.30.0 directory in which we type
mkdir build
cd build/
cmake .. -DSWIG_PYTHON=ON
-DMOD_OPENCV=ON -DMOD_GLAXNIMATE=ON -DCLANG_FORMAT=OFF -DMOD_QT6=ON
if you have the following error
CMake Error:
File
/usr/local/linux/multimedia/mlt-7.28.0/src/modules/glaxnimate/glaxnimate/src/core/application_info_generated.in.hpp
does not exist.
CMake Error at
src/modules/glaxnimate/CMakeLists.txt:160 (configure_file):
configure_file
Problem configuring file
Call Stack (most recent
call first):
src/modules/glaxnimate/CMakeLists.txt:211
(mlt_add_glaxnimate_module)
Oddly enough the archive is incomplete and I recovered the src/modules/glaxnimate/glaxnimate directory from version 7.20 of mlt to place it in the same place, then retype cmake .
This is the result
-- The following features have been enabled:
* GPLv2
* GPLv3
* Module: avformat
* Module: DeckLink
* Module: Frei0r
* Module: GDK
* Module: Glaxnimate (Qt5)
* Module: JACKRack
* Module: Kdenlive
* Module: Normalize
* Module: Oldfilm
* Module: OpenCV
* Module: Movit
* Module: Plus
* Module: PlusGPL
* Module: Qt (Qt5)
* Module: Qt6
* Module: Resample
* Module: RtAudio
* Module: Rubberband
* Module: SoX
* Module: SpatialAudio
* Module: vid.stab
* Module: Vorbis
* Module: XINE
* Module: XML
* SWIG: Python
* lv2: LV2 Plugins support
* vst2: VST2 Plugins support
-- The following OPTIONAL packages have been found:
* JACK
* Freetype
* Fontconfig
* Qt6CoreTools (required version >= 6.8.1)
* Qt6Core
* OpenGL
* XKB (required version >= 0.5.0), XKB API common to
servers and clients., <http://xkbcommon.org>
* Vulkan
* WrapVulkanHeaders
* Qt6GuiTools (required version >= 6.8.1)
* Qt6DBusTools (required version >= 6.8.1)
* Qt6Gui
* Qt6Xml
* Qt6WidgetsTools (required version >= 6.8.1)
* Qt6SvgWidgets
* Qt6Core5Compat
* Qt6
* Qt5Svg
* Qt5Core
* Qt5Gui
* Qt5Network
* Qt5Widgets
* Qt5Xml
* Qt5
* SWIG
-- The following REQUIRED packages have been found:
* OpenCV
* X11
* Threads
* PkgConfig
* Python3
* LibArchive
* ZLIB
-- The following features have been disabled:
* Tests
* Doxygen
* Clang Format
* Module: Glaxnimate (Qt6)
* Module: NDI
* Module: SDL1
* Module: SDL2
* SWIG: C#
* SWIG: Java
* SWIG: Lua
* SWIG: Node.js
* SWIG: Perl
* SWIG: PHP
* SWIG: Ruby
* SWIG: Tcl
-- Configuring done (1.2s)
-- Generating done (0.3s)
-- Build files have been written to:
/usr/local/linux/multimedia/mlt-7.30.0/build
Attention for the compilation of kdenlive , if you are still on a system with KF5 , kdenlive will not compile with mlt compiled with qt6
type make and as root make install
In the file /etc/ld.so.conf we will add the line /usr/local/lib64/mlt-7 and we will type ldconfig. We will have to make sure that no old installation of mlt is present, if necessary delete it. To see if mlt is well compiled with all the options, you can type these commands which give
melt -query
"producers"
melt -query "filters"
to see if frei0r has been integrated we will type
melt -query | grep frei0r
and here is part of the result
-
frei0r.3dflippo
- frei0r.B
- frei0r.G
- frei0r.IIRblur
- frei0r.R
- frei0r.aech0r
- frei0r.alpha0ps
- frei0r.alphagrad
- frei0r.alphaspot
- frei0r.balanc0r
- frei0r.baltan
-
frei0r.bgsubtract0r
-
frei0r.bluescreen0r
- frei0r.brightness
- frei0r.bw0r
- frei0r.c0rners
-
frei0r.cairogradient
-
frei0r.cairoimagegrid
- frei0r.cartoon
(...)
Let's go back
to kdenlive , the official URL of kdenlive kdenlive.org . At the address https://invent.kde.org/multimedia/kdenlive we will retrieve the latest version that we unzip
by typing
tar xvfj
kdenlive-v24.12.2.tar.bz2
this gives the directory kdenlive-v24.12.2 this version only compiles with KF6 it will be
necessary to install the following packages
urpmi
lib64kf6archive-devel lib64kf6bookmarks-devel
lib64kf6kio-devel lib64kf6notifyconfig-devel
lib64kf6newstuff-devel lib64kf6xmlgui-devel
lib64kf6textwidgets-devel lib64kf6filemetadata-devel
lib64kf6purpose-devel lib64qt6quickcontrols2-devel
lib64qt6networkauth-devel lib64kf6dbusaddons-devel
in which we
type
mkdir build;cd build
cmake ..
here is the result
-- Found KF6: success (found
suitable version "6.10.0", minimum required is "6.3.0")
found components: Archive Bookmarks Codecs CoreAddons Config
ConfigWidgets KIO WidgetsAddons NotifyConfig NewStuff /lib64/cmake/KF6DBusAddons/KF6DBusAddonsConfig.cmake
(found version "6.10.0")
-- Found KF6: success
(found suitable version "6.10.0", minimum required is
"6.3.0") found components: DBusAddons
-- Checking for module
'mlt++-7'
-- Found mlt++-7, version
7.30.0
-- Found MLT:
/usr/local/lib64/libmlt-7.so (found suitable version
"7.30.0", minimum required is "7.28.0")
-- Found MLT++:
/usr/local/lib64/libmlt++-7.so
-- Looking for include
file malloc.h
-- Looking for include
file malloc.h - found
-- Looking for include
file pthread.h
-- Looking for include
file pthread.h - found
-- Found LibV4L2:
/usr/include
-- Looking for include
file linux/input.h
-- Looking for include
file linux/input.h - found
-- Found SharedMimeInfo:
/bin/update-mime-database (found version "2.4")
-- The following RUNTIME
packages have been found:
* LibV4L2,
video4linux support libraries,
<https://linuxtv.org/downloads/v4l-utils/>
Required for
better webcam support
-- The following OPTIONAL
packages have been found:
* Qt6WidgetsTools
(required version >= 6.8.1)
* OpenGL
* Qt6DBusTools
(required version >= 6.8.1)
* Qt6QmlTools
(required version
>= 6.8.1) * XKB
(required version
>= 0.5.0)
, version >=
6.3.0)
* Qt6Svg
* Qt6QuickTools
(required version >= 6.8.1)
* WrapVulkanHeaders
* Qt6Quick
* Qt6QuickControls2
* Qt6Concurrent
* Qt6QuickWidgets
* Qt6Multimedia
* Qt6NetworkAuth
* Qt6SvgWidgets
* Qt6CoreTools
(required version >= 6.8.1)
-- The following REQUIRED
packages have been found:
* ECM (required
version >= 6.3.0)
* KF6Archive
(required version >= 6.3.0)
* KF6Codecs
(required version >= 6.10.0)
* KF6Config
(required version >= 6.10.0)
* KF6CoreAddons
(required version >= 6.10.0)
* KF6Bookmarks
(required version >= 6.10.0)
* KF6KIO (required
version >= 6.3.0)
* KF6WidgetsAddons
(required version >= 6.3.0)
* KF6NotifyConfig
(required version >= 6.3.0)
* KF6NewStuff
(required version >= 6.3.0)
* KF6ConfigWidgets
(required version >= 6.10.0)
* KF6XmlGui
(required version >= 6.3.0)
* KF6Notifications
(required version >= 6.3.0)
* KF6GuiAddons
(required version >= 6.3.0)
* Gettext
* KF6TextWidgets
(required version >= 6.3.0)
* KF6IconThemes
(required version >= 6.3.0)
* KF6Solid (required
version >= 6.3.0)
* KF6FileMetaData
(required version >= 6.3.0)
* KF6Purpose
(required version >= 6.3.0)
* KF6DBusAddons
(required version >= 6.3.0)
* KF6 (required
version >= 6.3.0)
* Qt6
* MLT (required
version >= 7.28.0), Multimedia framework,
<https://mltframework.org>
Required to
do video processing
* Qt6Core
* SharedMimeInfo, A
database of common MIME types,
<https://freedesktop.org/wiki/Software/shared-mime-info/>
-- The following features
have been disabled:
* QCH, Source code
documentation in QCH format (for eg Qt Assistant, Qt Creator
& KDevelop)
-- The following OPTIONAL
packages have not been found:
* KF6DocTools
(required version >= 6.3.0)
-- Configuring done (2.6s)
-- Generating done (0.4s)
-- Build files have been
written to:
/usr/local/linux/multimedia/kdenlive-v24.12.2/build
then
make
then as root
make install
note by default kdenlive is installed under /usr/bin
This is not quite finished, if you want to enable the DaSiamRPN algorithm for motion tracking, you will need to retrieve the models under https://docs.kdenlive.org/en/effects_and_filters/video_effects/alpha_mask_keying/motion_tracker.html and place them under the homedirectory ~/.local/share/kdenlive/opencvmodels
Here is kdenlive launched with a montage project
You can find a usage
tutorial here for versions
19.X and above. For earlier versions, the tutorial is here .
The official site is http://www.pitivi.org/ we will do an installation using flatpak. Under a Mageia, it will be enough to type
urpmi flatpak
flatpak
remote-add --if-not-exists flathub
https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.pitivi.Pitivi
Note that the flatpak command can be run as a simple user and in this
case Pitivi will be installed under ~/.local/share/flatpak and the configuration parameters under ~/.var/app/org.pitivi.Pitivi/config/
That's all! Too easy...
In case of update we will type
flatpak
update
Pitivi will be integrated into the application launch menu of your favorite desktop environment (at least that's how it is with XFCE ). And here's what it looks like with a loaded project.
For the rest, I invite you to consult the tutorial on using Pitivi .
The official flowblade website is https://jliljebl.github.io/flowblade/ but we will do an installation via flatpak by typing
flatpak --user install flathub io.github.jliljebl.Flowblade
This is the result
Looking
for matches…
Required runtime for
io.github.jliljebl.Flowblade/x86_64/stable
(runtime/org.gnome.Platform/x86_64/3.36) found in remote
flathub
Do you want to install it? [Y/n]: y
io.github.jliljebl.Flowblade permissions:
ipc pulseaudio
x11 devices file access [1]
[1] host
ID
Arch
Branch
Remote
Download
1. [✓]
org.gnome.Platform
x86_64
3.36
flathub
271,2 MB / 322,9 MB
2. [✓]
org.gnome.Platform.Locale
x86_64
3.36
flathub
3,2 MB / 322,9 MB
3. [✓]
org.freedesktop.Platform.GL.default
x86_64
19.08
flathub
94,9 MB / 94,9 MB
4. [✓]
org.freedesktop.Platform.openh264
x86_64
2.0
flathub
918,1 kB / 916,8 kB
5. [✓]
io.github.jliljebl.Flowblade
x86_64
stable
flathub
42,4 MB / 42,7 MB
6. [✓]
io.github.jliljebl.Flowblade.Locale
x86_64
stable
flathub
8,3 kB / 6,3 MB
Installation complete
you will also need to install the gmic package . For an update you will simply need to type
flatpak
update
The software is launched from the graphical menu of your favorite distribution and here is the result:
Here you can find a tutorial on how to use Flowblade .
The official site is https://shotcut.org/ we will do an installation by flatpak by typing
flatpak install flathub
org.shotcut.Shotcut
here is the result
Looking for matches…
Remote 'flathub' found in
multiple installations:
1) system
2) user
Which do you want to use
(0 to abort)? [0-2]: 2
Required runtime for
org.shotcut.Shotcut/x86_64/stable
(runtime/org.kde.Platform/x86_64/5.14) found in remote
flathub
Do you want to install it?
[Y/n]: y
org.shotcut.Shotcut
permissions:
ipc
network pulseaudio wayland x11 devices shm file access [1]
dbus access [2]
[1]
host, xdg-config/kdeglobals:ro
[2]
com.canonical.AppMenu.Registrar
ID Arch Branch Op
Remote Download
1. [✓]
org.kde.Platform x86_64 5.14 i flathub 104.1 MB / 324.4 MB
2. [✓]
org.freedesktop.Platform.GL.nvidia-440-64 x86_64 1.4 u
flathub 101.5 MB / 102.0 MB
3. [✓]
org.kde.Platform.Locale x86_64 5.14 i flathub 546.2 kB /
337.1 MB
4. [✓]
org.shotcut.Shotcut x86_64 stable i flathub 35.7 MB / 38.6
MB
Changes complete.
For an update you will simply have to type
flatpak update
We'll launch shotcut from the graphical menu of your favorite environment (at least that's how it works with XFCE ). Here's the result with a current project.
A tutorial on how to use Shotcut can be found here .
We will
retrieve cinelerra at the URL http://heroinewarrior.com we unzip the archive by typing
tar xvf
cinelerra-9-src.tar.xz
This gives the directory cinelerra-9 we must install as root the packages
texinfo
yasm
lib64xv1-devel
I edit the configure file and I modify the following line
CUDA_DIR=/usr/lib64/cuda-toolkit-root-dir
then type
./configure --enable-opengl
I edited the file cinelerra-9/thirdparty/pulseaudio-13.0/src/Makefile and removed the line
@GSETTINGS_RULES@
I then type make and I get the error
/bin/ld:x86_64/libquicktime.a(vaapi_encode_h264.o):
in function 'vaapi_encode_h264_write_identifier':
/usr/local/linux/multimedia/cinelerra-7.4/quicktime/thirdparty/ffmpeg-3.3.3/libavcodec/vaapi_encode_h264.c:619:
undefined reference to 'vaQueryVendorString'
we modify the quicktime/Makefile file
on the next
line like this
LIBS := $(OUTPUT)
$(MPEG3_DIR)/$(OBJDIR)/libmpeg3.a -lpng -lz -lpthread -ldl
-lm -llzma -lrt -lva -lX11 -lva-x11 -lva-drm -lvdpau -lnuma
-lx265 -lxcb -ldbus-1 -lsystemd -lFLAC -lvorbis
we will do the same in the cinelerra/Makefile
LIBS := \
-L./ \
-L../guicast -lva
-lX11 -lva-x11 -lva-drm -lvdpau -lnuma -lx265 -ldbus-1
-lsystemd -lFLAC -lvorbis
we retype make then as root
make install
I had to create the following link to access cinelerra
ln -s
/usr/local/linux/multimedia/cinelerra-9/bin/cinelerra
/usr/local/bin/cinelerra
if you have an error like
this at launch
MWindow::init_shm0:
WARNING:/proc/sys/kernel/shmmax is 0x2000000.
It should be a least
0x7FFFFFFF for cinelerra
you have to edit the file /etc/sysctl.conf and add everything at the end
#
neutralization of cinelerra error message
kernel.shmmax = 0x7fffffff
To apply the modification you must type as root
sysctl -p
If it crashes on startup with a message like
signal_entry: got SIGSEGV
my pid=17430 execution table size=0:
SigHandler::signal_handler
total files=0
Abort
Indeed, when you first launch the application, it tries to create a file under /usr/lib64/ladspa/ and since a simple user does not have the rights, it crashes. To solve it, you must first launch cinelerra as root and then again as a simple user and then it works.
This is what it gives when you type cinelerra
The ergonomics are particularly confusing, the software is not intuitive, refer to this page to have the basics of using cinelerra .
It turns out that there are forks of cinelerra that are very promising, they are grouped at this
address https://cinelerra-cv.org/ . To be precise on this same page we will find two
variants, Cinelerra GG or the Goodguy's version which started from a
personal development and Cinelerra CV which is the community version which brings some
additional functions and wants to be more stable, note that
this last version although being a fork does not wish to
diverge from the original project and merges with its new
developments, read the About page which explains a little all
that there https://cinelerra-cv.org/about.php . Note that the Cinelerra HV (Heroin Virtual) version is not a fork but is
neither more nor less than the original version presented
above. It would seem that it is the GG version which is the
most active.
Note that there is also Lumiera (website http://lumiera.org/
), it was born from the
rewriting of the Cinelerra HV code but
diverged into a separate project, it is today in an unusable
pre-alpha version.
In the end I
chose the GG version which seems to be more distinguishable
from the original version, the download page is here https://www.cinelerra-gg.org/ we unzip the archive by typing:
tar xvfz
cin_5.1.20241231-src.tgz
this gives the cinelerra-5.1 directory, we type:
./autogen.sh ./configure
--with-opencv=git --with-gl
then we type
make
then as root
make install
If you have the following
error when launching
PluginServer::open_plugin:
load_obj /usr/local/lib64/cin/plugins/opencv/findobj.plugin
= /usr/local/lib64/cin/plugins/opencv/findobj.plugin:
undefined symbol:
_ZN2cv14findHomographyERKNS_11_InputArrayES2_idRKNS_12_OutputArrayEid
int
PluginServer::open_plugin(int, Preferences*, EDL*, Plugin*):
I can only see the
possibility for now to disable the OpenCV option by deleting the directory /usr/local/lib64/cin/plugins/opencv
The software is launched by typing cin , the interface is quite similar to the original, there are still some clear improvements in the presentation, it is something to watch, it should overshadow the original version.
Faced with the increasing difficulties in installing OpenShot via compilation, I now settle for a flatpak installation
flatpak install org.openshot.OpenShot
Just type in a shell openshot-qt or go through the menu (for a flatpak installation ) here is the main window with imported videos.
For more information on usage please see the tutorial.
Synfig Studio is a workshop for creating animations that can then be integrated into editing software. That's why we find it on this page.
The official website is http://www.synfig.org/
Before going further you will probably need to install the following packages lib64magick-devel, lib64xml++2.6-devel, lib64graphicsmagick-devel, lib64mng-devel the latest version 1.4.4 is not compatible with the latest version of ffmpeg we will therefore install the development version which we will retrieve by typing
git clone https://github.com/synfig/synfig.git synfig
this gives the synfig directory in which we type
./2-build-production.sh
the executable is located under _production/build/bin/synfigstudio we can make a link under /usr/local/bin
This is what it looks like when you launch synfigstudio, on the left the "toolbox", on the right the tool properties, in the middle the main screen and at the bottom the part for keyframes and animation.
For the rest I invite you to
consult the tutorial here.
Blender is a 3D creation software, it is necessary for OpenShot Video to create animations. It will also be installed via flatpak
flatpak install flathub org.blender.Blender
and this is what it looks like when you launch it