3d transitions for new kdenlive version.

Hi you all! I have used for a lot of time pinnacle and ulead software on windows for editing my home video.
Now I am trying kdenlive on kubuntu 10.04. It is a good software.
But I would like some 3d transitions.
I have take a look on this project: http://gvfx.blogspot.com/, I think that this is a simple and good way for insert in kdenlive some 3d transitions.
So, I think that the kdenlive should to show, the transitions with a gif (or with another way) so, the user, know quickly the transition type. This is the same way used by pinnacle or ulead software.
I hope this help!

I think this was already discussed if not here then definitely elsewhere. Basically, I agree with the concept, but the way gvfx and blender works does not make integration simple and robust. In fact, as is, it will introduce a lot of usability issues and instability, which will add considerable overhead in support, testing, debugging and code to adress the kludgy integration. I occasionally revisit the Python API changes in blender releases to see if it ready, but I just do not have the time to develop the patches for blender especially as this has a much higher gimmick than true value level.

Emanuel Lopez (Timbis) also from argentina has been developing GVFX, and is about to launch 0.1.4, he made huges advances and soon I will create newer transitions

Blogpost: http://timbisenterthelinux.com.ar/gvfx-0-1-3-muy-cerca/
Google Code: http://code.google.com/p/gvfx/

@ddkenedy, GVFX had been conceived as an external package as independent as possible so the NLE should have to fill a textfile and ask for a render all externally and no matter which blender/python version.

GVFX english explanation: http://www.youtube.com/watch?v=Y2Gbu1HRN2Q
GVFX Spanish explanation: http://www.youtube.com/watch?v=s-ZBPjPVKZo

it sounds interesting...
How is the integration with other video editors currently working?

but can you do a shell version of this stuff?
because... omg gtk.. i mean i have kubuntu without gtk stuff will be nicer if i could get that stuff without gtk ugly stuff
i know it's pity like thinking but... if i would do something i will do the shell version :D so it would be libraries independent

@gab3d statye of things:
-Cinelerra people too busy fighting eachother (2006)
-kinoDV people interested, but vanished on attempts (2007)
-OpenMovieEditor,working on some stuff I suggested, actually made a UV distorts based on blender UV render to get awesoime distorions and take all this into 2D (faster/realtime) and in time expected GVFX support.... RIP (2008)
-Kdenlive, people studiyng it (2009)
-GVFX declared death by Alex and Me (2008).
-Emanuel lopez (timbis) loves the software and brings it to life again,makes a GUI to make it easy for users to use since NO NLE would use it.
-Openshot interested on GVFX since they use a similar aproach for Titles on 3D (blender 3D)

@nowarDev the opriginal project was conceived to work GTK/QT free, you can still download the package from here: http://alexvaqp.googlepages.com/ProyectDir.zip
unfortunately many changes had been introduced by Emanuel Lopez since then so maybe would be easy to modify the new code to work without the UI than actually go into that old code.

Most of the process is actually calling a render from the commandline so...
to understand how theold ersion works I writed this description with the instructions to ask for a render in GVFX

it all comes to:
blender -b gfvx.blend -P gfvx_script.py

-b renders in background
-P call execution opf the script, it opens the txt file and loiads the videos from the IN frame to the OUT frame and replaces the clipA and clipB texturemaps.


mmm nice tested,

/me will start to integrate this with dolphin via akm-video-qt && kdenlive
but i have no time right now.
will see
for now akm-video-qt creates kdenlive video project with rando wipe effects
i will try to use your script

of course it's pity i mean with this way i have to encode before to import to kdenlive... so.. it's just to create automatically all the stuff.. but you can't edit it you have only to render... mm that doesn't make sense.. should be done from mlt maintener and i guess.. :D anyway your script first release that i have just tested is good for my own use :D

the original idea was, that the Editing Software had a dummy (empty) transition opn its timeline, once you put the clips and stablish how many frames are on the transition and which clips are on it, the Editing app sould fill a TXT file with the videofiles and the frames numbers for both clips, the onld one was only able to manage 100 frames, the newer made by Emanuel can actually rescale the whole animation up or down for different scenarios, once the render was called and completed inb the background the Editing Software should have to load that clip to replace the Dummy transition.

If you had worked with Hollywood FX or SoftXplode you get the idea, all the transition render is made OUTSITE the Editing App, so to have better/newer transitions, just change a file.

I made this video to show the Premiere/hollywoodFX worflow works:

"once the render was called and completed in the background the Editing Software should have to load that clip to replace the Dummy transition".

...sounds to me like the rendered transition clip would act as a "proxy" for the transition.

anubis4d, regarding "outside" and "external"

But that is what makes GVFX and interop with blender a problem to integrate! What if one of the clips the transition is using has filters (effects in Kdenlive) or is involved in a multi-track composite? The filters are not yet applied to the underlying clip - that happens in the processing software, which here is MLT.

OK, fine, you think, it is not perfect integration, and we can tell people to expect limitations, but in reality it becomes a support burden. Also, it is quite awkward to try to integrate this into the timeline - both in the code but also for the user experience - no other transitions require pre-rendering. What happens when one of clip ends involved in the transition is changed? If it is currently rendering in background, what happens when someone tries to export/render the kdenlive project before that is finished?

