Yield generated for 1326d135-c8fa-473b-9310-7340828c1609
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Mikael Finstad aa4f58954a add to gitignore 6 years ago
examples improvements 6 years ago
shaders initial 6 years ago
sources fix 6 years ago
.eslintrc initial 6 years ago
.gitignore add to gitignore 6 years ago
LICENSE Initial commit 6 years ago
README.md add readme 6 years ago
cli.js improvements 6 years ago
colors.js initial 6 years ago
glTransitions.js initial 6 years ago
index.js initial 6 years ago
package.json initial 6 years ago
transitions.js initial 6 years ago
util.js initial 6 years ago

README.md

editly

Editly is a framework for declarative NLE (non-linear video editing) using Node.js and ffmpeg. It allows you to easily and programmatically create a video from set of videos, images and titles, with smooth transitions between.

Also provides a simple command line for quickly assembling a video.

Inspired by ffmpeg-concat. The problem with that project is that it uses an extreme amount of disk space, especially for HD/4K videos. This projects solves that by doing streaming editing, so it doesn't store any temporary files.

Requirements

Make sure you have ffmpeg and ffprobe installed and available in PATH

Installing

npm i -g editly

CLI video editor

Run editly --help for usage

Create a simple randomized video edit from videos, images and text

editly \
  title:'My video' \
  clip1.mov \
  clip2.mov \
  title:'My slideshow' \
  img1.jpg \
  img2.jpg \
  title:'THE END' \
  --audio-file-path /path/to/music.mp3 \
  --font-path /path/to/my-favorite-font.ttf

Or create a GIF (or MP4) from a JSON edit spec

editly --json my-editly.json --out output.gif

For examples of how to make an JSON edit spec, see https://github.com/mifi/editly/tree/master/examples

By default it will use the width, height and frame rate from the first input video. all other clips will be converted to these dimensions You can override these parameters however.

TIP: Run with --fast or fast: true first to improve speed while testing

Javascript library

const editly = require('editly');

// See editSpec documentation
await editly(editSpec)
  .catch(console.error);

Features

  • Custom Canvas/Fabric.js rendering
  • Can output the same video to multiple sizes, like Instagram post, Instagram story 9:16, YouTube 16:9, or any dimensions you like
  • TODO add more

TODO

  • Implement audio from source files
  • Allow specifying path to ffmpeg and ffprobe
  • Full power of the HTML to create visuals and animations (maybe puppeteer)
  • three.js

See also