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.