For now, I think a completely separate, standalone tool that outputs a clip that must be added in Kdenlive makes more sense. Congrats to Emanuel.

@anubis ok but i am a scripter i mean i love get the videos on dophin right button do the stuff for me ...
so basically i create a mlt file ... with that script.

i am not a skilled programmer like dennedy the only thing i can do it's try to create a mlt with transitions already encoded but... then does it make sense? i thought and i guess no... because if you can't see what you are doing it's just a bad thing.

i have to say dennedy has right it should be integrated on mlt but if he has no time xD why don't you think to give him a hand :) i know programming is hard but if you was able to use phyton...

my 2 cents

very valid points you bring, ddennedy!
it doesn't seem like a simple task.
do you think it is feasible, from a technological standpoint, to integrate this into MLT?

@gab3d "...sounds to me like the rendered transition clip would act as a "proxy" for the transition"
yep (sorry the "dummy", it comes from my past as 3DMax user).

Mlt integration don`t think is the best for this kind of tool, as I see MLT is meant to be Realtime, GVFX (as hollywoodfx was) were expected to be a slower kind of transitions, we expect to have render, and for all users realtime is fine but for certain aplicacions having the ability to work with several tools is better. What is faster? fork some 3d engine into the Mlt or Kdenlive or just use an external, well known and used on the comunity 3D tool as is blender to do the job NOW? that is a price to pay in the case of realtime I think... A long time ago I used hollywood FX and hated the fact that I couldn`t use 3D/max to make my own transitions, well seems like we have all the pieces scatered here right now.

the vale of such thing is this, many people payt A LOT of money for these kind of tools.

This is hollywoodFX

HollywoodFx transitions

The answer had been on HollywoodFX for a decade now, the Proxy(aka DUMMY) transitions is and empty object for the NLE, in the 90`s HolywoodFX had a RENDER NOW boton on it, so you can render and watch them on the timeline, buyt most of the times, the user simply selected the Transition pack and put the transition, pick a thumnbail and keep editing, NO PREVIEW were aviable in the former versions, but once you had yout timeline ready to render you could ask the external package (hollywood fx en that case) to render all the transitions BEFORE the actual NLEW render passes over, well, in the GVFX case if some NLE uses it you wouldn´t be able to see any difference on the timeline, just after the final render (all the GVFX parts woulkd be rended and THEN the whole project, of course, if you had an effect applied on a part of a transitions you should have that fragment donde first)
Is you change the duration on a GVFX transitions the NLE should have to modify the values on the textfile... if THAT transitions had already been rendered, well you will have to mark it as unrendered and create the script to process it again.
HollywoodFX worked that way and they wasn´t able to touch Adobe Premiere code, so they made their own 3d render engine with the transitions in that EXTERNAL WAY so the plugin was able tu run with many different Premiere versions (well, at least until the CS versions appeared).
Being a complete separate app is the way users (like me) can add more cool stuff on a blenderfile not caring about the NLE versions (not having to code anything, just use blender and overwrite a file), if developers make the integration, all the changes and new transitions would be on the user`s hands, or even editr`s hands (emanuel is also a blender dude).

Unfortunatelly I`m not as coder, I was onm a time but nowadays video Editing, Motion graphics and 3D Animations are part of my life, just the guy wqith the crazy ideas Emanuel is the genius here.

From what I understand, for this to work from inside Kdenlive...

- MLT should independently process (apply effects, etc.) each of the overlapping frames of the clips taking part in a GVFX transition.
- Then those clips' frames would be passed on to GVFX to render the actual transition (via Blender).
- Then Kdenlive (or MLT?) would receive the rendered clip and automatically substitute the GVFX transition in the timeline with this clip, for compositing it with the rest of the clips of the timeline, as usual.

...is this correct?

