Reply to topic

UPDATED: Making Movit work

lukefromdc
Registered Member
Posts
27
Karma
0

UPDATED: Making Movit work

Fri Jan 29, 2016 10:06 pm
Update 3-30-2016: Many distros that shipped 15.08 did not build MLT with Movit support, but at least Debian Unstable and Ubuntu Xenial(beta at the moment) now ship with Movit support in MLT and Kdenlive 15.12 by default. See below for build pitfalls if building locally. Use instructions have been brought to the top of this post and updated due to distro support for Movit.

To enable Movit on Kdenlive 15.08 or later (15.12 on most distros), you first need to go to settings>configure kdenlive>playback and click "use GPU processing(Movit library)-restart kdenlive to apply." This option will be grayed out if your build does not support Movit. When you click "apply" the dialog will ask you to confirm restarting kdenlive, so if you have a project open and not saved cancel it, save the project, and select GPU processing again. When Kdenlive restarts you can now use the GPU accelerated Movit effects.

To use a Movit effect you need the "effects" window visible along with the bin and timelime. Pick the "gpu effects" button, select a clip in the bin or on the timeline , then pick "add effect to selected clip" from the right-click menu. You can now tune the effect in the "properties" window. There is a difference here between Movit effefts and all others: you CANNOT apply Movit effects by right-clicking on a clip in the timeline and selecting it from the effects menu available there! Movit effects will be offered in that menu but fail if applied for some reason they must be applied from the effects window instead. This is one of two undocumented issues that prevented me from being able to use Movit effects for many months until I found it by accident.

You will notice that playback of a timeline with big HD AVCHD clips is slower and more choppy then before, but not unusably so. Rendering will run at about 1/2 the speed of rendering without OpenGL, my guess is this is caused by the bottleneck of pulling data out of the GPU memory back into CPU memory. On the other hand, with even a medium size graphics card on open drivers the addition of GPU effects will have no further visible effect on playback speed, and a reduced effect on render speed compared to CPU effects. The GPU is so much faster than the CPU at this sort of thing. CPU effects will slow down both playback and render as before, so use GPU effects and transitions instead whenever possible so long as the OpenGL backend is in use at all. Also be aware that all GPU effects get applied before any CPU effects, meaning you cannot first defish (a CPU effect) and then afterwards crop with "pan and zoom" in the GPU. If you try to do this the GPU Movit "pan and zoom" effect will crop down first, and the cropped clip is what the CPU defish effect will get applied to with unexpected results.

For some reason exporting a screenshot doesn't work in Movit, for that you need to turn off OpenGL and restart Kdenlive. Do that to screenshot clips, not projects as the opening a GPU enabled project without it will force either disabling the effects or not loading the project.

Building MLT for Movit

Since version 15.08, Kdenlive has supported usng the GPU accelerated Movit library, but it is not easy to figure out how to get it working or to use it due to lack of documentation. For Movit effects to be used, these conditions must be satisfied:

1: The OpenGL backend must be enabled. This is the simplest part, but the menu item in configure kdenlive/playback will be disabled if MLT wasn't built with OpenGl suppo

2: (EDIT 3-30-2016) MLT must be compiled both with Movit and with the QT module enabled and built against QT5 (for QT5 builds of kdenlive). New versions of Movit may require rebuilding MLT against them to prevent segfaults.

The QT module (built by default) is necessary to create the OpenGL context. Do not disable it, the QT 4 library loading problem that could cause Kdenlive 15.04 to segfault is long gone and the QT module now builds fine against QT5 . The QT module is not needed for Kdenlive without Movit, but is required for Movit enabled render jobs. It won't crash kdenlive when both MLT and Kdenlive are built against QT5. if the qt module is disabled, render jobs will be diverted to the screen and a zero byte output file or no output file will result. In other words, builds of MLT in May 2015 for Kdenlive 15.04 in at least some cases required that the qt module be disabled, now it is required that this same module NOT be disabled for 15.08 or later if Movit is to be used.

2: MLT must NOT be compiled with VDPAU support or render jobs will be diverted from the intended output file to the screen. This deviled me for months as I had VDPAU support in my locally-built version of MLT, tried a new build without it while investigating another bug. A note concerning VDPAU: For months I thought it was the cause of render jobs being diverted to the screen, this turned out not to be the case. Instead the missing QT module was to blame. If your build of ffmpeg will work with VDPAU, MLT can be built explicitly to use it and yes, rendering will work contrary to that I had previously thought. On the other hand, in my testing with an 8 core AMD FX proc and a radeon HD 6750 with the open r600 drivers VDPAU in kdenlive gave NO measureable gain in performance. It is designed to put video on the screen, fishing it back out of GPU ram for a video editor simply does not speed anything up. I am not sure if Kdenlive is using it at all or can do so, given the design considerations involved.

