This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Timelapse Recording - My missing feature #1

Tags: None
(comma "," separated)
Zerginator
Registered Member
Posts
5
Karma
0
What I really would love to see in Krita one day in the feature is a screen recording feature alike Procreate on iPad has.
Of course it is possible to use a third party screen recording tool, but what makes the feature in Procreate so special, is that it records the painting only, without zooming and turning of the canvas, what makes speed painting really ugly in my opinion (except you want to show this exact part of the painting process explicitely).
Unfortunately I only see such a timelapse recording mode possible as part of Krita itself, and would not know how to realize such with third party tools.
User avatar
Quiralta
Registered Member
Posts
301
Karma
5
OS
I do recommend OBS https://obsproject.com/ is free, open source and cross platform, just like Krita. Is very versatile and you can choose/arrange screens, areas, audio inputs, etc. I used it just a bit (still trying to find a good workflow to record) but right from the start is quite a nice app.


Self educated by a very bad teacher!
My Stuff
Zerginator
Registered Member
Posts
5
Karma
0
Thanks, thats a really nice piece of software I actually did not know. Just playing around with it.
But unfortunately still seems no real solution. It still is a "screen recorder" so, when I zoom into the canvas it records the zooming.

Here is just some example timelapse in procreate:
https://www.youtube.com/watch?v=N01fdcf2xzQ

As you can see the canvas is completely stationary and only the brushstrokes are recorded in the video, even though the canvas is zoomed and rotated during drawing.
User avatar
Quiralta
Registered Member
Posts
301
Karma
5
OS
Oh, I see what you mean now, that actually looks interesting. Only thing I can think is we could record the overview docker (as can be a window on its own of any size), but it takes a while to update, wouldn't be a smooth show case of the painting process. If you find a solution, would you please share, Now I'm interested too :D


Self educated by a very bad teacher!
My Stuff
Zerginator
Registered Member
Posts
5
Karma
0
I could imagine such a feature should be not do difficult to implement (correct me if I am thinking wrong here)
It would be like exporting a "picture" of the canvas about every second (while doing changes on it, to remove long pauses without changes) to a mp4 stream.
User avatar
TheraHedwig
KDE Developer
Posts
1794
Karma
10
OS
Zerginator wrote:I could imagine such a feature should be not do difficult to implement (correct me if I am thinking wrong here)
It would be like exporting a "picture" of the canvas about every second (while doing changes on it, to remove long pauses without changes) to a mp4 stream.

Well, Krita is open source, if you have an idea of how to implement it, maybe try implementing it? :p
Zerginator
Registered Member
Posts
5
Karma
0
Believe me. I would definitely love to give it a go!
I just do not think I am capable enough as a programmer. Never done much more than quite simple python programs and Matlab coding, with really basic experience in C.
But I will have a look if there is any chance contributing towards something like this.
User avatar
edgarejm
Registered Member
Posts
50
Karma
0
OS
As much as I love the idea of just canvas only recording, I can honestly see people might not want this (me included). A lot of people would love to know how artists handle blending modes and without seeing the layer docker, people won't know how a certain effect is done. For that matter, anything else that is not painting, ie using the perspective tools, using filters, etc would not be captured in the recording... which kind of makes learning through timelapse even more difficult....


User avatar
Deevad
Registered Member
Posts
451
Karma
1
OS
A big workaround if you own two monitor:
Go to Window > New Window.
Put this new Window of Krita on a second monitor
Go to View > Add a new view of your current project.
Make this windows fullscreen with Tab ( and removing toolbar in settings)
Screenrecord at low frame per second what happen on second monitor while painting on first one with all windows and features. o)


User avatar
voithos
Registered Member
Posts
1
Karma
0
Just want to give a +1 vote for this feature request (prior to finding this topic, I actually came to these forums to request this!).

