Transforming a movie frame by frame

This is a repeat of my earlier post except this is hopefully clearer and a more precise problem description.

See the diagram attached. Essentially what I want to do seems quite simple but I haven’t been able to achieved it yet, the stumbling block being getting an output movie (Save Frames to Movie) with the same number of frames and frame rate of the input movie.

I want to take a QT movie and create another QT movie with the same frame rate and the same audio track. I want to do some image processing on the input movie frames where sometimes the processing may be fast (taking less than 1/fps) but more likely slow (taking more time than 1/fps).


Your best bet would be to create an Image Filter composition, export as FxPlug, and do your conversion within Final Cut Pro X. The image filter will neither skip frames (unlike Save Frames to Movie when set to drop events) nor potentially exhaust your GPU memory if processing each frame takes a long time (unlike Save Frames to Movie when set to enqueue events). FCPX should preserve the audio track.

A little disappointing.


I wonder why that couldn’t be solved in the following way, splitting the problem in several task.

  1. Calculate FPS of the original file. This can be achieved with parabox “frames per seconds” node: play the movie for a few seconds, hold the value this node gives.
  2. Process the movie with “step movie frames” technique I showed in the other post, and put every processed frame in a list; no worry if frame elaboration needs huge time;
  3. With a fire periodically node, triggered every [original FPS]/60 seconds, get an item from the list and write to a file with “save frames to movie”.

I’m trying to code all this but there’s some issues yet. Anyway @jstrecker , if you didn’t propouse this is perhaps because there’s something wrong that I’m not catching with this plan? @Paul, could this schema solve you problem?



  1. Who is to say that on machine X the movie can play at the intended frame rate?
    I might like to process 4Kx4K fisheye frames, or 8Kx4K moves from a 360 camera.
  2. Is that going to work for the 10 (or more) thousands of frames?

Putting the assigment of audio aside, seems to me that

  1. one thing the movie playback node needs is a “play every frame” option.
  2. one thing the save movie node needs is a frame rate setting.  

Two feature requests were created: