Getting started with scripting MovingImages in ruby

If you are hardcore then you can go straight to the Resources blog post which points you to various resources for scripting MovingImages, but I’d recommend watching this video series first. The last episode is a doozy, a description of a complete 275 line ruby script that joins two videos using the CoreImage ripple transition filter. Actual processing of individual video frames in ruby.

The first episode of the series steps you through downloading and installing the MovingImages video and graphics scripting platform, it’s simpler than it sounds, and then introduces you to a few of the image file processing command line tools. 12 minutes.

The second episode in the series introduces you to the various components of the MovingImages platform and how they fit together. The video also introduces the JSON command object and describes a short script which displays a window. 5 minutes.

The third episode in the series demonstrates how to import a movie file and how to get the properties of a video track in the movie file. Along the way the video shows you what to include at the top of your ruby script so you can access the MovingImages functionality.

The concept of the receiver object is introduced. When this object is included in the JSON command object it defines the object that is the receiver for the JSON command object. The receiver object is the object that will process the JSON command object. 6 minutes.

The final episode in this video series guides you through the important bits of a 275 line complete ruby script that joins two videos using the CoreImage ripple transition filter. Along the way you will see how to access video content frame by frame, create CoreImage filter chains and create a new video by building it up frame by frame. This is the script studied in the video. 13 minutes.

Read More



OS X: Yosemite
iOS: 8

MovingImages scripting tool

The first episode of the getting started with the MovingImages scripting series steps you through installing the MovingImages scripting tool. However if you are the kind of person who likes to jump in, you can download the MovingImages scripting tool here.

Getting started with scripting MovingImages video series

This four episode video series will get you up and running with MovingImages. The total run time of all four episodes is just 36 minutes.

Demo videos

See the blog posts CoreGraphics demo and Video demo for a introduction to the available functionality.

Code examples

From demo applications

Drawing views and controls in OS X (Swift 1.2)

Drawing a view

This Drawing a control example also demonstrates the use of IBDesignable to view the control in Interface Builder.

The JSON draw instructions for drawing the control

Draw a control in iOS (Swift 1.2)

CoreGraphics drawing in a CALayer


The Swift test coverage isn’t near complete. The ruby coverage is far more extensive. The swift tests run on both iOS and OS X. The swift test coverage for the video importing, writing and editing functionality is reasonable.

The tests only cover the functionality of the MovingImages framework as exposed through the handle commands function.


Swift test coverage


The ruby test coverage can be run by using the MovingImages installer application to install the various components and then getting the ruby tests from git hub.

Ruby test coverage

Demo applications

Binaries to download

CoreGraphics demonstration MovingImages demo application

Video, CoreImage and CoreGraphics demonstration Zukini demo application



Custom Control Demo


Zukini & MovingImages Demo


Using MovingImages

Ruby reference documentation

Scripts and Scripting

The command line tool smig, along with the MovingImages LaunchAgent and the moving_images ruby gem are a powerful scripting environment for processing images and videos. You can write your own scripts, and you can use the scripts installed with the moving_images ruby gem.

Read More