Hi darktable users and timelapse geeks,
I would like to create (semi) professional timelapse videos. But I would also like to stay in RAW format as long as possible, and use darktable as the raw editor. Presently, there are some limitations in that respect. With this article I would like to discuss this and hope that one day, darktable will become a suitable tool for this branch of photography as well. You may call this an extended “feature request” (referring to ‘github’)…
Later in this article, I will refer to commercial software. My intention is not to promote any commercial software - I am not paid to do so, I am just personally convinced. There is no relationship involved with those programmers, except that we know each other via Internet. My aim, my motivation, is purely to try to bring two worlds together in order to overcome certain limitations.
Adobe Lightroom is a trademark of Adobe Inc. Later in this article referred as Lightroom or LR.
LRTimelapse is a trademark of Gunther Wegner, lrtimelapse.com.
What is timelapse photography all about?
Timelapse videos are made of a series of still shots of a scene, which moves (too) slow, one can (almost) not see any movement with the bare eyes. The movement of the stars, due to the rotation of the earth, is one typical case. But there are also many other examples, as well as pure aesthetic approaches. One example could be: https://youtu.be/Od-p10d_llU
Timelapse photography simply is a branch of photography, where invisible things can be made visible…
With the gear (like sliders, a bunch of tripods and cameras), you collect a huge number of photos, which later generate a breathtaking scene, e.g. of astro photography, like NOX ATACAMA from Martin Heck https://youtu.be/x2D7jHfitzk
What can be done with darktable and what can not
With darktable’s exposure module, you can already de-flicker, once you are in “automatic” mode. That part already works quite nicely.
What you cannot do, is to handle transitions of lightness, like from sunset to night (which is The Holy Grail of timelapse). Particularly in such situations, you may even want to have a transition for the white balance. This is something which is impossible in today’s darktable. Today, you can have one WB setting and copy it to some or to all shots in your picture set, but a smooth transition (e.g. via a set of keyframes) is impossible.
Those are the two most prominent examples where transitions might be wanted. Indeed, once you are editing a timelapse sequence, you might find a lot of other settings, which you would like to have a transition between the first and the last part of a sequence or even for some keyframes in between.
For all transitional tasks, there is a market leading software available. It is not FOSS but a commercial one (see Disclaimer above). I am talking about LRTimelapse. Apart from the commercial version, there is also a FREE VERSION which works with a series of up to 400 images. That is meant for testing purposes, but it also gives the private users with smaller projects the opportunity to use it for free without any timely restrictions.
What this software does, (simplified explanation)
- it imports Adobe Lightroom’s .xmp files,
- does the modifications and
- writes them back into the .xmp files.
- It also triggers a “Visual Preview” generation (image+xmp development of a preview via batch call) analyzes the result and uses that for deflickering purposes, displaying the preview etc.
- It offers a powerful video renderer to assemble the developed images to a video clip in different formats like h.264, h.265, prores, motion jpg etc.
Currently the manipulated .xmp files get imported back into Lightroom for development and then exported and rendered.
A possible way forward, in my opinion
Now we are approaching the intention of this article.
For me, as a Linux freak, it was clear from the beginning that I wanted to have native linux software for my photo workflow. And, from the very start, I am a very big fan of darktable.
Many users seem to be annoyed by the license model of Adobe and are searching for alternatives. They might switch to darktable…
Now, as we are in darktable and some of us want to manage timelapse sequences, we figure out that darktable and LRTimelapse are not compatible with each other. LRTimelapse is designed to be compatible with Lightroom and its incarnation of .xmp. Darktable uses its own .xmp structure, which for the developers might be very clear, but at the moment, this clearly is an obstacle. Another “hurdle” is the enormous power of darktable, especially since its extremely flexible masks and blend modes are implemented per module.
Since years I am a PITA to Gunther Wegner, the author of LRTimelapse. I kept telling him, darktable is not that bad, here and there even way more powerful than Lightroom. When we discussed about usability and handling concepts, it took me quite some time to convince him. After all, I could notice that at least some of the ideas seem to have rooted.
BTW: quite some time ago, there was a darktable timelapse fork, but it did not survive, as far as I know.
Back to the main topic…
What has happened so far?
I was telling Gunther about my dreams and also about different philosophies of usability and the developers’ quite academic approach of darktable. During those conversations I had to admit that it would be quite something to bring the two worlds of commercial software and FOSS closer together.
While one has to make its living, the other might have many other motivations, be it reputation, just for pure fun or fame or whatsoever. The first has to calculate affords and gain from beginning, where the latter perhaps is more motivated by a personal interest.
We are lucky, because from his heart, Gunther likes FOSS quite a lot and supports this in many ways, like his first version of a dedicated timer. So, unlike big organisations, he is willing to open mindedly listen to this issue and even may offer some support (e.g. writing specifications).
The aforementioned transitions are called “animation” in the LRTimelapse environment. In order to be able to animate modules, the adjustable values of the modules need to be accessible.
The way to access is editing/modifying the .xmp files, which come along with the photos. In order to do so, the .xmp file ideally keeps as close as possible to what Lightroom provides, alternatively it maintains a quite reliable, well defined specification according to the XML standard or scheme.
Darktable is extremely powerful and, due to the nature of FOSS, it is also extremely agile (e.g. the filmic and tone equalizer modules). Especially the masks, they are IMHO far ahead of LR and maybe one of the reasons why at least some entries in today’s .xmp files are base64 coded.
internal corrections in LRTimelapse (like the deflickering) are currently performed on hidden tools in Lightoom. As darktable already can handle several instances of one module, I consider this to be possible to adapt for darktable.
Anything I describe here, is spun from my own thoughts, with my limited know-how or understanding of coding software. Advice for different approaches, which strive at the same goal, is very welcome.
Let me outline my concept:
First of all, there might be a need for a separate “view” besides PRINT, SLIDESHOW and TEATHERING, called TIMELAPSE.
Inside that view, the modules that need to be animated in order to generate transitions, should be grouped together (not newly developed, just maybe restricted/locked in a certain manner), like but not ultimately limited to:
- white balance
- shadows and highlights (to be replaced by tone equalizer in the future)
- color zones
- levels (critical, I know)
- equalizer (at least tricky)
Animation can only happen on linear tools with a predefined set of parameters. A tonecurve with n-points for example wouldn’t be possible to animate easily, a parametric tonecurve with blacks, shadows, mids, hightlights and whited (5 discrete parameters) would work.
We should work with Gunther to define a subset of tools that make sense for timelapse editing to be implemented in the first step.
If the user uses any other tools in Darktable, LRTimelapse could make sure that those changes get populated to all images of the sequence (but not animated). With the separate “Timelapse” view, it becomes clear to the user, that only the tools that are on that view, will be animated.
Inside that view, one can now edit the images designated as keyframes. Those keyframes need to be identified, either by tags or any other (automatic) technology. Currently LRTimelapse simply uses Star-Ratings to mark the keyframes. In Lightroom a simple filter for starred images then can be used to identify the keyframes.
The idea is that, in such a dedicated view, the user can expect that edits of the keyframe pictures could be animated by LRTimelapse (which means that interpolations/transitions will be calculated and written into the .xmp files).
Now over to the very essential part: Those modules, that are embraced in that dedicated view, need to be exported into the .xmp file ideally(!) identically to what Lightroom provides. Alternatively in a quite reliable, well defined, specified manner, according to the XML standard or scheme.
For the beginning, it would be sufficient to migrate the tools on the Timelapse-View into a readable XMP format. The other tools could stay in the current base64 format.
For the next step, we probably need a locking of the pixle pipe of the timelapse-view modues
As soon we gain more experience, we can add more modules to the view “TIMELAPSE”.
I have read houz’ article about why there is no darktable for windows in the past, which finally ended up in this new situation. Similar reasons/situations might apply here as well. Hopefully we are all open minded and will find a suitable way to make it happen…
These new functions will be a pain for debugging and testing. I want to contribute on this, as well to become the interface between the two “worlds” of FOSS and commercial SW, by means of working on the compromises necessary (I guess that can be a hard job already).
With this article, I hope I can convince the related devs or devs, who are also eager for timelapse photography, to support this project and whenever their time allows, to implement the needed steps gradually.
The intention is to make darktable compatible with LRTimelapse. In order to do so, a separate view is to be implemented and provide a limited set of modules there with limited “power” (e.g. masks/blend modes restricted). And last but not least, this timelapse dedicated modules should generate a clean or specified XML-alike or LR-compatible .xmp-files.
All other modules might get used by users for timelapses but without animations for the timelapse video sequence.
I seriously hope that one day this becomes a reality and that we see it being merged in the official tree.