I tried not to get into this discussion, mostly because it will degenerate to a mud sliding contest.
Before we start, one point:
I am as biased as Alexis, as we are both involved on the projects themselves. The same goes for Diego, but does not apply to Tomáš, he is just a downstream by transition (libreoffice uses gstreamer that uses *only* Libav).
How to decide?
- Libav has a strict review policy every patch goes through a review and has to be polished enough before landing the tree.
- FFmpeg merges daily what had been done in Libav and has a more lax approach on what goes in the tree and how.
- Libav has fate running on most architectures, many of those are running Gentoo, usually real hardware.
- FFmpeg has an old fate with less architectures, many qemu emulations.
- Libav defines the API
- FFmpeg follows adding bits here and there to “diversify”
- Libav has a major release per season, minor releases when needed
- FFmpeg releases a lot touting a lot of *Security*Fixes* (usually old code from the ancient times eventually fixed)
- Libav does care about crashes and fixes them, but does not claim every crash is a Security issue.
- FFmpeg goes by leaps to add MORE features, no matter what (including picking wip branches from my personal github and merging them before they are ready…)
- Libav is more careful, thus having less fringe features and focusing more polishing before landing new stuff.
So if you are a downstream you can pick what you want, but if you want something working everywhere you should target Libav.
If you are missing a feature from Libav that is in FFmpeg, feel free to point me to it and I’ll try my best to get it to you.