Where does the requirement for it being a generic library come from? The point is that a lot of things that are available as command-line utilities for shell scripts already have a C API available as well.
And libav* is used by a lot more than /usr/bin/ffmpeg