sto

stopmotion

Combine multiple image buffer frames into a video file

Showing:

Popularity

Downloads/wk

3

Maintenance

No Maintenance Data Available

Package

Dependencies

5

Size (min+gzip)

6.6KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

stopmotion Flattr this!experimental

Uses ffmpeg multiple image buffer frames into a video file. Note that you'll need it installed on your system to get this working.

Usage

stopmotion

video = require('stopmotion')([options])

Creates a video instance, which accepts the following options:

  • width: the final width of the video.
  • height: the final height of the video.
  • format: the output's container format, e.g. avi. Defaults to webm.
  • inCodec: the input image codec, e.g. png. Defaults to gif.
  • outCodec: the output video codec. Defaults to libvpx
  • crf: the constant rate factor. The lower this is, the better the output quality. Defaults to 23.

All of the above are optional.

video.frame()

Creates a writeable stream for you to pipe a single frame buffer to. Note that it should match the video's format option. Frames will be ordered by when you created their stream.

var video = require('stopmotion')()
var fs = require('fs')

fs.createReadStream('frame-001.gif')
  .pipe(video.frame())

video.ready()

Once you've created all of your frames, use this method to encode the final result and get it back as a readable stream.

var video = require('stopmotion')()
var fs = require('fs')

;['frame-001.gif'
, 'frame-002.gif'
, 'frame-003.gif'
, 'frame-004.gif'
, 'frame-005.gif'
, 'frame-006.gif'
].forEach(function(filename) {
  fs.createReadStream(filename)
    .pipe(video.frame())
})

video.ready().pipe(
  fs.createWriteStream('frames.webm')
)

License

MIT. See LICENSE.md for details.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100