It's like saying it would be good if there were two competing projects writing something akin to the Linux kernel. It's just not true. The mutually beneficial thing is to have one project where all developers are happy to work together. This is obviously idealized, but FFmpeg vs. Libav was 10x worse than what we have today. Imagine how Intel or Nvidia would contribute (either to the broken-up Linux or broken-up FFmpeg) new drivers or new hardware codec integration if there was competition. It would be a horrible end user experience.
> It's like saying it would be good if there were two competing projects writing something akin to the Linux kernel.
It isn't even that. ffmpeg and libav were two competing forks of the exact same project, not two distinct projects working to implement the same thing.
> It isn't even that. ffmpeg and libav were two competing forks of the exact same project, not two distinct projects working to implement the same thing.
But given enough time they would become very distinct.
The actual history of the projects doesn't bear that theory out. Aside from the rename itself and a couple of minor API changes, the projects stayed pretty close together, and a lot of patches got copied between the pair.
ffmpeg is a fairly complex project which deals with a number of esoteric topics (audio/video file formats, compression, processing, etc). The number of open-source developers who are qualified to work on it, and who have the time and inclination to do so, is fairly limited; I suspect that there simply isn't a large enough population of those developers to support multiple actively developed projects in this space, and certainly not two as similar as ffmpeg/libav were.
Patches were copied one way, and functionality was deprecated in ffmpeg but the only way to do it in libav (audio.) As someone who was writing software using the ffmpeg/libav apis it was a horrible confusing mess. Since distros were split you had to support both and the each had different quirks. It was a dark time that I'm glad is over.
I don't use intel or nvidia, nor really care if they are only willing to cooperate with homogenius ecosystems. Open source developers seem to treat their own little parts of the stack as their fiefdoms, afraid any competition. Then, eventually, someone figures out they can leverage that position against the user. It's toxic, and for some reason, is heavily promoted by hackernews types. It doesn't hurt anyone if someone works on their own project seperate from everyone else. Anyone that develops code is contributing, no matter where that code goes.
> It's like saying it would be good if there were two competing projects writing something akin to the Linux kernel. It's just not true.
No, I think it actually can be true. For example, since you point out Linux, the world is better for having FreeBSD, because FreeBSD does things that Linux can't (ZFS in-tree) or won't (combined base OS, not just a kernel).
Note that this works when there's a significant difference; if we start with a fork of the exact same code, it'll need a real driver to matter (example: any project acquired by Oracle and immediately forked by the community).