Timelapse for pixel art is blurry

Hi there, I’m doing pixel art and recording the timelapse. I’m choosing PNG to have sharp and crisp results. And the pngs in the KritaRecorder folder are indeed crisp. Resolution about 300 x 165.

But then, when I export the timelapse, the resulting video is blurry. Even if resize to 1920px of width. Why is that? How can I solve this?

The .mpg encoding uses compression in a similar way that .jpg does so it’s difficult if not impossible to have pixel perfect reproduction in .mpg videos.

You could try scaling up the originals to 1920px (or whatever) width using Nearest Neighbour filtering to preserve the sharpness of the pixels and then Render that out to .mp4. That should preserve individual pixels though they may then have blurred edges or other artifacts.

The alternative would be animated .gif or animated .png by hand driving ffmpeg, which would have its own problems.

1 Like

So we could say that Krita is missing an option to resize with nearest neighbor in this dialog:

The resizing for video is done by ffmpeg but I don’t know if you can tell it which type of scaling filtering to use.

A ‘trick’ you could try in the future would be to make pixel art at 4x final desired canvas size and paint with a 4px (or 8, 16, 32, 64 px for fill strokes) brush and render that out as video.
Then you’d scale the image down to 25% with Nearest Neighbour filtering to get the final desired pixel art image size, possibly doing it as 50% scaling twice.
I haven’t tried that to see if it works but it would be a useful and interesting experiement.

If you usually rely on the canvas pixel grid then you can simulate that with a 4px grid in the Grids and Guides docker.

Solved it by calling ffmpeg via command line as follows:

ffmpeg -framerate 24 -i %07d.png -sws_flags neighbor -vf scale=1280:-1 output.mp4

1 Like

Ahhhhhh :slight_smile:

You can also edit the export preset without depending on the command line. Click on the pencil icon and edit the preset.

5 Likes

It works, thanks!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.