Hacker News new | past | comments | ask | show | jobs | submit login
FFmpeg's future and resigning as leader (ffmpeg.org)
374 points by ux on July 31, 2015 | hide | past | favorite | 144 comments



I don't know the extent of the drama, but I have used FFMpeg a decent amount and it's been a lifesaver. I know that OSS leaders are extremely under appreciated, and I'd like to thank Michael for all of his efforts doing so.


> I don't know the extent of the drama

As a heavy user of FFmpeg/libav, for VLC (I'm the VideoLAN president), the drama has been huge, and more aggressive than most forks we've seen in the open source community.

Most of the information you find online is biased, wrong or down-right lying, including the usual blogposts that are quoted from one side or the other one. (like the pkh.me pasted or the Debian wiki one)

Whose fault is it? Well, it's a bit complex to answer, and there has been very dick moves from both sides. Especially since the beginning of the story started in private and was not reported publicly.

Who is doing more work between the forks? That's also very hard to answer, because most of the libavcodec and libavformat work has been done in libav, but most of the libavfilter, ffmpeg and tools work has been done in FFmpeg.

What you should know is that the current codebase of FFmpeg is messier compared to libav, but has quite a few more features, notably filters and more formats supported.

Choosing one or the other gives you different set of features, but mostly different set of bugs and level of support of codecs. It's a big mess...


I'd be surprised if you had actually read the blog post I wrote (pkh.me) :)

> most of the libavcodec and libavformat work has been done in libav

Well, I believe this is a bit more complex. While it might be true for API changes and cleanups, FFmpeg has dozens of additionnal codecs and formats, as well as way more assembly/optimization code.

> What you should know is that the current codebase of FFmpeg is a huge mess compared to libav

Honestly, this is pure FUD and it's very surprising to read that from you. You seem to have no idea about the cleanups of FFmpeg because we do not advertise them (they are not relevant for the users). What is so much a huge mess? This is very insulting for the work done by FFmpeg developers these last years. Hey, even libmpcodecs (the MPlayer filter wrapper) is no more. A lot of work was also done on the documentation. Seriously, please stop doing FUD like this.

> Choosing one or the other gives you different set of features

Not exactly true.


> I'd be surprised if you had actually read the blog post I wrote (pkh.me) :)

I did, and many times. And I already said so.

> Well, I believe this is a bit more complex.

Unfortunately, it's more complex, yes, but it's not that much. Elenril, Koda and Martin are the one spending the more times and commits on libavcodec and libavformat.

> Honestly, this is pure FUD and it's very surprising to read that from you.

It's not. Unfortunately. Who has multiple implementations of the same codecs (2 prores decoders, at least 2 prores encoders) or libraries (2 resampling libraries) ? Who is spending hours removing the famous MPEG12EncContext from everywhere? And I don't even speak about the refusal to removing the non-working xvmc support for MPEG2.

And sorry, but you are one side, that joined after the fork. Attacking me is not really objective.

> Not exactly true.

Of course it is. Every time I do package VLC I need to choose one fork over the other and every time that means a different bug. This is documented over and over on our wiki and our bugtracker...

EDIT: I'm sorry you (and other) took that as an attack on FFmpeg. We use FFmpeg over libav in the current VLC windows and Mac version.


> Attacking me is not really objective.

In the decades I'm developing software, I've learned that there is no developer out there liking somebody else's code. There's always something. You can think you're objective and unbiased, but you're not, no-one is. FFMpeg's code might be a mess due to a large chunk of legacy / backwards compatibility code, but very likely the other side's code base is a mess in other people's eyes.


Except I'm on no side in this fight: we use both, have friends in both side, and we host FFmpeg's git. I may be not 100% objective, but I'm more objective than a developer from one of the side.

The fork is hurting us a lot. It means a lot of work.


First thing I thought of: https://en.wikipedia.org/wiki/False_balance

Given what I've read from the stories, and taking into account the rhetoric employed by one side versus the other, I have to say that, at least in tone, FFMpeg struck me as being more mature about the whole affair.


> I have to say that, at least in tone, FFMpeg struck me as being more mature about the whole affair.

same here. And regardless of what their codebase smells like, their stuff works and does what it says on the tin, letting people play whatever format there is out there on a massive amount of different systems. I'm the first to admit the dialogs they're using to configure the codecs is one which is a yearly 'Ugliest UI' award winner, but luckily others have made front ends which make you avoid all that mess in the first place.


It might hurt you but it looks like it doesn't hurt you enough that you decide 'pick a side and stick with it'. What I don't understand is why you don't simply pick ffmpeg and be done with it? E.g. it's good enough for playing whatever format on windows using WMP, so why isn't it enough for you to play whatever is out there using VLC?


> What I don't understand is why you don't simply pick ffmpeg and be done with it?

Because distributions have picked libav or FFmpeg. So we need compatibility with both.


I was sure VLC vendors its own dependencies and is completely standalone, and doesn't need anything installed to work. TIL I guess.


distro packagers typically undo vendoring for lots of reasons (among others: smaller packages, fixes propagate automatically, which is particularly important with security issue)

Given how similar libav and ffmpeg still are in places, they might even consider replacing the vendored ffmpeg with the packaged libav (or vice versa, if done the other way).

But the fallout would be for VLC to deal with ("VLC breaks on my Debian, it must be crap").


You mean, on WIndows they e.g. use FFmpeg and on mac Libav (example, I don't know what they pick) ?


On windows and mac VLC uses ffmpeg. On linux and co, it uses whatever is there in the distro.


The whole situation is really representative of the whole philosophy of doing aggressive cleanups/rewrites. Maybe it'll improve things on the very long term, but you will have a really, really long period where your product is completely unusable, and will drive a lot of pure frustration.

I hope some big entity ends up throwing money at the situation, it seems fixable, just a lack of manpower to fix it. I mean, Google relies on it a whole lot for one.


" FFmpeg is a huge mess compared to libav"

I assume this is an unbiased opinion as much as it can be but could you elaborate on what about FFmpeg is a "mess."

I've used both these libraries in building MythTV from strictly a user perspective. Both code bases are open source. I'm wondering if there is so much turmoil here, why doesn't someone (like VLC) take the best features from both projects and create their own library?

I never understood the OSS communities. It just seems simple to me. If you don't like it, fork it and do your own.

<shrug>


> why doesn't someone (like VLC) take the best features from both projects and create their own library?

Because that in itself would be a huge project, with moving targets as the source projects develop over time. If it were that easy the VLC people would just implement everything themselves and not need either library.

> I never understood the OSS communities. It just seems simple to me. If you don't like it, fork it and do your own.

The problem is, of course, the humans.

People sometimes take things very personally even when not meant that way. A significant fork for no good reason can distract from the work of the core project and dilute the user-base, and people will not always agree on what a good reason is/n't. Sometimes the problem is stated as poor code and/or procedure quality, and this can be taken as a rather direct insult.

Sometimes massive forks happen because of differing priorities between different groups of people and everything is perfectly amicable - you don't hear about these cases much (unless it inconveniences the userbase) because there is no drama to make a noise about. Sometimes these forks later re-merge, sometimes one becomes clearly superior and the other fades out, sometimes they go on to be completely separate projects.

It sounds like three are personal issues involved in this particular mess that we don't exactly know about so can#t hope to fully understand because the discussions started in private and have not been published and as we all know any argument, especially one that has gone on for some time, people can lose track of the true chronology of the issue and that can make reconciliation near impossible.


I agree with everything you say however, if the two things you rely upon are, in their own words, such a mess then I have to imagine that mess consumes an equal if not more inordinate amount of time to integrate with.

I'm a software developer too. In my career I've had to implement logic to work around buggy libraries, spend time looking into bugs in others code... It seems that at some point that the means don't justify the end and having my own code base that I'm familiar with would be easier than fixing theirs and waiting for disputed parties to figure out what they are going to do.

And I never claimed doing your own was easy. All I'm suggesting is that at some point it's easier than dealing with what you got.


> I assume this is an unbiased opinion as much as it can be but could you elaborate on what about FFmpeg is a "mess."

Examples: 2 prores decoders, 2 prores encoders (or 3), 2 different resampling libraries, libstagefright integration that does not work, more global context structures compared to libav, etc... They also refused to remove some very outdated (non-working) code like xvmc.

> why doesn't someone (like VLC) take the best features from both projects and create their own library?

Because it's a lot of work. An enormous work.


If I remember correctly, a big part of the reason that ffmpeg ended up with two resampling libraries is that after they'd created theirs, libav wrote their own with a different, totally incompatible API and ffmpeg wanted to support applications that were written for the libav API.


"There is a reason for everything"

Scott Meyers, talking of the various… quirks of C++. https://www.youtube.com/watch?v=48kP_Ssg2eY


For what it's worth, a lot of production code looks this way. It's not right, it really should be nice and neat and so on. However, I don't see it as a grave sin against the project. Messy code can diverge where needed more easily.

Three different copies of the same code? Yeah, ok. That's ok. One day, when you can, merge them together. You can't merge them together? It's ok. Maybe they shouldn't be merged together.

Is it a barrier to entry for new developers? I feel that any developer who has worked on messy legacy code won't bat an eye. This sounds more like a problem experienced by a young coder fresh out of university.

You definitely can write clean code. Cleanliness can be a priority. There are some surprisingly clean and well-written large codebases out there. However, a lot of people just don't care. They are very smart, capable people who just bang out code that works and don't care to integrate in the proper clean way with the old code.

If you want clean code, an old, large, working C/C++ codebase is not what you want. We often can't spend time cleaning up old code, since there's always more features to implement, bugs to fix, etc. Learn to deal pragmatically with code like that. It's not like that out of malice, or some misguided attempt at writing the largest IOCCC winner. You can work with it. It's just a bit trickier.


I've worked on some of those "old, large, working C/C++ codebases" and the ones that are not clean are the ones where you are terrified of making a small change to fix a bug, especially close to release, because you have absolutely no idea what might break. Two copies of the same code? Great, which one do I fix? Both? How do I test that it worked, I can't even figure out where #2 is activated in the UI?! Is there something a little different about them that I need to watch out for? And test cases for said codebase? Hahahahaha!


Writing clean code is not an academic exercise. It means comprehending it takes longer, writing features takes longer, testing it takes longer. It makes every interaction with the codebase harder.

That might not be quite as bad in a proprietary codebase since you have somewhat more of a captive audience, but in an open source project where you want a long-tail of contributions from many people, that is a serious problem.


Having multiple implementations of a feature does not make it a "mess" unless they step on each other's toes.


I never understood the OSS communities. It just seems simple to me. If you don't like it, fork it and do your own.

https://xkcd.com/927/


> If you don't like it, fork it and do your own.

The issue is the "you" implied there. So you fork it and start working on your own. What do the other contributors working on the previously-existing project do?

This seems to resolve itself when there's a clearly superior project and developers and distributions switch to the newer project.

However, if both projects continue to simultaneously develop...


> I'm wondering if there is so much turmoil here, why doesn't someone (like VLC) take the best features from both projects and create their own library? These days I just use gStreamer which can wrap either one in a sane API and is 1000x easier to extend.


Is the info about the attempted coup d'état wrong then? Because that's completely nasty. If you don't like the project leader, make a real fork and hope there is enough of you who will jump ship. Abusing the fact that you control the infrastructure to try and lock out the old leader is bad.


> Is the info about the attempted coup d'état wrong then?

It's partially untrue, yes. There was an actual vote from all the active developers to remove Michael from leadership, and that included the infrastructure developers.

But yes, the fork was very badly done.


>It's partially untrue, yes. There was an actual vote from all the active developers to remove Michael from leadership, and that included the infrastructure developers.

Then why did so many remain with the ffmpeg project instead of going with libav ?


It appears the opposite is true. ffmpeg is more or less a one man show. See http://thread.gmane.org/gmane.linux.debian.alioth.multimedia... and https://lwn.net/Articles/650816/

"I think the statistics indicate that the situation is much worse than I expected. Please keep in mind that because of the daily merges, all commits that are made in Libav also appear in FFmpeg, but not the other way round. With a finger-in-the-wind estimate of subtracting the numbers in the Libav table from the FFmpeg table, the distance between Michael and the other FFmpeg developers because even more extreme."


What were the results of the vote? Are you saying Michael was voted out?


Really unfortunate because the software is so useful.


And that's probably one of the reasons for this whole debacle. A project without adoption would not be worth fighting over.


With this change, is merging of the projects now a possibility?


Like jbk, I'd like to hope it will happen, but the combination of significant tribalism, plus the very different development philosophies may prevent this.

For the merging to happen, there would have to be both some agreement on the technical direction of the two projects, as well as some sort of social resolution, which would likely involve some maintainers of one fork or the other leaving.

Regardless, from my point of view, it seems unsustainable to keep on merging from libav to ffmpeg at the pace that Michael has been doing, so the projects will end up diverging enough at one point that momentum ends up behind one or the other.


Let's hope so?


Interestingly, a recent LWM article on ffmpeg coming back to Debian touched on the possible implications of Michael stopping work on the project: https://lwn.net/Articles/650816/

"Reinhard asked whether FFmpeg is a one-developer project that would find itself in trouble should Michael stop working on it. "To me, this constitutes a serious bus-factor: Without Michael, (probably) nobody is able to replace him." He went on to suggest, though, that Michael's departure could do a lot to bring an end to the fork."


Before Yahoo! went public David Filo contacted Larry Wall and gave him the option to buy a good portion of pre-IPO stock at a low price.

The reason? Yahoo! could not have existed without Perl.

FFmpeg has been used in so many profitable ventures (hint[1] hint[2] Netflix). I sincerely hope there is a business leader with the same level of consciousness and grace that will do the same for Michael. He's one of the heroes of the past decade. Internet video streaming would certainly not exist as soon as it did without him.

[1] https://twitter.com/nicolasweil/status/466248052454727680

[2] http://www.streamingmedia.com/Articles/Editorial/Featured-Ar...


Kudos to Yahoo! What a different time, thankful tech companies. But this is no more, only after public shaming did the Googles/Facebooks chip in money for OpenSSL and GnuPG when those projects almost collapsed. And they gave rounding-error level of their multibillion cash piles.

This is why the community is broken and sadly some of us feel cornered to do Affero or just not open source. I used to be hardcore BSD, but times changed and had to adapt.

These the majority of the community is selfish, doesn't contribute back, doesn't even give credit to most of the tools behind their UIs. See:

http://zedshaw.com/archive/why-i-algpl/


Being LGPLv2 was enough to get FFmpeg some income streams, because almost any shareware video converter you could find shipped it without credit or source distribution, and the SFLC would go after them for copyright violation.

Not sure if there was much contribution or acknowledgement for the longest time from any company (Google, FB, Vimeo, Netflix, Zencoder, etc) using it, and I remember the best they'd do for bug reports was say "yeah it crashes sometimes" and refuse to send sample files.

Eventually Google did have some people contributing full-time, of course. They paid me 1x GSoC (one week's engineer salary) for more than a year of work once. Um, it seemed like a good idea at the time.


Less a different time, more a different company. The sad part is, that sort of culture is why they "lost".

Thinking about more than yourself never seems to work out in this world. I really, really wish it would. And I'll personally continue to follow my conscience over my wallet. But the wallet always wins in the public arena. In all facets of life.


Google was paying MiNi to work on FFmpeg, but I would guess that it was "just" a normal Google software engineer rate.


Wow, that's a pretty classy move. Now lets how this will help heal the wounds with the libav community and they will in fact move to the other side.

I think he should have left out the bit about 'will I ever return', that might actually cause libav contributors to hold off from making the switch.

Still, it's great to see the recognition that in the end this is all about the product and its users.


I disagree. FFmpeg is/was heavily dependent on Michael for active development and bug fixes. In the last few years, more than half of the commits are from him. Without his contribution to development, nor a clear leader and succession plan, FFmpeg may stagnate again.

I don't blame Michael for any of this situation, but this is not a win for the community, product, or users. Development is going to slow way down, bugs are going to go unfixed, and the overall quality will decline in the short to medium term. It is unfortunate that vitriol over the fork led to this situation, where neither libav nor FFmpeg win, and everyone loses.


> In the last few years, more than half of the commits are from him.

This is completely incorrect. Most of his commits are merges from libav and other forks, and not code commits.

He's doing a great job at it, but he is not irreplaceable.


What else should/could he have done that would be better?


he could have stepped back much earlier


or someone else could have stepped up much earlier?


Well people actually have tried that 4 years ago: http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/123868

and somehow leadership was still a thing for Michael at that time, which really contradicts with something he says now.


That looks very much like a hostile takeover, it's unsurprising that it failed.


It was very much a hostile takeover. If I remember correctly, the people who controlled the infrastructure like the website and mailing list booted out not only Michael but also a bunch of the existing maintainers of ffmpeg code and it got really ugly.


You might check your facts before spouting this kind of sentences.

Sadly the people on the Libav side never spoke up and nobody really checked or asked since they are "EVIL".


Even without if you remove him and the common committers between the 2 projects the 9 first top committers of FFMPEG commit more than top 2 of libav : https://lwn.net/Articles/650816/


That's incorrect. Those statistics include all the MERGE commits from libav into FFmpeg, which happen several time per day. Michael did not do 1500 commits more than the second commiter.


No, those statistics exclude merge commits . Here's the command that generated those outputs [1]:

  git shortlog -ns --no-merges v11..HEAD | head -n15

  git shortlog -ns --no-merges n2.4..HEAD | head -n15
[1] http://marker.to/smY3KT

Michael Niedermayer is an EXTREMELY prolific dev who has been banging out FFMPEG code for more than a decade. It's by no means a one-man show, many other devs make large and valuable contributions - but in relative terms Niedermayer absolutely dominates FFMPEG, both in terms of personality and code output.


This remove only merge commits, but the commits themself are from libav


But they'll have the correct author against them, no?


Why are the two groups upset at each other?


Some info: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html

There are more links in that post to fill you in on the details.


I suggest take a look at a different point of view (https://blogs.gentoo.org/lu_zero/2015/02/20/demotivation-fud...)

This post is from someone involved in libav but it refers to the different public e-mails that were exchanged when the fork was originated and they document factually things (at least, as far as I can understand)


I've read that before and it comes across as overly defensive and very personally biased. If I were heavily invested in one side or another I possibly would have written a similar post defending one side or another.

I'm not saying the points aren't valid, but I stand by my statement that "libav is working to the same goal as ffmpeg. The split is due to idealism and politics, not due to the goal of the project."


I agree. There is a lot of seething rage, but not a lot of citations for the point he's putting forward.

'..making FFmpeg effectively a strict derivative of Libav' is a pretty egregious display of bias, one that to some degree shows the distortion of the author's viewpoint.


Would you mind telling me where it is biased?


I had never heard of any of this mess until today, don't particularly care about either project, but this comes across as extremely biased, even from the most basic aspect of tone.

>former FFmpeg leader Michael Niedermayer.

Former? Well, he resigned today, but this blog seems quite old.

>Since FFmpeg was a project famous for horrid code quality and sketchy and irregular API

Was it? Is it? All I know is a bunch of stuff uses it. Where is that fame?

>“The people behind Libav stole the FFmpeg infrastructure”, some of the admins even got questioned in their workplace if they really stole something. Pity that most of the people related in keeping the infrastructure functional were doing so on their own hardware and co-location, but obviously checking facts is hard, better go help shoveling manure on people.

Server infrastructure is one thing. You mention yourself that you guys didn't have the trademark, yet you took the domain name too? I dunno about the laws in all of the locations where this played out, but in the US at least, that'd be theft.

>started to merge daily everything Libav does more or less since the beginning, making FFmpeg effectively a strict derivative of Libav.

Again, tone, wording, etc. This statement does not stand on its own: If I have a 50 million line project that had a small subsection forked, and every day the fork's changes were merged, that does not make my project a strict derivative. I'm not saying libav is a small subsection, or making any sort of claim about the ratio of ffmpeg original work vs. libav merges, but you have provided zero information or evidence to support the claim one way or the other either.

>Now things are a little more fair and at least FFmpeg more or less states that is a derivative of Libav with additional features in their download page.

Ah, here you go. Kinda. But again, tone. And not much evidence. The ffmpeg download page seems to be open about including code from libav, but uh, additional features could be major. What's the difference in features? What is the actual volume of work in comparison?

>On the other hand I’m not cool at all in having an unfair competition, with a side piggy-backing on the other like it is happening: everything in Libav is merged inf FFmpeg, enjoying the fact the code is polished and cleaned before.

This is a feature, not a bug. Unfair competition? Piggy backing? You are developing an open source project. Do you only want things to be open if the people using it are people you like?

>sometimes the amount of nonsense thrown at you by those rabid fans not knowing anything is appalling.

You write this, and immediately follow with:

>Hopefully writing more about it might help defusing this situation.

Blog posts like this are very inflammatory. You hurl insults, make a lot of claims without providing evidence that backs them, and generally come across as someone who has a lot of personal bias on the matter.

That isn't to say that you're wrong: I have no idea who is right or wrong on this. I don't particularly care. But your blog post is about as biased as it gets. And to note, biased doesn't necessarily mean wrong - you can be biased and still be right.


> Former? Well, he resigned today, but this blog seems quite old.

He got demoted, as written in the blog post, did you read it with attention or you just went through looking for bits you could use? > Was it? Is it? All I know is a bunch of stuff uses it. Where is that fame?

You can ask the GStreamer people or the VLC people, I started being involved in MPlayer and FFmpeg because the code was not really working on PPC...

> Server infrastructure is one thing. You mention yourself that you guys didn't have the trademark, yet you took the domain name too? I dunno about the laws in all of the locations where this played out, but in the US at least, that'd be theft.

We did not took the domain, the owner of the trademark is not Michael Niedermayer.

You claim to know nothing yet you cut quite interesting judgement and you cherry pick in a quite interesting way.

"insults" is a quite loaded term btw.


>He got demoted, as written in the blog post, did you read it with attention or you just went through looking for bits you could use?

It certainly seems like he had been leading the ffmpeg project until his resignation.

As for looking for bits I could use, I am quite specifically responding to your question about how the article comes across as biased. I was not looking for parts that seemed unbiased, because you were looking for the biased parts.

>We did not took the domain, the owner of the trademark is not Michael Niedermayer

Your own blog post says " the trademark FFmpeg had been given by the owner of it Fabrice Bellard to the former FFmpeg leader Michael Niedermayer"

Which is it? You say in your post he was given the trademark.

>You claim to know nothing yet you cut quite interesting judgement and you cherry pick in a quite interesting way.

You're defensive. You asked a question about how your article was biased. As an outsider, these are the parts that looked biased.

If you ask a question, you can reasonably expect an answer. If you don't want an answer, don't ask the question.

>"insults" is a quite loaded term btw.

Uh. Thanks for informing me, I guess? I'm not sure how you can in other places say "clean up monkey" is horribly offensive, but "rabid fan" is not an insult at all.

I doubt HN is a bastion of ffmpeg supremacists, and there's no organized movement to suppress your voice, so the reaction your getting should probably be taken as an indication that you should undergo some self introspection. Open source projects depend on community support to exist. Libav may be the best thing since sliced bread, but if you drive away potential users and supporters, you are harming the chances of the project's success.


You seem more interested in having ownership of the product and receiving credit/money than producing a quality product.


> Former? Well, he resigned today, but this blog seems quite old.

In context he may consider the vote to keep Michael Niedermayer as team lead a farce. Several of the voters mentioned that they only voted for him to enjoy the resulting drama.

> This is a feature, not a bug. Unfair competition? Piggy backing? You are developing an open source project.

There is hate between the projects. libav was (iirc) started with the intent to be ffmpeg done right, something that is hard to show when the ffmpeg maintainers can simply copy paste every improvement until libav collapses from lack of support/donations.

Not going to take a side in this either, there seemed to be a need to grow up in both groups.


Sigh. This is one of those situations where the world has received so much benefit and they didn't realize it until that person finally got fed up. FFmpeg is sort of an ongoing disaster, but it reflects the nature of media on the web, and it works. I'd love to say that my hunch is things will get better but I don't think that will be the case short or long term.

libsndfile -- another key component everyone takes for granted -- is in a similar position. Full of known problems, super-smart but slightly neurotic leader, and GPL issues that people are pretending not to notice in hopes he finally does a release after 5 years.

I've done major community work and man, is it ever exhausting. It's a shame we haven't found a way to get people the assistance they need. Some of which is psychological.


The approach I'm trying to take with the community I'm involved in is to keep the effort required spread out -- so for instance I manage mainline releases but somebody else deals with stable branches and point releases, and a third person does the "pick up otherwise orphaned patches from the mailing list and get them applied" work. If I was trying to do all those jobs at once I'd never find time to do any of the things I actually find interesting!


This is probably one of the issues with being a the aforementioned super-smart / super-productive leader: they can take all of that load if needed.

Should they? God no. No one can run that workload as a volunteer for a decade+.

But I can see how the default reality probably bends towards "Well, someone left and we need this job filled" -> "I'll just temporarily add that job to my workload" -> "It'd be more effort to move that job's responsibility to someone else, so I'll just keep doing it."


As (I think) the third person you mention above, I totally agree---and thanks for the great work keeping the tree in good state.


Thanks Michael for all the awesome work. Sad you are leaving for these reasons, hopefully in the futur, libav contributors will come back to FFmpeg and be less agressive with the leadership, but it might not happen.


A huge thank you to Michael. It's easy to forget how difficult playback was just 5-10 years ago. FFmpeg has been invaluable.


> Especially as somehow "leader" is being interpreted by everyone as "the guy who does all work noone else does, and takes all responsibility noone else wants to take"

Hmm.


> Especially as somehow "leader" is being interpreted by everyone as "the guy who does all work noone else does, and takes all responsibility noone else wants to take"

That's what leadership is.


There's likely otherwise stuff to it, e.g. Does all the boring housekeeping commits, patches security vulnerabilities etc, leaving others to work on the 'sexy' stuff like new features.


I get that leadership was a role he ended up in and not one he wanted.

But, that quote above sounds to me like exactly what a leader is?


Aka "my technical skills outshine my people skills and I'm highly motivated to get things done." I'm guilty as charged as well. It's ... exhausting. But it's also the exact set of personality flaws that results in so much stuff actually getting done on the planet. Everyone knows that guy. He's probably fixing your build screwup right now. Give him a hug or a beer. And find him a mentor and some competent helpers.


That's not at all what he's saying. You're trying to validate what you do. Your AKA is pulled completely from your mind and has nothing to do with with original statement. A leader has people skills above all else.

> I'm guilty as charged as well

You two are not being charged for the same thing.


I related to much of what he was saying. Between the lines I felt what was going unsaid. So I brought experience and humanity to the discussion. I am not seeking validation.

> A leader has people skills above all else.

Leadership skills and interpersonal skills and management skills are completely separate. Amazing leaders/motivators who are downright shitty people are not uncommon in our industry.

This particular leader made the classic mistake of doing too much. "Nobody else wants to do it? Nobody wants to take responsibility for this? I will. I'll do it" is the definition of a bad manager. And admitting it in your farewell post doesn't demonstrate great people skills either.

Regardless, these people are all around us. And they deserve a beer and a mentor and some help. Next time you're looking for a project to contribute to, consider helping that guy.


> Leadership skills and interpersonal skills and management skills are completely separate.

No, they aren't. Leadership skills are a subset of interpersonal skills and management skills overlap interpersonal (especially the leadership subset) skills.

They are all different sets, but they aren't completely separate.


If you're drawing a Venn Diagram of "ways to commmunicate" in two dimensions, sure. If you're thinking about humanity and ethics and the way each of those skills is valued by a community in transition, the ellipsoids don't have to touch. Might I suggest the current incarnation of Donald Trump as a case study if Steve Jobs is too trite.


As a VLC user, I'm sorry to hear things in the FFmpeg community got so bad. However, I thank all involved (including VideoLAN) for the work they did to make something that plays about anything on the major systems. Good news is, since it's open-source & mature, it has a chance of rebounding back into good shape either in current or new hands.


Just to add context: this is a post from a person involved in the project since 2004. It is a bit bitter but I found it interesting to read ("What happened to FFmpeg" by Kostya)

http://codecs.multimedia.cx/?p=339


Can someone give us a backgrounder on what the split in the ffmpeg community is about?



http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html

There's probably some great popcorn in mailing lists.

Edit: libav have a big "personal conflict resolution" section here which is another hint:

http://libav.org/about/


The linked articles in this LWN article (and the article itself) give some pointers. https://lwn.net/Articles/607591/


The message on the FFmpeg site http://ffmpeg.org/index.html#message sounds hopeful for a reconciliation of the forks.


This is all news to me but the FFMpeg / libav split and apparent attempted coup d'etat of FFMPEG the other year all looks very sad. This reminds me of the XFree86 / x.org splits, the EGCS/GCC splits etc.

All very sad but makes for interesting OSS history! I find FFMpeg very useful, but then again I find VLC and libav useful. In fact, it is all useful. I hope it all works out.


And then we also have the mplayer/mplayer2/mpv split, where the project forked not once, but twice. Between this and ffmpeg/libav, I honestly have to wonder if there's something in the culture of media encoding/decoding technology that causes people to stop working together like this.


Why sad? XFree86 and GCC had HORRIBLE code, first thing done in forks was to delete 70% of code.


As a Gentoo user we're gonna have terrible dependency problems for the next few years. Specifically VLC and Qt.

Somebody at Redmond is laughing at the OSS community for failing to provide functionality that comes out of the box on the latest Windows systems.


Nothing that Microsoft has comes close to the functionality of ffmpeg. Apple, either, for that matter. Last time I checked neither OS even supported reading Matroska containers natively, and containers are pretty simple compared to codecs.

    $ ffmpeg -codecs 2> /dev/null | wc -l
         396
ffmpeg and libav are simply the most comprehensive collections of video codec software in existence.


>Last time I checked neither OS even supported reading Matroska containers natively

Windows 10 actually does support Matroska out of the box, albeit 11 years later than FFmpeg.


And the code is surprinsingly compact.


That doesn't make either one good.


I can promise nearly every implementation in ffmpeg is better than the competitors. No commercial product has the motivation to keep making improvements to their code that already works "well enough", and they don't have as good a set of working optimizations to apply to new codecs.

They can get new features out the door, though. One reason for the original fork in ffmpeg was that the very strict code review culture made it difficult to get anything in that was experimental or depended on personal taste.


There is a lot of very useful functionality in ffmpeg/libav. That doesn't make using it pleasurable.


Were you trying to use it from the API or the command line?

Either way, yes. Elenril and others were doing good work cleaning up the API when I last paid attention years ago, but there's a lot of surprise technical issues esp. in libavformat that it has to cover up. (Like, PTS/DTS in avi. Like operations that are instant in some file types might be real-time minutes in others.)

As for the command line, major customers tended to not ever give feedback on it, and it was maintained by Michael who tended to use the same code-review standards on the UI code as on the inside of a video encoder. This made it quite difficult to ever get anywhere. That's one of the reasons there was a fork back then.

Of course, there's deep technical problems there too - you can tell it to do all kinds of things that are actually really hard, and it will kind of half-heartedly do them then fail. Try converting a Matroska file to MP4 without re-encoding it; you'll get a weird error. That one weird error would take more than a year of developer time to fix.


Yeah, both. In fairness, the last time I tried using the API was before the libav split, and I have no doubt that the situation has improved; the command line, while almost ludicrously powerful, retains a lot of terrible habits -- silent defaults, mutually contradictory options, &c.

I have somewhere a much more prescriptive python library that sits on top of the command line API, but I think it'd be really great if there were a "strict" mode for the CLI -- no more implicits, no more silent rejiggering of options. If you don't totally account for your input and output, it's an error. Then, there could be a much more forgiving and intelligent front end to the front end that allowed for things like "-i foo.avi ./foo.mp4", making best guesses at each stage of the pipeline.


It makes them better than the competition, in that I can throw practically any video format in the world at libavformat and friends based players (like vlc or mplayer) and it just works.

It may not be "pleasurable" but it's nothing to be trifled with.

Perhaps video is just a hard problem?


There's no question that ffmpeg set itself a very difficult problem, and largely succeeds. But it does so in a way that is brittle and (whether purposefully or simply out of lack of knowledge) learnt nothing from e.g. QuickTime or DirectShow.

The problem as I see it is that media manipulation is not really suitable for a one-size-fits-all command-line solution, and the API was slave to the command-line tools. This may have changed recently, which would be great.


So who is likely to take the reins on the FFmpeg end?


For those who were around for it, I'd be interested in a comparison with the ffmpeg/libav issue and the GNU Emacs/XEmacs times.


I didn't follow the background of that fork. Will ffmpeg and libav be able to merge now? Was it a leader conflict or something else?


To whoever contributed to it: the swscale library (colorspace conversions) was really helpful during my PhD work.


Sad to see the hostile fork "win".

I know if I were ever in the position to contribute to general OSS video, libavcodec would be on the list of projects i would never be willing to support.

Hopefully these projects can reconcile and libavcodec and its shamed name can be put down and development can continue under the projects true name to honour its true roots.


> Sad to see the hostile fork "win".

I wouldn't put it that way, considering that the last distros still shipping libav are abandoning it in favor of ffmpeg.


Thank you for all the work that you have done so far Michael Niedermayer


Every project needs a strong leader. I seems that projects seem to fall apart when decision making become driven purely by consensus. If Linus was not a strong leader in giving Linux definitive direction, this same thing may have happened for Linux by now.


not that he was likely to go without making a ton of derogatory remarks about the livav split.

and if he never liked the leadership role as he claims, he was given ample opportunities to get rid of it.


He states:

"I had hoped for a long time that the fork situation would resolve and both sides somehow merging back into one team. All the Libav developers joining FFmpeg again. But even now as the last distributions are preparing to remove Libav, still theres no hint of that happening. Maybe even the opposite."

and

"Do friendly merges, and if you like do hostile merges. Its all up to you now!"

That isn't "a ton of derogatory remarks".

libav is working to the same goal as ffmpeg. The split is due to idealism and politics, not due to the goal of the project. I'm not going to pick a side in this, as interpersonal relationships are impossible to accurately gauge from an external viewpoint.

I'm not sure if you have a personal stake in this argument, and I apologize, and sympathize if you do.

Best of luck in the future Mr Niedermayer. Thanks for all the work over the years.


"...and its very difficult to be the leader when one is on one side of this split and the other tries everything to push me out..."

that the gist of it, it's always the other side wanting him harm. he never ever acknowleged any wrongdoing on his side.


The libav side have consistently refused to merge code from the ffmpeg side of the split, including security fixes, have written their own incompatible versions of any APIs the ffmpeg developers come up with, and been generally hostile, and he's the one that's had to deal with the mess for the past several years.


"Refused" ? In Libav any patch has to go through review, anything that had been put in review had been managed as any other patches by any other sources.

Libav is about rules and not leaders.


After seeing a few of the comments from libav developers here and on IRC, you can see the bitterness is still alive. :-(


if everything that somebody from the libav side says here is automatically labelled bitterness and downvoted, maybe you can understand why some are indeed bitter.


I've never heard of this split up until today, why are you still salty? You won, you can take over the world now.


Your users don't care about rules, and rules need manpower.

If your rules prevent you from keeping your software secure, you don't have enough manpower to do what is in your user's best interests.


As far as I can tell, libav is the one with the rules and multiple developers. And now ffmpeg is the one with no rules and zero developers?


I don't know if he's ever explicitly mentioned his "wrongdoings," but I do feel that he has changed for the better since the libav split. This is in terms of how he's interacted with people on the ffmpeg-devel mailing list, he's shown up consistently on IRC, and getting patches accepted aren't a royal pain as it was in the past. I don't know how real contributors/maintainers feel, but as a user and sometimes patch-submitter, I feel like things have gotten better.


You're doing a pretty good job of illustrating why things went off the rails.


http://article.gmane.org/gmane.comp.video.ffmpeg.devel/13099...

posts like this one is why it went off the rails a long time ago. there is also the one where he suggested a libav dev should commit suicide and later labeled it as "Austrian humour"


Honest series of questions from an outsider:

Your team won, Michael stepped down. Of his own volition. What positive outcome could possibly be had by still spouting bitterness and negativity against him? Is it because he did not genuinely say "sorry" at some point? After reading [0] and [1], is it not possible to admit that maybe both sides have some genuine "sorries" to pass around? Now seems like the perfect opportunity to make a positive change for developers and users instead of venting frustrations that are only going to further polarize the current division.

(I'm not "automatically" labelling your posts as bitter. Almost all of yours in these comments objectively contain negative language, typically directed at Michael.)

[0] http://ffmpeg.org/pipermail/ffmpeg-devel/2011-January/106403...

[1] http://ffmpeg.org/pipermail/ffmpeg-devel/2011-January/106489...

Edit, to add:

I guess I echo this sentiment (from article's email chain): http://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/176493.ht...


https://blogs.gentoo.org/lu_zero/2015/02/20/demotivation-fud...

For the another batch of links and some more background.


That also is not a derogatory remark. Protective and one-sided, but not derogatory.

You can't claim that everyone that disagrees with you is being "derogatory".

EDIT: Example:

"I disagree with you" = not derogatory

"You're an idiot" = derogatory



I'm pretty sure I can dig up comments like this from both sides from 4 years ago, especially from IRC logs.


please find a mailing list post where Michael is being attacked like that.


You are welcome to do.

Libav has a code of conduct and it is enforced so maybe you'd have much an harder time finding such gems.

http://article.gmane.org/gmane.comp.video.ffmpeg.devel/17927...

(Keep in mind at least one of the Libav supported got questioned on his dayjob regarding "thievery" because of those lovely examples and the legends the fans kept propagating)


If

>If noone has time ill fix the memleak and commit and let the libav cleanup monkeys clean the rest up for me.

Is the kind of inflammatory comment you are so up in arms over, I think you must have lived a very sheltered life. Especially considering this comment looks to have come shortly after the hostile split.


> If noone has time ill fix the memleak and commit and let the libav cleanup monkeys clean the rest up for me.

Is that the line you're objecting to?

That sounds kind of jokey and affectionate to me.


Seriously, people on HN are enraptured when Linus Torvalds writes things that are about eight billion times more personally hostile than that.


Not going to comment on his skills to lead such a community, which more than obviously are very very good, but for a project manager of 14 years he really writes like a newcomer.


The ability to read the H.264 spec and the ability to write well can't always exist in the same Austrian savant developer.


His Frenglish is quite good, no?


He's Austrian, and his first language is German...


I was thinking the same thing. Looks like the writing of someone posting to a drug forum blacked out on benzodiazepines.


That's oddly specific.


maybe speaking from personal experience...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: