#DailyBloggingChallenge (263/300)
The #Gimp guide still has its place when dealing with images that are minorly misaligned. This is because on will need to adjust the images in such a manner that they overlap on top of each other.
This practice can be extended to the point that once a set of standardized images exist, then the ones that are misaligned can be filled and cropped to align with the standard.
#DailyBloggingChallenge (265/300)
Now with the layers as frames one can use #FFMPEG to merge them together to create a desired animation file.
ffmpeg -r 1 -i %06d.png -c:v libx264 out.mp4
This will create a MP4 with 1 frame per second. It is important the import naming -i %06d.png
aligns with the export of layers modal.
To have a smooth looping experience, make sure to set the starting and ending frame be the same image. Just copy and past the start image and rename it so that it becomes the ending image.
#DailyBloggingChallenge(266/300)
The #Gimp guide suggests to export the animation as a #GIF with a 1 frames per second.
This approach is fine if one is dealing with images that use less than 256 colors. Otherwise one will notice some compression artefacts.
#DailyBloggingChallenge(267/300)
#Gimp also permits to export the animation as a #WEBP. This will nullify the artefacts issue introduced by #GIF.
The only issue is if one wants to upload the result to the #Fediverse the animation won’t be registered.
#DailyBloggingChallenge(268/300)
Not only do #WEBP have the animation halt in the #Fediverse though so do #GIF.
To overcome this issue, one can convert the specific file extension to a MP4.
For GIF one can run via #FFMPEG this
ffmpeg -i input.gif output.mp4
Sadly, currently the same cannot be done with WEBP, since decoding animated WEBP has not yet been implemented.
#DailyBloggingChallenge(269/300)
One option to handle the #WEBP case is to follow this guide. There are some modification that should be taken.
First extract the frames using #imagemagick
magick input.webp frames.png
Then use #FFMPEG to build a MP4 video from the extracted frames
ffmpeg -r 1 -i frames-%0d.png -c:v libx264 output.mp4
#DailyBloggingChallenge(270/300)
The issue with this approach is that when extracting the frames via #ImageMagick one will only get the changes and the rest will be the alpha channel.
Thus when building the MP4 with #FFMPEG won’t look as expected.
One could go back in #Gimp and merge each frame to the base layer (the first frame). Or just use the reference images.
#DailyBloggingChallenge(271/300)
One would have hoped that one came full circle, though one came fully around with less data than before.
Let’s start again from the beginning and use the method described in 265 without using #Gimp. The only thing that is required is that the file names are in consecutive order. This can be done via
ls -1prt | grep -v "/$" | cat -n | while read n f; do mv -n "${f}" "$(printf "%06d" $n).${f#*.}"; done
#DailyBloggingChallenge(272/300)
One nice thing that #Gimp provides is the option to crop all layers at once. This can also be done with #FFMPEG to crop the output.mp4.
Just follow this guide: How can I crop a video with ffmpeg
Gimp or any other image editor app can be used to get a reference area for the crop area.
Hypothetically one combine step 265 and this one in one command.
#DailyBloggingChallenge (264/300)
If one continues to use #Gimp for sorting the images for the animation, then the export-layers-plus tool can ease the process of exporting all layers at once.
The user script can be saved in the script-fu directory. The directory can be found by visiting
Edit > Preferences > Folders > Scripts
.It is recommended to pad the layer number with zeroes. The suggested one is
%6i
, which will pad the number with zeroes until the number has a length of 6.Script from the Gimp forum