HTML video editor with FFmpeg
If you are a consumer considering using this software, don’t. This was an experiment and important features don’t work or are missing. Olive is an open source video editor that you may be interested in. Read the Inherent problems section for more information.
Video editing software in JavaScript, made with Electron, on top of FFmpeg using fluent-ffmpeg. Provides a simple GUI for editing videos with FFmpeg with a timeline, preview, and filter editor.
Architecture:
JSON editor GUI using jsoneditor, with presets. This lets you edit the filters that are passed to fluent-ffmpeg, which then turns them into FFmpeg options. This means you can use any video filter the FFmpeg binary supports.
This was an experiment to see if a consumer grade video editor is possible to make with HTML and JavaScript. I would say it is possible, the result just isn’t very good. It’s also obviously not pure JavaScript, since it uses FFMpeg as a backend. Problems:
If you would like to use it anyway, you’re free to do so. If you would like to help out with the development, PRs are greatly appreciated.
To run from source, clone this repository, and inside the app/
directory, install the dependencies with npm install
or yarn
. You have to provide your own ffmpeg binaries for running and building, so download the ffmpeg
and ffprobe
executables from an ffmpeg distribution of your choice. Both executables are required. You then place these inside app/bin/
in a folder matching your architecture: by default, darwin and win64 are supported. This is detected in app/index.js
, so if your architecture is not darwin or win64 you have to modify that file otherwise it won’t start. Then you run npm run start
or yarn start
inside app/
to start fwf.
Build with electron-builder using app/node_modules/.bin/electron-builder
in the root directory. The build setup is quite complicated, because of the fact that the ffmpeg binaries need to be available at runtime, so there are a lot of ways it can go wrong.
Released under the MIT license, see LICENSE.