Faster recorder capture interval

I want to make the capture interval in the recorder more quicker. The current recorder is limited to 1 fps. It would be great if the recorder can record up to 10 fps.

I believe this wouldn’t be too hard to implement, no? Just changing the timer interval…

The 1-second setting is not fps, it’s the capture interval. It means that Krita will not take another snapshot until at least 1 second of active painting has elapsed.

3 Likes

I think that @hilmiyafia wants a capture interval of 0.1 seconds which could be thought of as an image capture rate of 10 fps, it depends how you think about it.
The capture and format conversion of the canvas image will use resources and it may be that a capture rate of 10 cps (captures per second) would have a noticable drag on performance while painting.
Only a developer could give an opinion or facts about that.

1 Like

As far as I can tell, implementing this would be as simple as changing the input box to accept decimal values or to use milliseconds instead of seconds, and making sure the value gets correctly passed to the timer. (Timer uses milliseconds already.)

I imagine setting the interval too low might cause performance issues (and use a lot of disk space for all those captures), but I guess that would be for the user to figure out. (Maybe set a reasonable minimum value, don’t let users set it to 1ms.)

I don’t remember, I think @loentar already provided an explanation about the 1s limitation, but I’m not able to find it :thinking:

What I can see, from this benchmark, time needed to save 10 images per second will be 0.85s… might be source of lag :slight_smile:

After it highly depends of computer specifications…

Grum999

@AhabGreybeard Yes that is what I mean, thank you :slight_smile:

@freyalupen Exactly! It is nice to have the option to set the interval lower, I don’t mind trying how low I can go without a noticeable lag.

@Grum999 Well 10 FPS is what I’m hoping for, but even with 2 or 4 FPS would still be helpful. It’d be great to have the option.

Be aware that you’ll soon fill your disk with the jpg or png files of the snapshot from recorder you would have to keep an eye on the disk usage. We don’t want people coming and complaining about their windows getting slowes down to crawl because of krita

@raghukamath You can put a toggle in configure krita window where it says “limit capture interval”. So by default this toggle is turned on. And then you can put a disclaimer when you have that off.

That would be better placed in the Tool Options docker for the Recorder.

People often ignore the disclaimer :man_shrugging:t4:

Alternately, set the inputbox minimum to a conservative number, and allow setting lower numbers directly in kritarc. I’m kind of surprised it works, but as long as you don’t touch the inputbox it uses the value from the config while displaying the minimum value in the inputbox. (I made a quick hack to test it out.)
So the inputbox minimum could be something like 0.20 (5 captures/second) and the hard minimum could be 0.10 (10 captures/second). But even 5 times as many is still a lot.

@AhabGreybeard You can put it anywhere you think suitable. I’m just giving a solution to @raghukamath concern.

@raghukamath If they ignore the disclaimer then that’s on them. This is not the first time Krita use a warning about performance issues. Refusing to add this feature because you’re afraid people will complain is not a good excuse. It’s like limiting only to 3 layers because you’re afraid anymore than that can get slow on some low end computers.

Hey I am not against adding this, I am just saying that there are people who will be affected by this.

And I know krita has warnings, and I also know people ignore that warning and come and complain. For example krita shows a warning which clearly says that saving a layered file as jpg will result in loss of data yet we have posts here saying krita deleted their layers. And your layers analogy is not a good one. This feature will really fill your disk which can result in non bootable system, while layers will probably fill your memory but on force shutting krita the memory will be released.

In any case why it was limited to 1s only @loentar can tell us.

Coming back to the usecase do you really need 10 images per second. do you paint that fast?

@raghukamath That’s why I suggested to put the limit settings on krita configuration. It’s not directly available to most people who is beginner to krita.

If that is the case, then krita can also check how many space left on the disk before saving another capture. If the space is less than that, then it will stop the recording and notify the user with a pop up window. The limit can be as big as you want just to be safe.

Yes, I paint quite fast. I only paint for 1 to 2 hours in one sitting, unlike some artists who paint for days. I can compile the recording into a video file before starting the next session, and delete the previous image files. Video files take less space than images. With 1 second capture interval, 1 hour of painting only give me 2 minutes of video with 30 FPS. I hope I can get 10 minutes video out of it.

I think that is not the case for most, honestly I don’t see it convenient to add this because of the problems it could generate.

@SchrodingerCat What more problems that I have not suggested a solution to it?

@freyalupen Can you please give a screenshot of the kritaarc file? Which line to modify? I don’t see the line to set the inputbox minimum value.

Hello, I’m curious application-wise.
Do you want more captures per second to have slower speed timelapses?

@MangaTengu Yes! :sob: But I want it to be smooth too. Doing it by just making the final FPS lower without changing the capture interval will give you choppy video.