Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
This repository was archived by the owner on May 22, 2025. It is now read-only.

Phasing out fluent-ffmpeg #1324

@njoyard

Description

@njoyard

This may come as a surprise to some (or not, given the activity on this projects over the last years), but I have decided that this repository should be archived and fluent-ffmpeg phased out. The following is an overview of my reasoning to come to this decision.

What is fluent-ffmpeg?

At its core, fluent-ffmpeg just a fancy command-line generator for ffmpeg (and a few tools of its ecosystem), nothing more. I feel like this is not really that useful nowadays, because ffmpeg is a very flexible tool that can do a ton of things, and most users of fluent-ffmpeg will just always do one thing repeatedly. As such, users will have to study fluent-ffmpeg to figure out how to do things, then study ffmpeg itself to figure out what to ask fluent-ffmpeg to do. It is very visible in issues where a lot of them are just lack of ffmpeg knowledge. If you're writing a program that does the same ffmpeg operation over and over, you could just study ffmpeg command line and write the correct command line once, no fluent-ffmpeg wrapper needed.

Maintaining the project

Years back now, I took over the project and ended up writing fluent-ffmpeg v2, which was mostly backwards compatible but also mostly fully rewritten. Already then I was starting to see a bunch of problems:

  • many interfaces were built for then-use-cases (eg. flash encoding) that were not so common anymore and had profound consequences on the architecture
  • the library does way too many things: it should not prevent you from learning ffmpeg, from learning how to escape stuff for shell commands, from knowing how to interact with a spawned subprocess
  • we're trying to build something stable (an API) over something that is not stable (ffmpeg command line - just look at all changes in ffmpeg 6 and 7)

In 2017, I had already moved away from the project when I tried to find new maintainers. There were not a lot of responses. Vlad was added as a maintainer (thank you!) but unfortunately that was not enough to bring the project back to life. And now I kind of feel like it is too late: even if a serious candidate was available, I've not been involved enough in the project to decide if they would fit.

Back in late 2023, I made an attempt to get back on the project, but real life events prevented me from going through, and when I was finally available again, everything I wrote above in this message became obvious to me, and the conclusion is that this project is not worth my time.

I'm glad that this project happened, I'm happy for the contributions I made, for those made by others, for discussions that happened in the community (well, most of them anyway!) but it is time to move on.

What will happen next

I'm considering archiving this repository (so that it becomes readonly) and marking the NPM package as deprecated, as well as updating the README to indicate that. I am waiting a few days for responses from the other maintainers (all inactive, as I am) just in case someone has something to object.

The packages will stay published and available, the git repository as well, and I will definitely consider giving away the Github org and NPM package ownership to someone who maintains an active fork (active meaning: maintained and recognized by the community - I will not give away access to someone who just created a fork, even with the best intentions).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions