A good multimedia framework offers an intuitive API and a modular architecture to easily add support for new audio, video and container formats and transmission protocols.
In contrast to function libraries, a multimedia framework provides a run time environment for the media processing.
Ideally such an environment provides execution contexts for the media processing blocks separated from the application using the framework.
They provide a consistent interface for developers to access various multimedia components and services offered by the underlying operating system or hardware.
Modern multimedia frameworks typically offer a wide range of functionality, including but not limited to: Several prominent multimedia frameworks have gained widespread adoption, and they vary depending on the programming language and platform: