That's a good point, although a lot of options are going to be relevant for any underling binary (like, as you note, the framerate, bitrate, etc.) so I'd actually say that having a layer of abstraction would be even more beneficial when the same interface could have multiple backends :)