While I agree that using normal screen-recording would generally work better for tutorial-style videos (in which capturing the actual tools used, dialogs opened, colors selected, etc, would all be useful for the viewer), I would suggest that in-Krita action recording support would actually be superior for the purposes of actual timelapse creation. I feel that it would have the following benefits:
  • It would be a "clean" recording of an art piece's progression. For a normal non-tutorial timelapse, time is sped up so much that things like tools, dialogs, zooming in and out, undo/redo, etc, all become incoherent noise and aren't really useful for learning unless the video pauses from time to time to explain a technique, etc. For a pure timelapse with no pauses, it would be much better to have a non-zooming, UI-free video of the strokes on the canvas.
  • It would avoid the performance overhead of full-blown screen recording software. Since the feature would just need to activate whenever an action / stroke is taken, it seems like it would be much less taxing on a artist's machine, compared to running Krita alongside full screen recording software.
  • It would be more consistent and reliable. Ideally, it would be possible to enable this kind of recording by default for all Krita documents (perhaps, based on a toggleable option in Krita's settings). This would allow artists to dive right into their work without going through the overhead of setting up screen recording, pausing/starting the recording during their art session, etc - while still being able to, if they choose, easily generate a timelapse of the piece once they're done.

I know there was a macro recording feature that was recently removed because it was a maintenance burden and didn't capture all of the necessary inputs (https://github.com/KDE/krita/commit/99238df13951e00a9079a5cb3ab71d20a50111a2). This is understandable, and from the commit message, it does sound like a "centralized" approach would be more consistent and maintainable.

I realize that this is likely not as high-priority as much of the other work going into Krita right now, but if we wanted to track this feature, what would be the best way to do so? Should I file a feature request at bugs.kde.org or would we first want to discuss it here (or elsewhere)?

(Thank you all again for building Krita - it's a fantastic piece of software that I really appreciate having access to!)
User avatar
rayalez
Registered Member
Posts
9
Karma
0
Just want to add my +1, I would REALLY love this feature. Aside from the reasons mentioned above, it would be extremely useful because:

- You don't have to think about recording while painting, which makes a huge difference. You can pause to think, switch to another window, or go drink some tea, without worrying of recording gigabytes of unnecessary video.

- You don't have to speed up the recording and edit it afterwards.

- Making the process of creating a video out of painting seamless really encourages people to create and share timelapses, which will be great marketing for krita.

- This would enable people to make whiteboard explainer youtube videos. It would be so insanely convenient to just draw illustrations, and then just record a voiceover, and boom a high quality video is done. I'd really love to be able to do something like that, and doing it with a regular screen recording software is slow and difficult.


User avatar
halla
KDE Developer
Posts
5092
Karma
20
OS
What's needed at this point is not people trying to convince others that it would be a cool feature, but people who want to sit down and write (lots of) code :-). We all know that this would be cool, and over ten years ago someone started implementing it, but never finished the job. We had to back out that code, but that means that someone interested in the feature can start from a clean slate.
User avatar
rayalez
Registered Member
Posts
9
Karma
0
@boudewijn I'd love to contribute but I'm a web developer, I only know python/js, so all I can do at this point is nag you guys =)

Unless it's possible to do with python macros, then I could give it a try. Do you think it's doable? Any tips?

As far as contributing, I can add to Deevad's workaround:

You don't need a second monitor to record the whole canvas - OBS allows you to select and record a single window.

After you go to Window > New Window; go to View > Add a new view of your current project; and hit tab to hide the UI;
in OBS you can click "+" in Sources, select Window Capture, and add the new krita window.

I have also set Settings > Video > FPS to 10, and in Settings > Output:
- Output Mode: Advanced
- Recording tab > Type: Custom Output(ffmpeg)
- Container Format: h264 (Video)
- Video Encoder: libx264
- Everything else is default, except maybe you want to check Rescale Output and set resolution to what you want.

This seems to record small files, that are already "sped up". I don't know enough about video recording to understand why, but this seems to be doing what I want.


User avatar
halla
KDE Developer
Posts
5092
Karma
20
OS
rayalez wrote:Unless it's possible to do with python macros, then I could give it a try. Do you think it's doable? Any tips?


No; the problem is that everything in krita that does something needs to be able to serialize what it does and save that. And that needs changes to the core code.
Zerginator
Registered Member
Posts
5
Karma
0
It seems, this feature is getting some attention!

It was discussed in the Krita 2019 Sprint:
https://krita.org/en/item/krita-2019-sprint/

And is marked as task in phabricator:
https://phabricator.kde.org/T11344


Bookmarks



Who is online

Registered users: Bing [Bot], claydoh, Evergrowing, Google [Bot], rblackwell