Any sufficiently large project (not necessarily a software one) will eventually get one or more persons of significant talents and even more significant personality. Initially they’ll bring good work to the project but eventually they’ll feel they don’t get enough credit for it and then scandals start. This is usually called diva or rock star behaviour since the effect was most commonly (and easily) observed with these categories of people. FFmpeg
though its history also had some people deserving the title: Ronald Bultje, Baptiste Coudurier and (to a lesser degree) Kieran Kunhya. Paul B. Mahol seems to try to get into the company or maybe he’s bored so today we’ll review just the first three guys.
(more…)
Author Archive
FFhistory: divas and rock stars
Tuesday, January 10th, 2023FFhistory: early reverse engineers
Monday, January 9th, 2023What attracted me to FFmpeg
as well as e.g. video hosting providers was its ability to decode various formats that were often tricky to decode even on their native platforms let alone in other circumstances (for instance, I remember the official Indeo 5 decoder freezing Windows system when trying to play perfectly valid Indeo 5 videos encoded with a beta Indeo 5 encoder). So let’s remember the names of those who made the project truly versatile.
(more…)
FFhistory: zeal and passion
Saturday, January 7th, 2023Before moving to people who have contributed greatly to the functionality of the project let’s talk about the two people who have made an extremely large impact on the perceived image of FFmpeg
. Of course I’m talking about Diego Biurrun (the passionate one) and Carl Eugen Hoyos (the zealot).
(more…)
FFhistory: early contributors
Thursday, January 5th, 2023There are still many prominent people worth separate posts but for now I’d like to give a shout-out to the various developers (mostly coming from MPlayer
) who worked on FFmpeg
before 2006. Why 2006? This was a time when the project started participating in Summer of Code program that drew some students in. Plus 2005-2006 was the time when a lot of video hosting sites were found (a couple of them even surviving to this day) and you can guess what technology they started to use…
So here’s the list and remember: if somebody is not listed here that means he is likely to appear in some other post. I’ll try to add some description of the work but in many cases if I have nothing to say assume it’s “provided bugfixes, tried to improve things and so on”.
(more…)
FFhistory: Michael Niedermayer
Tuesday, January 3rd, 2023And now is finally the time when we should discuss the man who made FFmpeg
into what it is today: large, successful and toxic mess. The man who was the project leader for a long time and definitely-not-project-leader since. Of course I’m talking about Michael Niedermayer.
FFhistory: hosting and admins
Sunday, January 1st, 2023As I mentioned in the prologue, not so long after FFmpeg
went public it was spotted by MPlayer
which offered developers, hosting and after a while the project was fully migrated from from SourceForge to mplayerhq.hu
.
So the people responsible for hosting and administration of the server played a very important role in FFhistory. Here are the people I can think of:
- Árpi (Árpád Gereöffy, the creator of
MPlayer
); - Diego Biurrun;
- Reimar Doeffinger;
- Janne Grunau (mostly a co-admin in
libav
times); - Dr. Attila Kinali;
- Michael Niedermayer (has to do it since the times
FFmpeg
went independent); - Måns Rullgård (he’s also responsible for hosting almost all of non-x86 FATE machines and overall FATE infrastructure).
IIRC the hosting story went like this: at first Árpi was hosting and administrating everything, then he retired leaving the server in care of Biurrun-Kinali-Rullgâ triumvirate. The provider switched from a Hungarian one which owned favours to Árpi to a Swiss one that owned favours to Dr. Kinali. After the split FFmpeg
had to search for a new hosting as the admins stayed with libav
, so for a while Árpi managed to provide it. Eventually though he could not do it any longer and some Bulgarian ISP stepped in and the server is managed by another group of ex-MPlayer
developers. Additionally Git hosting for FFmpeg
is provided by VideoLAN (somewhat because of the split and fight for the project name).
Most of these people have contributed to the project more in various other roles so I’ll talk only about the two of them—Árpi and Attila.
(more…)
Ukrainian Christmas
Sunday, January 1st, 2023Ukraine has a long and tumultuous history and there are actually four different dates which essentially serve for Christmas celebration:
- December 19—Saint Nicholas Day (Julian calender). Instead of putting presents into socks later, St. Nicholas sneaks them under pillows while children are sleeping. Very popular in the Western Ukraine;
- December 25—Christmas by Gregorian calender. Not that popular but it’s slowly gaining popularity thanks to the actions of russia;
- January 7—Christmas by Julian calender. Traditional for the Eastern Orthodox Christian Church (though many people would gladly celebrate it on both dates);
- and the 1st of January—the date selected by Soviet Union to replace Christmas celebrations with something secular. But now it’s getting a very different meaning…
In the year 1909 on the very first day of January a boy was born in a small Ukrainian village (then under Austro-Hungarian rule). He has not managed to do enough yet his deeds made him a religious figure, feared in russia and (mostly for that reason) praised in Ukraine. Of course I’m talking about Stepan Bandera.
His biography can be condensed to this: he was born in a Ukrainian priest family with a history of cultural and political activism, so it was natural for him to join political movements that were fighting for the independence of Ukraine; later he became an important member of the Organisation of the Ukrainian Nationalists. After the internal disagreements OUN was split into two wings named after their leaders—Melnyk and Bandera. Bandera’s OUN was also called OUN-R(evolutionary) since they believed that Ukrainian independence can be won only through war (as 2022 demonstrated, they were right). In order to achieve that goal OUN-B cooperated with National-Socialistic Germany against International-Socialistic USSR and on the 30th of June 1941 they tried to declare the restoration of Ukrainian state. Germans tolerated puppet states on Yugoslavian territory but not here, so many of the Ukrainian activists were arrested and put to prisons—including Stepan Bandera himself who was at the same concentration camp as Andriy Melnyk. Couple of years later he was released in hope that he could be useful in fighting against USSR. He remained in Germany and was involved in political activism until the assassination by a KGB agent in 1954.
So what was his main contribution that made him immortal? Making OUN-R into an organisation that formed Ukrainian Insurgent Army and fought against Soviet occupation until late 1950s. Of course Soviet propaganda made them all into arch-enemies and in this way preserved his name for the future generations. Similarly Ukrainians started to perceive the same things as something good and accepted this new Bandera identity.
I called Stepan Bandera a religious figure because most of the people who use his name have no idea who he really was, what he has done (beside abstract “fought for Ukrainian independence”) or what his views are. russians fling Banderite as an insult at anybody speaking Ukrainian (which should be a giveaway for their chauvinism already), some still believe he’s alive (so how is this not a religion?). But if you look at his actual views (or what is passed for them), you’ll see that they were adopted in USSR and russia (single-party state with the leading role of one nation) but not Ukraine (actually even back in the 1940s Ukrainian Insurgent Army ditched them already). Now throw in the fact that his birthday in still a state holiday in russia and you’ll see a religion in forming.
Слава Україні! Героям слава!
FFhistory: Fabrice Bellard
Friday, December 30th, 2022The 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, 2022Before 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, 2022So 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.