
It holds the whole node tree, and you have to do the memory management yourself. Konva is a bit tricky for JavaScript developers. The complete source code for this article is available on GitHub.įeel free to use it as a kick-starter for your projects. It’s been here for quite a while and became a robust go-to solution when dealing with videos. There’s a JavaScript FFmpeg port, but since the app would be running on the server, Stitching frames is also pretty straightforward. Node-canvas is a widespread Canvas API implementation for Node, built on top of Cairo, a native 2d graphics library. Konva also works in Node.JS on top of node-canvas using konva-node package. It enables developers to work with higher-level abstractions like Layers and shapes, just like in professional image editing software.

Konva is one of the best canvas abstraction libraries in JavaScript. There are plenty of open-source tools to do that programmatically. Just generate each frame separately and stitch them to a single video. Did you know how easy it is to render videos in Node.JS?Įvery video consists of multiple frames combined in a sequence. on( 'progress', ( progress ) => % done` ) ģ2 33 // The callback that is run when FFmpeg is finished 34. saveToFile( 'video.mp4' )Ģ0 21 // Log the percentage of work completed 22. In other words, to make the video 720 pixels wide 15 // and make FFmpeg calculate its height, use scale=720:-2 instead.

The -2 means FFmpeg should figure out the 14 // exact size of the other dimension. input( 'video.mp4' )ġ2 13 // Scale the video to 720 pixels in height. 1 const ffmpegStatic = require ( 'ffmpeg-static' ) Ģ const ffmpeg = require ( 'fluent-ffmpeg' ) ģ 4 // Tell fluent-ffmpeg where it can find FFmpeg tFfmpegPath(ffmpegStatic) ĩ 10 // Input file 11.
