Introduction¶
The Fluendo SDK is a simple-to-use API that allows developing cross-platform multimedia applications. It provides an abstraction layer leveraging GStreamer’s power to target multiple platforms with the same source code while taking away the complexity of the GStreamer API.
Given that GStreamer aims to be as generic as possible, specific usage such as media playback, recording, manipulate devices, etc. tends to require quite a lot of code when other dedicated APIs are more straightforward. That’s the main reason why we created the Fluendo SDK.
As depicted in the following scheme, our SDK can also include a set of components based on the Fluendo Codec Pack. These complementary components are focused on specific multimedia tasks.
Along with the Fluendo SDK, we also provide vendor-specific software components that rely on the underneath hardware platform. This vendor-specific components are mainly related to DRM and hardware acceleration units.
Fluendo SDK stack¶
Components¶
Player Component¶
This component includes the File and Network Streaming (non-adaptive) playback support. It is responsible of opening main market container formats, decoding the audio and video formats, performing the basic processing (audio volume, video scale, rotate, color transforms, effects), and finally rendering the audio/video file.
Recorder Component¶
This component includes the recording from several streaming sources as devices or multimedia files. It allows the manipulation of information to transcoding tasks.
Media discover Component¶
This component allows to obtain all the information about a multimedia file, type and quantity of streams, codecs used, bit rate and more.
Adaptive Streaming Component¶
This component leverages the Playback Component and includes the main Adaptive Streaming plugins based on GStreamer: MPEG-DASH, Apple’s HLS and Microsoft Smooth Streaming.
DRM vendor Component¶
The adaptive streaming demuxers included in the Adaptive Streaming Component already support interfaces to work with the main market DRM technologies such as PlayReady, Widevine and Marlin. The actual DRM support requires the above mentioned interface and the DRM implementation (license and libraries) which must be provided by the vendor.
HW Acceleration vendor Component¶
Fluendo SDK allows working with platform manufacturer-specific multimedia API or a specific hardware component that requires a custom GStreamer plugin.