Stopmotion thread

I’d like to announce the release of the Stopmotion animation app, Stopmotion :slight_smile: It’s already available at:
Stopmotion | OpenRepos.net — Community Repository System but should be coming to the Jolla store and chum soon.

In short, it’s an app to make timelapse series of photos, assemble them into scenes and produce a stopmotion animation/video. You can get an idea of what final output looks like with: https://github.com/poetaster/harbour-stopmotion/raw/main/Legovsschleich.mp4

Think: Jan Švankmajer - Wikipedia claymation, Wallace and Gromit, etc, etc.

Currently, you can select a camera (selfie camera can be flaky), set interval and choose where to store the series of name that you specify. With the ‘slideshow’ view (thanks @pinniini !) you can assemble as scene/series with a picker. You can preview that with the ‘Start Slideshow’ pully, step through the images, and finally return to save. The output fps can be specified. Currently saves to /home/$/Videos.

It’s still in the late alpha stage. So I’d love feedback. Some things that are in the works:

  1. Add more that one scene (creat an entire animation film on your summer vacation).
  2. create sub-dirs for scene/series automatically
  3. select resolution (currently locked to hd)
  4. etc.
8 Likes

It’s in chum, thanks @rinigus !

2 Likes

Thanks poetaster, this looks fantastic…at least potentially. I just did a little trial, the ‘Start slideshow’ wasn’t easy to find! (typo alert, it says ‘Sart’)…and I think it would be better if it didn’t automatically repeat.
I installed from openrepos, the ‘installing’ spinner never stopped spinning. The work in progress features look great.

Thanks! You mean the pully wasn’t easy to find? I’m mixing a few too many interface styles, perhaps?

I’m not sure why the installing never stops spinning, but I did make ffmpeg a requires so maybe that’s an issue? I’ll see if I can debug it…

As usual the pulley is easy when you know it’s there. A useful addition would be more FPS options, especially slow ones like 1 frame every 5 seconds.
The spinner does that frequently, I don’t know if it’s a store thing or particular to the xz2c.

Quite sure that’s not app-specific, rather a bug/issue with Storeman. I see it often.

Also, as packagekit will install all available app updates on any install action, triggering a single install can cause many downloads and install events to happen - which can take longer than expected.

and packagekitd lets clients wait in a queue, so if there’s a pkcon refresh happening while issuing an install command, it may also take a longer time than one would think.

1 Like

It’s in the works. I wanted to implement those in the ‘slideshow’ preview and haven’t gotten to it yet…

The Stopmotion package is small, but I also install ffmpeg which is 3.7 MiB in size. I also include ffmpeg-tools, which is only 134 KiB, but might also be an issue with the call-backs to the ui ‘timing out’ improperly?

I’ve implemented Seconds per frame / Frames per second choosing, a loop toggle and a canvas based display for fast animations. Anything about about 9/10 FPS can’t be rendered cleanly using Image. Sadly, the canvas suffers from the famous RGB channel swapping issue. I have a version with a custom image provider in the works to fix the canvas slide show mode.

Updates should come in over the course. of the day.

Because I’m piqued I implemented the c++ ImageProvider and nemoimagemetadata classes on a second branch:

This will do fast animations (only tested to 30 fps) without artifacts. It also reads the image data correctly so that the orientation AND the color values apply.

1 Like

some more thoughts: would it be possible to select advanced camera instead of native? - the exposures are better.
Also, the time intervals are critical at the lower end, there’s a big difference between 1 and 2 seconds but not much between 8 and 9. The ideal would be select your own.
This is shaping up to be a great app.

When I get to using other backends than the declarative. It’s in the works.

I’d like to get under a second. This is not possible with declarative snapping and writing to disk. So, again, backend work. I’m hoping to use @karry work but it’ll take some time. And the intervals SHOULD (EDIT!) be fixed, it’s still a hack. As is the folder selection interface.

Thanks, it’s fun to do!

Hi @poetaster,

Context
#######
My daughter wants to begin making stopmotion videos. Of course, she wanted to do it with the same android apps as her friends, you know…
But she has a SFOS XA2 and I recalled your app.
So we gave it a try. Very nice and almost perfect!
Some remarks/questions:

Tl;dr
#######

  • Would there be a way to auto-select all the files from the last series of photos? Because, depending of the length, manual selection can be pretty long.
  • It would be nice being able to trigger the photo manually for scenarized works: move the subjects, shot, move the subjects, shoot… As the work between shots does not always have the same duration.
    -I can’t read the output video into the gallery. The stock player says “Could not load the video”.
    Permissions and ownership are ok but if I file the file, I get:

ISO Media, MP4 Base Media v1 [ISO 14496-12:2003]

Other stock video files :

ISO Media, MP4 v2 [ISO 14496-14]

Do I have to install additional codecs?

Thanks by advance and Merry Christmas!

3 Likes
  1. Yes.
  2. Yes.
  3. Jeez. Not sure. Just tested to discover my SD card is not visible and something is wrong (err, developer phone).

I’ll look at these things, but won’t get it done for x-mas, I’m afraid. Well, probably, not, but you never know. Ho, ho, ho.

This looks like a bug. Probably crept in with 4.5. I’ll see if I can’t get to it tomorrow.

Thanks Santa-Poetaster :heart: :slightly_smiling_face:

1 Like

Santa. Hates. Bugs. Unless they’re made of chocolate.

Grrr. Not bug. I do believe jolla has compiled ffmpeg differently again. @mal! In any case

“-c:v”, “mjpeg”,

is no longer supported. I’ll push a fix tomorrow.

EDIT: well, you CAN open the file in Videoworks which will read it fine. Then export. But that’s silly.

1 Like

Can you give an example of a command that fails, I tested using “-c:v mjpeg” to both decode and encode and both worked fine.

The python:

for progress in run_ffmpeg_command([ ffmpeg_staticPath, "-hide_banner", "-y", "-framerate", sFps, "-pattern_type", "glob", "-i", tempMediaFolderPath+"/*.jpg",  "-vf", "transpose=1", "-c:v", "mjpeg", "-preset", "veryfast", "-r", sFps, "-pix_fmt", "yuv420p", outputPathPy ]):
            pyotherside.send('progressPercentage', progress)

The transpose is for Portrait orientation. This works on removing “-c:v”, “mjpeg”

Thanks for looking!