From 6211671bef676917eec9a2252a011910854649ee Mon Sep 17 00:00:00 2001 From: Mikael Finstad Date: Wed, 22 Apr 2020 17:57:40 +0800 Subject: [PATCH] improve readme --- README.md | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 18ed139..ae7d54e 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,21 @@ # 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. +Editly is a tool and 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 clips, images and titles, with smooth transitions between. -Also provides a simple command line for quickly assembling a video. +There is a simple command line for quickly assembling a video from a set of clips or images, or you can use it from Javascript! -Inspired by [ffmpeg-concat](https://github.com/transitive-bullshit/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. +Inspired by [ffmpeg-concat](https://github.com/transitive-bullshit/ffmpeg-concat). The problem with that project is that it is quite slow and 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. + +[![demo](https://github.com/mifi/gifs/raw/master/commonFeatures.gif)](https://youtu.be/LNeclLkxUEY) + +This GIF/youtube was created with this command: "editly [commonFeatures.json5](https://github.com/mifi/editly/blob/master/examples/commonFeatures.json5) + +https://youtu.be/LNeclLkxUEY ## Requirements - [Node.js installed](https://nodejs.org/en/) (Recommended to use newest stable version) -- Should work on Windows, MacOS and Linux. The command line utility needs at least Node.js v12.16.2 ([see issue](https://github.com/sindresorhus/meow/issues/144)). See also https://github.com/stackgl/headless-gl#system-dependencies +- Should work on Windows, MacOS and Linux. Needs at least Node.js v12.16.2 on MacOS ([see issue](https://github.com/sindresorhus/meow/issues/144)). See also https://github.com/stackgl/headless-gl#system-dependencies Make sure you have `ffmpeg` and `ffprobe` installed and available in `PATH` @@ -17,11 +23,12 @@ Make sure you have `ffmpeg` and `ffprobe` installed and available in `PATH` `npm i -g editly` -## CLI video editor +## Usage: Command line video editor Run `editly --help` for usage -Create a simple randomized video edit from videos, images and text +Create a simple randomized video edit from videos, images and text with an audio track: + ```sh editly \ title:'My video' \ @@ -32,13 +39,12 @@ editly \ 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 +Or create a GIF (or MP4) from a JSON or JSON5 edit spec *(JSON5 is just a more friendly JSON format)*: -``` -editly --json my-editly.json --out output.gif +```sh +editly my-editly.json5 --out output.gif ``` For examples of how to make an JSON edit spec, see https://github.com/mifi/editly/tree/master/examples @@ -47,7 +53,6 @@ By default it will use the **width**, **height** and **frame rate** from the **f **TIP:** Run with `--fast` or `fast: true` first to improve speed while testing - ## Javascript library ```js @@ -58,11 +63,22 @@ await editly(editSpec) .catch(console.error); ``` +## Use cases + +- Create a slideshow from a set of pictures with text overlay +- Create a fast paced video trailer with clips +- Create a tutorial video +- Simply convert a video to a GIF + +See [examples](https://github.com/mifi/editly/tree/master/examples) + ## 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 +- Supports any size like 4K video and DSLR photos +- Can output to any dimensions, like Instagram post, Instagram story 9:16, YouTube 16:9, or any other dimensions you like. Content will be scaled and letterboxed automatically, even if aspect ratio is not correct. +- Automatically converts frame rate +- Accepts custom HTML5 Canvas / Fabric.js Javascript code for custom screens or dynamic overlays + ## TODO