< Kdenlive | Development Revision as of 08:53, 2 December 2016 (view source)Jbm (talk | contribs) (→Compiling MLT with Qt5 support)← Older edit Revision as of 05:55, 21 January 2017 (view source) Ttguy (talk | contribs) m (remove space after one of the \ in the melt dependancy apt-get install command. It makes the command fail)Newer edit → Line 14: Line 14: libavformat-dev libavdevice-dev frei0r-plugins-dev frei0r-plugins libgtk2.0-dev libexif-dev \ libavformat-dev libavdevice-dev frei0r-plugins-dev frei0r-plugins libgtk2.0-dev libexif-dev \ libsdl1.2-dev libsox-dev libxml2-dev \ libsdl1.2-dev libsox-dev libxml2-dev \ − ladspa-sdk libcairo2-dev libswscale-dev qtscript5-dev libqt5svg5-dev \ + ladspa-sdk libcairo2-dev libswscale-dev qtscript5-dev libqt5svg5-dev \ libqt5opengl5-dev libepoxy-dev libeigen3-dev libfftw3-dev \ libqt5opengl5-dev libepoxy-dev libeigen3-dev libfftw3-dev \ git yasm libtool automake autoconf libtool-bin libtheora-bin libtheora-dev \ git yasm libtool automake autoconf libtool-bin libtheora-bin libtheora-dev \ Revision as of 05:55, 21 January 2017 Contents 1 Working with Kdenlive on KF5 1.1 Compiling MLT with Qt5 support 1.2 Get the Qt5/KF5 branch of Kdenlive 1.3 Compile Kdenlive 1.4 Execute the Built Kdenlive 1.5 Older Linux Distributions 2 Installing a recent git version of FFmpeg for Kdenlive (optional) 3 A build script 4 Footnotes 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. Some outdated infos about the KF5 refactoring process can be found on Refactoring page Compiling MLT with Qt5 support The first step is to compile MLT with Qt5 support. This is only required if you don't have a recent distribution or want to try recent features/fixes introduced in MLT. Otherwise you can skip and go directly to the next chapter - compiling Kdenlive. To prevent conflicts, it is recommended to remove your distribution packages (melt, libmlt, libmlt++). First install the dependencies: On ubuntu: sudo apt-get install build-essential pkg-config \ libavformat-dev libavdevice-dev frei0r-plugins-dev frei0r-plugins libgtk2.0-dev libexif-dev \ libsdl1.2-dev libsox-dev libxml2-dev \ ladspa-sdk libcairo2-dev libswscale-dev qtscript5-dev libqt5svg5-dev \ libqt5opengl5-dev libepoxy-dev libeigen3-dev libfftw3-dev \ git yasm libtool automake autoconf libtool-bin libtheora-bin libtheora-dev \ intltool swig libmp3lame-dev libgavl-dev libsamplerate0-dev libjack-dev libsoup2.4-dev \ python-dev libkf5crash-dev libkf5filemetadata-dev (optional packages: libmovit-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 If you want to use MLT's Motion Tracker filter, you need to install OpenCV >= 3.1 with its contrib module. This can be done with the following commands: git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git cd opencv mkdir build cd build cmake .. -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules make -j5 sudo make install Then get the source code for MLT: git clone https://github.com/mltframework/mlt.git or download the latest release from https://github.com/mltframework/mlt/releases/latest. Configure and build By default, MLT will be installed in /usr/local. If you want to install to a non-standard local path, you can set it by adding "--prefix=/path/to/your/install" ./configure --enable-gpl --enable-gpl3 make sudo make install Check that your compiled melt works: melt color:red Should play open a preview window with a red color clip melt myclip.mp4 Should play your test file in a video window. Get the Qt5/KF5 branch of Kdenlive We are cloning the git repository for kdenlive into a local folder on your hard drive. This step will create a new kdenlive folder in the current directory. In this example I cloned into ~/kdenlive/kdenlive_git. Which creates ~/kdenlive/kdenlive_git/kdenlive cd ~kdenlive mkdir kdenlive_git cd kdenlive_git git clone git://anongit.kde.org/kdenlive.git Success looks like: Cloning into 'kdenlive'... remote: Counting objects: 67026, done. remote: Compressing objects: 100% (12978/12978), done. remote: Total 67026 (delta 54842), reused 65893 (delta 53935) Receiving objects: 100% (67026/67026), 22.35 MiB | 582.00 KiB/s, done. Resolving deltas: 100% (54842/54842), done. Checking connectivity... done. The master branch is the current development branch. Create a build directory inside the kdenlive directory that git created: cd kdenlive;mkdir build;cd build (working dir now /kdenlive/kdenlive_git/kdenlive/build in our eg ) Compile Kdenlive (These instructions do not include a build of the vidstab package and thus your built kdenlive will be missing the stabilization feature) You will need to install several Qt/KDE devel packages to successfully compile. On Ubuntu 15.10 the following packages will pull all the necessary dependencies: sudo apt-get install \ libkf5archive-dev libkf5bookmarks-dev libkf5coreaddons-dev libkf5config-dev \ libkf5configwidgets-dev libkf5dbusaddons-dev kio-dev libkf5widgetsaddons-dev \ libkf5plotting-dev libkf5notifyconfig-dev libkf5newstuff-dev libkf5xmlgui-dev \ libkf5notifications-dev libkf5guiaddons-dev libkf5textwidgets-dev libkf5iconthemes-dev \ kdoctools-dev libkf5crash-dev libkf5filemetadata-dev extra-cmake-modules \ libsm-dev libv4l-dev libav-tools cmake qtdeclarative5-dev kde-runtime kinit kio \ qml-module-qtquick-controls To avoid problems with plugins and libraries, it is easier to install Kdenlive in /usr: cmake .. -DCMAKE_INSTALL_PREFIX=/usr However if you prefer to install to a custom prefix (recommended only if you know what you are doing) : 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 Then build and install: make -j5 sudo make install Execute the Built Kdenlive Test the built kdenlive by executing the kdenlive binary in the bin folder in your install path (again making use of the INSTALL_PREFIX shell variable we defined during the melt build) $INSTALL_PREFIX/bin/kdenlive The above command should start kdenlive. However, It is important to have especially the environment variable XDG_DATA_DIRS correctly set to point to the share dir inside the Kdenlive installation directories. The given standard paths for XDG_DATA_DIRS are typically /usr/share as well as /usr/local/share. So if you install Kdenlive to some other place, such as within your own home directory, make sure to add the path to your home-based share dir to XDG_DATA_DIRS before attempting to start Kdenlive. Failing to do so causes Kdenlive to crash in unexpected situations, such as when trying to select a transition in the timeline. Here's a nifty little script that sets up the environment variables automatically, then fires up Kdenlive; place this script next to your kdenlive executable (ie in $INSTALL_PREFIX/bin/). And don't forget to make it executable (chmod u+x kdenlive.sh). #!/bin/bash SCRIPT_NAME=$(readlink -f "$0") SCRIPT_PATH=$(dirname "$SCRIPT_NAME") export INSTALL_PREFIX=$(dirname "$SCRIPT_PATH") export LD_LIBRARY_PATH=$INSTALL_PREFIX/lib export XDG_DATA_DIRS=$INSTALL_PREFIX/share:$XDG_DATA_DIRS:/usr/share export XDG_CONFIG_DIRS=$INSTALL_PREFIX/etc/xdg:$XDG_CONFIG_DIRS echo "Environment set up for $INSTALL_PREFIX" $INSTALL_PREFIX/bin/kdenlive If you want to be sure that you are executing the kdenlive you just built you might want to increase the version number of the build. This can be done by editing src/kdenlive/CMakeLists.txt Older Linux Distributions Frameworks 5 packages are hard come by in slightly old linux versions. 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 debootstrap 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 vivid -p after running the above you will get a prompt like (vivid)[email protected]: You can then follow the install instructions above for melt and kdenlive. Note that many of the required packages are in the "Universe" repository - which is not enabled by default on the chroot setup. So you will need to add that repository to the package manager (edit your chroots /etc/apt/sources.list ) in order to be able to find the required packages. Don't forget the apt-get update afterwards. If, when you test melt, it complains ./melt: error while loading shared libraries: libmlt.so.6: cannot open shared object file: No such file or directory Then try setting shell variables LD_LIBRARY_PATH and XDG_DATA_DIRS export LD_LIBRARY_PATH=$INSTALL_PREFIX/lib export XDG_DATA_DIRS=$INSTALL_PREFIX/share:$XDG_DATA_DIRS:/usr/share Installing a recent git version of FFmpeg for Kdenlive (optional) The LibAV/FFmpeg libraries that do all the encoding/decoding stuff are evolving quickly, but distributions do not always provide a recent version of these libraries. If you want to benefit from the latest features / fixes from these libraries, here is a quick howto on installing a recent FFmpeg version for MLT/Kdenlive without touching your system's LibAV/FFmpeg official version. This howto provides details for FFmpeg, but can probably be easily adapted for LibAV if you have a preference. Get required libraries: sudo apt-get install libfaac-dev libgsm1-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libschroedinger-dev libtheora-dev libvorbis-dev libvpx-dev libx264-dev libx265-dev libxvidcore-dev libdc1394-22-dev yasm Get the latest FFmpeg sources: git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg configure the FFmpeg build with the "suffix" option. It means all FFmpeg programs/libraries will be renamed to use that suffix so that they do not mess up your system's official versions (in my exemple, the suffix is mlt, so ffplay will be called ffplaymlt). Choose the install prefix of your choice, but do not install in /usr. Here is a sample configure: ./configure --prefix=/usr/local --progs-suffix=mlt --build-suffix=mlt --enable-shared --enable-libmp3lame \ --enable-gpl --enable-libfaac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid \ --enable-x11grab --enable-libgsm --enable-libx264 --enable-libtheora --enable-libdc1394 --enable-nonfree \ --disable-stripping --enable-avfilter --enable-libschroedinger --enable-libopencore-amrnb \ --enable-libopencore-amrwb --enable-version3 --enable-libvpx compile the ffmpeg build make -j4  Install the build ffmpeg make install Next, recompile MLT to use this special FFmpeg version. Just add these 2 parameters to the MLT configure, where avformat-shared points to the install prefix of your custom FFmpeg, and avformat-suffix is the suffix used in previous step: --avformat-shared=/usr/local --avformat-suffix=mlt Recompile Kdenlive. After running the newly compiled Kdenlive ensure that, in the settings dialog under environment, the FFmpeg and FFplay paths point to your newly compiled versions (in my example it will be /usr/local/ffmpegmlt and /usr/local/ffplaymlt) A build script File:Build-kdenlive v26b.sh.zip This is a script to build kdenlive and dependencies in a sandbox. Downloads sources from repositories and does the build. Based on Dan Dennedy version 26 of the build-kdenlive.sh script http://www.mltframework.org/twiki/bin/view/MLT/BuildScripts#Kdenlive http://github.com/mltframework/mlt-scripts/raw/master/build/build-kdenlive.sh This version differs from the Dan Dennedy script in that it builds the KF5 version of the application Works with ver 15.NN and higher versions of kdenlive Create a folder where you would like kdenlive installed. Eg ~/development/kdenlive Extract the build-kdenlive_v26b.sh to a folder anywhere. Make build-kdenlive_v26b.sh executable Edit build-kdenlive_v26b.sh and set the INSTALL_DIR var eg INSTALL_DIR="$HOME/development/kdenlive" Look in the comments at the start to see the list of dependencies you should install before hand. Install them using the sudo apt-get install ... commands shown. in a terminal execute ./build-kdenlive_v26b.sh When the job finishes cd to the INSTALL_DIR choosen above and then into the folder named for today's date  eg cd /home/ttguy/development/kdenlive/20151007/ execute this to start the application ./start-kdenlive Footnotes ↑ The -j4 parameter - this controls the number of parallel compilation jobs. -j4 is fine for a Core i3/i5, while it bores a Core i7 to death. On a Core i7 thus better use -j8 as it speeds up compilation a lot and makes use of all available real cores... ↑ If you want to build a specific version of kdenlive then you can edit the build script to set KDENLIVE_HEAD=0 (instead of 1) and supply the version in the KDENLIVE_REVISION var. eg KDENLIVE_REVISION=remotes/origin/Applications/15.08 To see what remote branches you could specify for kdenlive cd $INSTALL_DIR/src/kdenlive git branch -r choose a branch from the list and prefix its name with remotes/ when you include it as the KDENLIVE_REVISION option ↑ You can turn off the feature of the script that builds to a folder named for today's date by setting AUTO_APPEND_DATE=0 in the script Retrieved from "https://community.kde.org/index.php?title=Kdenlive/Development/KF5&oldid=76041" Content is available under Creative Commons License SA 4.0 unless otherwise noted.