How Projects Wither and Die

For the last few years I feel some disappointment with my work building up and now I try to explain why.

What kept me working on FFmpeg and later Libav?

Money? Well, I admit that it brought me ~$20000 during all those years of work and it was very helpful in my student years but it’s not that much really and wouldn’t be enough for living even in Ukraine.

Of course the main driving reason was fun of writing code and joy of being useful. I still remember being proud for a week for this commit. I still remember how it was fun (sometimes) to reverse engineer a codec and warm feeling when it’s done. I remember users thanking for the work done and asking for features.

Where did all go?

The project matured and now the situation got different. Previously you mostly had millions of clueless users asking how to transcode something to FLV that were tiring but easy to deal with, now you have more enterprise users that use our code often without acknowledging or contributing back (in the old times Picsearch gave us a database of audio and video files in Internet that used codecs we didn’t support — that’s one of the most valuable contributions ever). But that’s not what kills the fun, “security holes” do.

With an advance of automatic fuzz tools it’s easy to generate millions of damaged files that crash your decoder and yet there are no tools for generating correct patches. Fixing those crashes is tedious, requires a lot of thinking (should I disable it? will it affect decoding correct files? etc.) and in other words not fun at all. You have to balance between having decent code, ability to handle corrupted files and being robust — and in order to account for all possible corner cases in the code from the very beginning you should be more paranoid than FFmpeg leader. And somehow you cannot avoid it, you’re expected to fix it or else. This is like you’re on maintenance contract but without any form of compensation, you just get a mountain of corrupt samples and “have you fixed it yet?” every week. Or you get some “security vulnerability” reports with the same effect. I repeat, this is not fun — so why should I do it for free?

There is only one exception around called VideoLAN. Those guys really show (and not only show) some care and they give back to us. Just in my case I gave them all they wanted and I could give them.

As for the rest, world domination is not my goal, I don’t see fun in maintenance and noone is paying me to do it. Why should I continue?

So I’ll try to finish whatever projects I still have around and end it all. I’ve been around for 9.5 years after all, that’s long enough.

P.S. Maybe I should move to Oljonsbyn.

11 Responses to “How Projects Wither and Die”

  1. compn says:

    i totally agree the security holes are a huge waste of time and are slowing/killing development in the project.

  2. compn says:

    i’m not leaving any project until i’m able to watch my MVI2 movie cds and my old vivo files.

  3. Jim says:

    I have enjoyed your work and your explanations over the years. I agree that when a fun hobby becomes tedious, it’s time to quit the hobby, or at least put it away for a few years.

    Maybe you’ll stick around just long enough to write a decoder for my codec work-in-progress ;-)

  4. pere says:

    Thanks for all these years

  5. funman says:

    Glad to see we motivate you.

    Does the ~20000$ include liquidity (i.e. Trocadero) ?

  6. Peter says:

    Agree with everything you say :( Cheers,

  7. iive says:

    It is much easier to leave the security fixes to the people who are having fun with them, e.g. FFmpeg Leader and do the things you find fun by yourself. You can consider this an unofficial invitation to try coding for FFmpeg again.

    The only requirement is to get over your own prejudice.
    (That is actually one of the hardest things for humans. Most don’t even try. You know… all grape is sour… )

  8. Kostya says:

    @iive
    I always suspected that but I’d rather not because people I know and can get along with ended mostly in Libav. And I’d rather not talk to some of FFmpeg developers ever again (not because of political issues but overall character — and Michael is not the worst in that aspect).

  9. iive says:

    Are these people still in Libav? Indeed, initially there were many supporters, but most of them have (silently) abandoned Libav, just like you are planning to do.

    To be honest, I’m surprised to hear that there are people you can’t get along with. I’ve never seen you get in conflict with anybody. You were not even reading the flame threads…

    Anyway, I’m sure this is all just prejudice. To be honest, I also thought that Carl and Ronald could never get along, but so far I’ve never seen any kind of friction between them.

    FFmpeg have changed for good and it is evident that it is the better project with healthier community. However, you are not required to participate at any social meetings and activities. Just do what you like – coding (codecs).

    Don’t worry, you don’t have to refuse me a second time. Try working for another project like VideoLan. See what is it to participate in normal project with healthy community. You’ll still have a link to FFmpeg though VLC. Maybe in time, you’ll change your mind.

  10. Luca Barbato says:

    Actually I do enjoy fixing security issues (as seen), but I’m not paid for it so there are times in which I cannot focus on it.

    There is plenty of people in Libav and some are still having fun writing clean code and improving with the project.

    Those who left Libav did that in a quite loud way. One because he was sick of having his work taken by FFmpeg with the daily routine of insults and merge.

  11. shahriman says:

    Love and respect. I remain grateful to you, personally and professionally. I hope you will still stay around to help new contributors with guidance. Your knowledge of the subject is invaluable.