1 - independent
2 - don´t have to pass any frames or prerender anything, just take the clip data and fill a text file(.txt in the older GVFX, or xml in the newer Emanuel`s version) and indicate clip name and frames in/out.

clipnameA, INframe, OUTframe
clipnameb, INframenumber, OUTframenumber

the only exception is when and involved clip has an effect applied then that part of the clip should be pre-rendered, and indicate in the textfile the filename/location of the tempfile as clipnameA, or clipnameB. The GVFX old version couldn`t work with paths, the newer version can take filenames as /home/meuser/.kdenlive/temps/temporatryclip0001.avi and use it, actually Emanuel uses an open dialog to indicate which clip to use.

3 - It wouldn´t receive nothing, render makes a render to a path as framesequences or videofile, you can indicate that in the textfile (whichever is faster, or more convenient for quality/speed, the user may want to use framesequences in PNG despite the diskspace for higher quaility or simpli use avi/mjpeg for faster renders if quality is not an issue). Once the render is finished, the editing aplication should manage to load the clip on the timeline.

"...is this correct?" you got the idea

Emanuel is working on GVFX 0.1.4 version: this is what he wrote in the maillist, actually this newer version gives more options that I have explained before. I will translate it into english for you:

------------------------Emanuel Timbis Lopez
So far, GVFX is an aplication that is able to generate a transition with the last frames of the first video, and the initial ones of the second video, this is for the user`s sake so it won`t be useless (GVFX was meant to work with an nlke, but now can be used in standalone way).

Mi "integration idea" to any video editing tool is as follows (image attached):
1º - open 2 complete videos on GVFX
2º - One transitions video is created
3º - 2 cutted videos are created also (both have the transition frames removed)
4º - when process is completed, a winbdow pops with the video insite to drag it into the video editing software of your choice (assuming all video editing tools supports drag n drop... looking at you cinelerra people! (anubis4d note)).

I think is more confortable now to work like this as astanbd-alone or with a Editing software, in the future I would love to have the variables from the Video Editing software automatically. If you had more ideas about how to simplify this process (4 points) and make it faster, that would be awesome.

this is the changelog and TODOLIST for 0.1.4

Implemented in thsi version:
* Instalable and portable single file code.
* Warning with unsupported fileformats (flv,3gp)
* Filenames with spaces are accepted
* Tilde is accepted in the code(spanish: á é í ó ú )

Still to implement in this version:
* uncomplete data warnings
* Video conversion tool integrated (in case the vide is not compatible with blender 3D ffmpeg internal texturemap engine, a CONVERT boton in the wasrning dialog, I already have the ffmpeg commands to do that)
* Make optional to generate 3 files (firstpartA/TransitionClip/lastpartclipB) or just create the transition clip (already have the ffmpeg comand to cutting videos)
* still image support (I know how already, but it`s getting complicated to implement)

changes for future versions:
-Elimination of the SAVE boton (is there to testing)
-full working with 2.5 (as editing the BlendFile as to render)
-Selectable transition duration (currently fix to 100 frames)
-Render progress Bar.
-Operative menubar
-System icon
-Drag and drop to support filesystremn tree in Video Editinmg tools.
-Simplified se-up in a single combo-box
-Check for all the transitions to be well assigned
-the resulting video appear to be dragged and previewed
-Realtime preview (using Blender 3D GE, now supports video http://www.blender.org/features-gallery/features/)
-tilde in filenames
-translation Files


"2 - don´t have to pass any frames or prerender anything"

If the video in a track that is involved in the transition has any effects on it, then it must be processed/rendered before handing it off to GVFX. And guess what? In MLT, ALL videos have hidden filters on them to conform them to the project settings (crop, deinterlace, scale, change field order, and pad). If we give GVFX filenames and position data, what will it do when the 2 clips have a different resolution or different framerate? How will the result of the 3D transition look if the video is interlaced?

Now, with all that I have said in opposition, I also keep on saying that I like the concept. I like the idea of inter-operating with other tools. I especially like it when those tools have a good UI for designers and when it includes scripting! For example, I recently added support for Flash animations in MLT. This was possible in a very easy way due to swfdec, which is a library.

My daughter has been very eager to get into graphics and programming, and she has done good things in Scratch and has been learning Blender. Tonight, she expressed again that she really wants to get into coding. I told her that I will help her, and I planned a 3 step approach.
1) Make an animated title in Blender and integrate it into OpenShot.
2) Make a simple UI using python MLT API to define a transition between 2 clips.
3) Integrate GVFX into result of step 2 using lessons learned from step 1.

I know this is similar to what Emanuel is working on, but it is a project to teach my daughter and for me to learn what might be possible. Who knows? Maybe I will discover or create the new Blender Python API that lets me integrate into MLT the way I would like.

Here is a tutorial, I have used Kdenlive for the workflow (the post is on spanish but also in ENGLISH grey text).
here is described how this CAN BE DONE NOW by hand.
Emanuel had tweeted that the 0.1.4 version is ready, with format converter and many other cool stuff.

ddennedy, the videos are maped into planes by BLENDER 3D so any video is OK (as long as is supported by the "movie" material), and the same transition can be rendered to any size. Play with it.

hey people, Emanuel (timbis) has been working on 0.1.5, check it out, I wrote another tutorial about the HORPHAN clip generation of the newer versions, that is a cool thing.

I try to make a transition, but nothing append, I am under Kubuntu 10.10, when i drag a clip, i have answer in window terminal,

Traceback (most recent call last):
File "/usr/share/gvfx/gvfxgui.py", line 394, in got_data_cb
archivo_namepre1 = archivo_namepre.replace("%20", " ")
AttributeError: 'NoneType' object has no attribute 'replace'

can you help me


I will check it, I have an ubuntu somewhere to install a virtualbox machine somewhere.

Hello anubis4d,
Thank you for your answer. I am very interesting for using this 3d transition.


Hi everyone!

Etienne, the problem are the libraries GTK, i will treat to finish the next week the porting to QT.

Thanks for use GVFX! Regards all!

Hi Timbislopez,

Nice, thanks for your job, I think this will be great.

Best regards.


Hy is possible to integrate gvfx or other 3d transitions with current kdenlive ?
i try install it on ubuntu 12.04 and have problems.

here is error (gvfx not work) http://code.google.com/p/gvfx/issues/detail?id=2

when i resolve this error is any kdenlive gui to setup transition ?