Last edited by lukefromdc on Thu Mar 31, 2016 4:48 am, edited 6 times in total.
User avatar ttguy
Moderator
Posts
1151
Karma
6
OS

Re: Making Movit work

Thu Feb 04, 2016 8:01 pm
lukefromdc wrote: due to lack of documentation.

Great post Luke. You certainly know a heap about this. Can you get your self an kde identity account https://identity.kde.org/?r=registration/index/ and add this info to the doco ? at https://userbase.kde.org/Kdenlive/Manual/. It is a user contributed manual. So if you are a user and there is a lack of doco it is your fault xD
User avatar funix
Registered Member
Posts
93
Karma
0
OS

Re: Making Movit work

Mon Feb 08, 2016 11:17 am
Hello

How do you compile mlt without VDPAU ? I don't see a --disable-vdpau option or something similar. Here is my configure options (with qt5)

./configure --swig-languages=python --enable-gpl --enable-gpl3 --qt-includedir=/usr/lib64/qt5/include --qt-libdir=/usr/lib64


FUNIX - http://www.funix.org
Mettez un manchot dans votre PC
Blog - http://olivier.hoarau.org
User avatar farid
Registered Member
Posts
316
Karma
2
OS

Re: Making Movit work

Sun Feb 14, 2016 7:59 pm
ttguy wrote:
lukefromdc wrote: due to lack of documentation.

Great post Luke. You certainly know a heap about this. Can you get your self an kde identity account https://identity.kde.org/?r=registration/index/ and add this info to the doco ? at https://userbase.kde.org/Kdenlive/Manual/. It is a user contributed manual. So if you are a user and there is a lack of doco it is your fault xD


this could also be a blog post ;)


lukefromdc
Registered Member
Posts
27
Karma
0
Using MLT 6.1.0 I got good results with

Code: Select all
./configure --prefix=/usr --enable-gpl --enable-gpl3


Any use of the old --disable-qt option will cause the rendering to divert to the screen with MLT 6.1.0. According to the MLT devs the QT module is used to create the OpenGL context at render time, which means disabling the QT module should never have worked. Keep in mind though that if you make-install a test build over a previous build (at least into /usr), old modules not duplicated in the new build are not removed as they would be in a package replacement. Thus, all test builds needed to be packaged up first or all previous builds totally removed to get a valid test. Thus the nuisance of test builds that appeared to work with --disable-qt but did not when actually packaged up into Debian packages.


These always diverted output to the screen when all traces of previous builds were removed:

Code: Select all
./configure --prefix=/usr --enable-gpl --enable-gpl3 --disable-qt --enable-movit

Code: Select all
./configure --prefix=/usr --enable-gpl --enable-gpl3 --disable-qt --avformat-vdpau

Code: Select all
./configure --prefix=/usr --enable-gpl --enable-gpl3 --disable-qt --enable-movit --avformat-vdpau

Last edited by lukefromdc on Mon Apr 25, 2016 8:25 pm, edited 1 time in total.
lukefromdc
Registered Member
Posts
27
Karma
0

Re: Making Movit work

Wed Mar 30, 2016 6:03 pm
funix wrote:Hello

How do you compile mlt without VDPAU ? I don't see a --disable-vdpau option or something similar. Here is my configure options (with qt5)

./configure --swig-languages=python --enable-gpl --enable-gpl3 --qt-includedir=/usr/lib64/qt5/include --qt-libdir=/usr/lib64


Answer: Just don't expliclty enable VDPAU, but this was not actually the problem. Problem was that I was still disabling the QT module, something I had done because in May 2015 it was loading QT4 libraries and segfaulting kdenlive 15.04. Just don't disable that module, make sure Movit is build before MLT and everything should work
User avatar vylaern
Registered Member
Posts
157
Karma
0

Re: UPDATED: Making Movit work

Fri Jun 10, 2016 8:48 am
Hi,

I just found this topic after publishing my one:
viewtopic.php?f=270&t=133357
I am missing movit and GPU option in kdenlive.
lukefromdc
Registered Member
Posts
27
Karma
0

Re: UPDATED: Making Movit work

Fri Jul 01, 2016 7:29 pm
vylaern wrote:Hi,

I just found this topic after publishing my one:
viewtopic.php?f=270&t=133357
I am missing movit and GPU option in kdenlive.


Possibly your distro compiled MLT without Movit support. Also, in the kf5 versions of Kdenlive you need to have kdenlive 15.08 (buggy version) or later (15.12 and 16.04 are good). The 15.04 version did not support Movit so far as I ever saw.

 
Reply to topic

Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], Daxx, Google [Bot], inhiway, vanadiumboy