Bellard hasn't been involved in FFmpeg for *over 20 years* at this point, and more like 23. His code was not great and reeked of sphagetti due to FFmpeg back then lacking any framework for code sharing between components and codecs. These days none of his code survives. Everything that became of FFmpeg is because of other developers. Yet he's treated as the one-and-only BDFL of FFmpeg, with any other developers building upon his wise framework since time immemorial. These days all he does is hold the copyright, which lets him, *and only him*, elect which project/leader may call itself FFmpeg. He's an unelected dictator, who already used his powers once to ostracize libav developers in favor of another dictator.

We mustn’t forget the context: FFmpeg and Videolan got their start in dorm rooms, where students used them to stream TV in the dorm and share movies.

The Polytechnique and École Centrale campuses are just a few kilometers apart, and both projects began around 1997–1998.

I don’t know about you, but as a student, I was too busy drinking beer to write clean code.

I just found this comment from 15y ago on the ffmpeg/libav drama: https://www.reddit.com/r/linux/comments/vvdxn/comment/c57zdk...

I don't know ffmpeg but this resonates with my experience with other open source projects.

[deleted]

Sounds about right. Don't know about the internal politics around the original maintainer but the libav folks never seemed right to me. I was glad at the time that the distro I was using left the choice up to the user.

As far as the accusations against both rejecting patches and/or rewriting the code themselves goes I can empathize. It's not always easy to take on maintenance of code that isn't written like you want it to, even if the difference is ultimately immaterial. Sucks when this happens to a fundamental project that is used everywhere though. A good maintainer does need to have some ego but not too much it seems.

> These days all he does is hold the copyright

You mean trademark. The copyright is held by the authors of the code (or their employer, etc.), since there is no copyright assignment requirement.

This is similar to how Linus Torvalds owns the "Linux" trademark (in some jurisdictions), but the copyright mostly belongs to other contributors.

1. I don't believe anyone in their right mind thinks that ffmpeg is still maintained and developed by a single person, and definitely not by Fabrice 2. Spaghetti code or not matters very little, especially in the beginning, before you even know or understand the scope of the project and what it can become in the future. You can indeed refactor code when you understand the requirements better, and it's great that it's what the community did. I still think it was the right call to start with the spaghetti mess to not be dragged down by potential future problems that might never materialise because your project became something very different from what you originally had in mind

> 2. Spaghetti code or not matters very little, especially in the beginning, before you even know or understand the scope of the project and what it can become in the future.

Demonstrably false. Here and on Reddit, everyone will dogpile on a project to call it slop and flag it if they see code smells they don't like. Unless it was written by someone they already know and like from twitter devgooning, in which case it's amazing and everyone should use it.

> devgooning

Excellent choice of phrase. Succinct and to the point.

it's possible that "popular on HN and Reddit" is not a universal goal for writing code...

It isn't, but if you're sharing something and you care about people seeing/using it, they're the most "democratic" places to do it. Twitter/YouTube can work well but they're rich get richer platforms.

Thanks, that maybe one side of the coin but it's very one-sided. The man is busy innovating and maybe has no time to carry on as he focuses on other projects. But he was there from the start and made it happen.

Most of the code in the linux kernel today is not from Linus.

> He's an unelected dictator

He has no real power. You can fork the project and organize an election.

You could be right. I don't really know much about FFMpeg. But going from 0 to 1 and going from 1 to 100 are different. Usually, people remember the 0 to 1 step more. Symbolic capital tends to go to the first mover. It might feel unfair, but we always remember the first challenger. It might be spaghetti code, there might be countless contributions later, but that's usually how it goes

What you describe is obvious corporate management path. You start with MVP, it gets traction, bosses like you and then others will code for the original author dismantling and rewriting original MVP. And don’t be shy - if one can pull this off he’s worth the credits. There are many who can code and not much who can manage.

> due to FFmpeg back then lacking any framework for code sharing between components and codecs

Funny, I remember this being completely different; FFmpeg bundled ffserver, which transcoded to a bunch of codecs at the same time (sharing motion search and everything) precisely to demonstrate how similar the codecs were and how much could be shared. (Of course, that could easily be spaghetti, but not spaghetti for non-code-sharing reasons.) All on the 400MHz-class machines we had at the time. Do I remember wrong? I haven't looked at these old releases in forever.

Interesting counterpoint. I think this is the Peter principle in software: a lot of people are great at prototyping, but not great at the next stages of the project. Other people step in for those, but their existence is mostly ignored, since they can't easily fit inside a narrative.

One think to note though is unelected dictators do have their benefits, even if they come with obvious downsides.

You alright, mate?

Also it's worth mentioning that gstreamer is far more superior than ffmpeg, with its bindings, plugin architecture, control over stream (valves, tees, etc) and overall quality of code.

I would hazard a guess that a plurality, by a large margin, of ffmpeg invocations are something on the level of

   ffmpeg -i input.mov output.mp4
for which you don't really need any of those things :)

The psyop about "only shipping clean code" has been a big drag on projects

On the real world, if it runs and solves their problem nobody gives a fucc. Period

Props on him.

Watch how developers breathlessly defend code quality and stand tall ready to die on the hill against "AI slop". Craftsmanship, quality control, oh, it's all so, so important. No, it's absolutely vital to civilization.

Then witness the amazing reversal when some member of The Tribe pushes unbelievably unreadable slop that works. Then we see his Ring getting kissed by all the betas: "if it work, it works".

Pick a side. Quality is important or not?

To call out The Tribe as hypocritical, you first need The Tribe to have a consensus opinion. Agentic coding in particular has been very polarizing both on HN and in the developer community at large - there is no consensus opinion.

>some member of The Tribe >his Ring getting kissed >all the betas

Wow the quality of online discourse is really in the gutter.

Before AI Slop most code quality that ran in production was shit, that's the GP's point. Anyone who thinks otherwise simply did not have to come in contact with a wide variety of code in their job.

Yet these same developers, these slop machines, are willing to die for "craftsmanship" and "code quality" when they are threatened by statistics. I don't see how you addressed my point.

Nuance is not your specialty, clearly

This is a case of tribalism, absolutely zero rationality and people will do mental gymnastics or get nasty if you try to force it. These people have decided that they HATE AI, and LOVE gooning on famous programmers, and public stances they take will support that, logic or consistency be damned.

That's just, like, your opinion man

[flagged]