diff --git a/README.md b/README.md index 820a2d9..a073e91 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,7 @@ A collection of delicious docker recipes. - [x] cmus - [x] cmus-arm +- [x] editly :tv: - [x] ffmpeg - [x] ffmpeg-arm - [x] ffserver :beetle: diff --git a/editly/Dockerfile b/editly/Dockerfile new file mode 100644 index 0000000..67f4e15 --- /dev/null +++ b/editly/Dockerfile @@ -0,0 +1,18 @@ +# +# Dockerfile for editly +# + +FROM node:lts-buster +MAINTAINER EasyPi Software Foundation + +RUN set -xe \ + && apt update \ + && apt install -y dumb-init ffmpeg xvfb \ + && rm -rf /var/lib/apt/lists/* + +RUN npm install --global --unsafe-perm editly + +WORKDIR /data + +ENTRYPOINT ["/usr/bin/dumb-init", "--", "xvfb-run", "--server-args", "-screen 0 1280x1024x24 -ac", "editly"] +CMD ["--help"] diff --git a/editly/README.md b/editly/README.md new file mode 100644 index 0000000..a34db09 --- /dev/null +++ b/editly/README.md @@ -0,0 +1,22 @@ +editly +====== + +[Editly][1] is a tool and framework for declarative NLE (non-linear video editing) +using Node.js and ffmpeg. Editly allows you to easily and programmatically +create a video from a set of clips, images, audio and titles, with smooth +transitions and music overlaid. + +## Tutorial + +```bash +# Create an alias +$ alias editly='docker run --rm -u $(id -u):$(id -g) -v $PWD:/data vimagick/editly' + +# Make config file +$ cat slideshow.json5 + +# Do video transcoding +$ editly --fast slideshow.json5 +``` + +[1]: https://github.com/mifi/editly diff --git a/editly/output.mp4 b/editly/output.mp4 new file mode 100644 index 0000000..c8e5dff Binary files /dev/null and b/editly/output.mp4 differ diff --git a/editly/slideshow.json5 b/editly/slideshow.json5 new file mode 100644 index 0000000..e01bc80 --- /dev/null +++ b/editly/slideshow.json5 @@ -0,0 +1,17 @@ +{ + width: 400, + height: 300, + outPath: './output.mp4', + allowRemoteRequests: true, + defaults: { + duration: 3, + }, + clips: [ + { layers: [{ type: 'image', path: 'https://github.com/mifi/editly-assets/raw/main/pano.jpg' }] }, + { layers: [{ type: 'image', path: 'https://github.com/mifi/editly-assets/raw/main/vertical.jpg' }] }, + { layers: [{ type: 'image', path: 'https://github.com/mifi/editly-assets/raw/main/pano.jpg', resizeMode: 'cover' }] }, + { layers: [{ type: 'image', path: 'https://github.com/mifi/editly-assets/raw/main/vertical.jpg', resizeMode: 'cover' }] }, + { layers: [{ type: 'image', path: 'https://github.com/mifi/editly-assets/raw/main/pano.jpg', resizeMode: 'stretch' }] }, + { layers: [{ type: 'image', path: 'https://github.com/mifi/editly-assets/raw/main/vertical.jpg', resizeMode: 'stretch' }] }, + ], +}