Archive for the ‘FFhistory’ Category

FFhistory: Fabrice Bellard

Friday, December 30th, 2022

The first time I encountered his work was (then unknowingly to me) when I found out that INSTALL.EXE from Sierra quest was packed with LZEXE. And a couple of years later while looking at all the packages some Mandrake Linux distribution I’d encountered a package called ffmpeg that could transcode various newer formats (it was also the time when I got a first DiXV 3 movie rip and the only players I had could play MPEG-1 at best). And I’d kept encountering his name in random places…
(more…)

FFhistory: prologue

Monday, December 26th, 2022

Before talking about people in history of FFmpeg and libav it’s worth making an outline of the whole history. After all, personal histories are related to the global events in the project.

As you know, FFmpeg was started by Fabrice Bellard under a pseudonym Gerard Lantau exactly twenty two years ago. Why a pseudonym? Probably because back in the day it was too easy to get sued by patent holders but I may be wrong. Initially it was hosted on SourceForge (which had an affectionate nickname SourceForget thanks for the various outages and failures it had) but after several years it moved to a different hosting (somebody said that after the move the traffic to SourceForge dropped by third).

And thus the era of FFmpeg in MPlayer began (it ended for good rather recently when after different perturbations Árpi could not provide hosting and some Bulgarian provider stepped in). And it was not just hosting, there were some MPlayer-specific code hacks inside (starting from fastmemcpy to libpostproc). More importantly, MPlayer has provided a lot of developers that have been playing a very important role since—like Carl Eugen Hoyos or Michael Niedermayer. The latter became the project leader as FFabrice stopped contributing actively in 2005 or so, he had other awesome projects to work at.

I consider the time of about 2003-2009 the golden age of FFmpeg: new developers, new features, fast growth and so on. Some people drifted in because they wanted to fix some encoding or decoding problem Summer of Code program participation started in 2006, so various students came in and usually left (very few stayed).

Then the consequences of fame started to sink in: FFmpeg became a recognized solution used in the enterprise so more developers were coming with patches to support various enterprise stuff (like broadcasting-specific containers) and disagreements with the project management style were rising (like migrating to Git, having regular releases instead of sticking at 0.4.9pre1 and—the unthinkable—throwing out some outdated features). So the split happened and after the period of initial confusion libav was born.

The following period was a war of FFmpeg against libav, no points for guessing which project won it (I think mostly to the efforts of Carl Eugen, hence I call the project of this period CEmpeg). But in the course of it changed a lot in order to win more popularity with the Linux distributions (and to be able to merge changes from libav).

Yet this was the beginning of its end. As I said before, now the development is mostly bugfixes and updates for various wrappers (both for hardware and software codecs) plus filters (do we really need another gstreamer?). A certain Jean-Baptiste from VideoLAN project undertook a valiant effort to reform FFmpeg by introducing a clearer structure for resolving technical arguments and tried to finally get proper funding from those large companies using the software but so far jbmpeg seems like a mostly failed effort to me, both from the financial and the organisational point of view.


Now with all this context it should be easier for me to talk about the roles of individual developers and other people whose work was important for the project (like compn or Piotr Bandurski) as they would fit somewhere on the timeline and not act in vacuum.

End of history

Sunday, December 25th, 2022

So libav.org is no more (and probably nobody has noticed that). From what I heard the server was essentially a dead weight so the provider (who hosted it for free) did not want to keep it running for nothing. And with this the story of Libav ends for good. And while FFmpeg/MNmpeg/CEmpeg/jbmpeg (the naming should become clearer in the course of the following posts) seems to have active development, it’s essentially dead too. Remember, dinosaurs went extinct not because of a single catastrophic even but because they’ve been phased out gradually for their inability to adapt. Originally FFmpeg was one of the tools to support popular formats in opensource (but who remembers libquicktime or avifile nowadays?), slowly becoming the tool and then turning less and less relevant as the multimedia zoo of formats people care about shrunk down to essentially two families (MPEG and Xiph+Baidu), video decoding and encoding being done in hardware and newer codecs supported in jbmpeg not natively but in the wrappers.

This seems to me as a good point to start a series of posts about different people in FFmpeg and Libav history and their impact on it, both good and bad. It may be not complete or unbiased but it should serve at least as a starting point for those curious enough and show it was not just Fabrice Bellard and Michael Niedermayer responsible for the greatness of the project but there were many others as well—and they all had various deficiencies that affected the project in a bad way too. To give an example, how many of you remember the close ties between MPlayer and FFmpeg? How many of you remember such names as Alex Beregszaszi or Justin Ruggles? How many of you know which of three Mikes of the project reverse engineered Windows Media Video 8, which one contributed just small patches and which one is responsible for the test system?

So while I’m still remembering at least some of these details, I should write it down before it’s lost to the winds of time.