A fluent Node.js API for FFmpeg that simplifies complex command-line video and audio processing.
Fluent-ffmpeg is a Node.js library that provides a fluent, chainable API to interact with FFmpeg, the command-line tool for video and audio processing. It simplifies tasks like transcoding, resizing, adding filters, and streaming by abstracting FFmpeg's complex arguments into intuitive JavaScript methods. The library solves the problem of manually constructing and executing lengthy FFmpeg commands, reducing errors and improving developer productivity.
Node.js developers who need to programmatically manipulate video or audio files, such as those building media processing pipelines, video streaming services, or content management systems.
Developers choose Fluent-ffmpeg because it offers a declarative, error-resistant way to harness FFmpeg's full power without dealing with its steep command-line learning curve. Its event-driven design and support for streams make it ideal for integrating media processing into Node.js applications seamlessly.
A fluent API to FFMPEG (http://www.ffmpeg.org)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides an intuitive, JavaScript-native interface with chainable methods like .input() and .videoCodec(), abstracting FFmpeg's complex command-line arguments into readable code.
Supports files, readable streams, and image patterns as inputs, and outputs to files or writable streams, enabling seamless integration into Node.js applications and pipelines.
Emits events for progress, completion, and errors, allowing real-time monitoring and handling of transcoding tasks, as demonstrated in the README examples.
Mirrors many FFmpeg capabilities through dedicated methods for filters, metadata probing via ffprobe, multiple outputs, and complex filtergraphs, reducing the need for raw command-line options.
The README explicitly states the library is no longer maintained, does not work properly with recent FFmpeg versions, and issues/PRs are not accepted, making it risky for production use.
Requires FFmpeg, ffprobe, and optionally flvtool2 or flvmeta to be installed and correctly configured, with manual path settings needed on Windows, adding overhead.
The progress event's percentage estimation can be unreliable, especially with input streams or multiple inputs, as admitted in the README, limiting real-time feedback accuracy.