Kdenlive/Development/KF5

From KDE Community Wiki
Revision as of 20:30, 15 February 2015 by Jbm (talk | contribs)

Working with Kdenlive on KF5

If you want to test the KF5 (KDE Frameworks 5, based on Qt5) version of Kdenlive, you need a distribution that provides a running KF5 environnment, like Kubuntu Vivid (15.04) preview releases.
The status of the refactoring development process can be found on Refactoring page

Compiling MLT with Qt5 support

The first step is to recompile MLT with Qt5 support.

First install dependencies, on ubuntu:

sudo apt-get install build-essential pkg-config \
 libavformat-dev libavdevice-dev frei0r-plugins-dev libgtk2.0-dev libexif-dev \
 libmovit-dev libsdl1.2-dev libsox-dev libxml2-dev \
 ladspa-sdk libcairo2-dev libswscale-dev qtscript5-dev libqt5svg5-dev libqt5opengl5-dev

On OpenSuse 13.2, for MLT+Kdenlive (not very used to that system, please correct me):

zypper ar -f http://download.opensuse.org/repositories/KDE:/Qt5/openSUSE_13.2 Qt5
zypper ar -f http://download.opensuse.org/distribution/13.2/repo/oss/ oss
zypper ar -f http://download.opensuse.org/source/distribution/13.2/repo/oss/ oss-src
zypper refresh
zypper si kdenlive libmlt
zypper install libqt5-qtscript-devel libqt5-qtsvg-devel \
 libQt5OpenGL-devel libQt5Concurrent-devel kplotting-devel \
 libQt5Test-devel kparts-devel knotifications-devel

Then configure, enabling all components, selecting target install dir, and pointing to Qt5...

On ubuntu 15.04 (multiarch enabled):

./configure --enable-gpl --enable-gpl3 --prefix=$INSTALL_PREFIX \
 --qt-includedir=/usr/include/x86_64-linux-gnu/qt5 --qt-libdir=/usr/lib/x86_64-linux-gnu

While on ubuntu 14.10 or OpenSuse 13.2:

./configure --enable-gpl --enable-gpl3 --prefix=$INSTALL_PREFIX \
 --qt-includedir=/usr/include/qt5 --qt-libdir=/usr/lib64

Compile and install:

make install

And make sure it works:

melt myclip.mp4

As Dan Dennedy recently pointed out, the frei0r package, which contains many effects, sometimes causes crashes because 2 of its filters are usually compiled against Qt4, which conflicts with Qt5. The solution is to balcklist these 2 filters, by adding them in MLT's blacklist.txt file, found in:

$INSTALL_PREFIX/share/mlt/frei0r/blacklist.txt

Just add these lines to the file:

frei0r.facebl0r
frei0r.facedetect

Get the Qt5/KF5 branch of Kdenlive

  1. Get the sources:
    git clone git://anongit.kde.org/kdenlive
  2. Get the KF5 branch of your choice:
For developers, the frameworks branch is the current development branch containing refactoring efforts.
git checkout -b frameworks origin/frameworks
For users, the 15.04 branch is the "clean port" of KDE version for KF5.
git checkout -b 15.04 origin/15.04

Create a build directory:

cd kdenlive;mkdir build;cd build

Compile Kdenlive

You will need to install several Qt/KDE devel packages to successfully compile.

On Ubuntu 15.04 the following packages will pull all the necessary dependencies:

sudo apt-get install libkf5newstuff-dev libkf5notifications-dev libkf5notifyconfig-dev libkf5plotting-dev \
 extra-cmake-modules  kdoctools-dev libsm-dev libv4l-dev libav-tools cmake

Then build Kdenlive with the following options (in your build dir):

export LD_LIBRARY_PATH=$INSTALL_PREFIX/lib
export XDG_DATA_DIRS=$INSTALL_PREFIX/share:$XDG_DATA_DIRS:/usr/share
PKG_CONFIG_PATH=$INSTALL_PREFIX/lib/pkgconfig cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX
make -j4 install

And test

$INSTALL_PREFIX/bin/kdenlive

Frameworks 5 packages are hard come by in current linux versions. Beta versions of Ubuntu/Kubuntu 15.04 are a safe bet for getting these packages. Consider installing a virtual Ubuntu/Kubuntu 15.04 for testing the frameworks branch.

A light virtualization option is using chroot, setting it up in a ubuntu/debian environment is as simple as:

sudo -s
apt-get install schroot debottstrap
debootstrap --arch amd64 vivid $CHROOTDIR http://us.archive.ubuntu.com/ubuntu/
cat << === >> /etc/schroot/chroot.d/vivid.conf
[vivid]
aliases=default
description=vivid
type=directory
profile=desktop
directory=$CHROOTDIR
users=$USER
===
schroot -c -p vivid