Embed our patent compliant GStreamer codecs into your FFmpeg based applications
Fluendo developed a GStreamer based decoder to enable the use of our complete set of audio and video plugins into one of the most popular multimedia frameworks: FFmpeg.
Using FFmpeg codecs in commercial applications may put your organization at risk, since it uses patented audio and video technologies without the proper license. Fluendo FFmpeg Enabler allows the expansion of our platent compliant codecs into this framework, thus protecting organizations in front of patent holders such as MPEG LA, Via Licensing, Microsoft, or Dolby.
The Fluendo FFmpeg Enabler
Filling the legal gap in FFmpeg
Legal issues are a constant source of questions and confusion for organizations and developers working with FFmpeg.
It is widely known that embedding FFmpeg core into a commercial product could put organizations at risk, since this framework uses libraries which include patented audio and video technologies (ie. libavcodec). Therefore, multimedia patent holders like MPEG LA, Via Licensing, Dolby, Microsoft are vigilant and diligent about collecting the corresponding technology royalties.
The Fluendo FFmpeg enabler brings all our portfolio of patent compliant audio and video plugins into the FFmpeg framework, allowing developers to create a fully compliant commercial application.
GStreamer Decoder for FFmpeg
Fluendo developed a GStreamer based decoder using the backend system included on FFmpeg.
Our GStreamer decoder for FFmpeg allows to embed Fluendo Codec Pack in a seamless and transparent way for the developed application or environment. In addition to the legal benefits, our solution offers the following advantages to FFmpeg developers:
Our enabler allows organizations that are developing FFmpeg-based applications to easily embed a legal codec solution.
The Product Management or Legal departments don’t need to negotiate specific agreements with the main multimedia patent holders in the market such us MPEGLA, Microsoft, Dolby, etc., which could result in product launch delays.
Developers and software engineers can now leverage a patent compliant solution from the day 0 of their new solution.
Since our solution consists on a new backend inside the FFmpeg framework, the integration is pretty straight forward (plug and play).
It won’t result in any complicated software modification, facilitating the development of your application.
What is FFmpeg?
FFmpeg is a collection of software libraries and programs to record, convert and stream media.
FFmpeg contains more than 100 codecs, most of which use compression techniques of one kind or another. Many such compression techniques may be subject to legal claims relating to software patents. Such claims may be enforceable in countries like the United States which have implemented software patents, but are considered unenforceable or void in other countries.
This is where our Fluendo FFMpeg Enabler adds value. If you need to use multimedia formats covered by patent licenses, our solution allows the use of our patent compliant plugins in a commercial solutions based on FFmpeg.
FFmpeg or GStreamer? Why?
|Cross-platform support||FFmpeg cross-platform support is limited. Linux could be considered officially supported. However, other platforms builds (Windows, OS X, and Android) are maintained by volunteers.||GStreamer framework is fully compatible with all the major operating systems including Windows, MacOS, Android, OpenSolaris and Linux based distros like Ubuntu.|
|Documentation and Support||
The official documentation is not clear and can
be quite confusing.
Mailing list is active, but you must be very specific in your question.
Really good tutorials and general
You can access a general API.
Very active development mailing list, with very helpful members (even questions for beginners).
It’s not easy for beginners to use and
The API is huge, its use is often non-intuitive, and many important concepts are not explained clearly.
Tutorials allow newbies to operate with basic
GStreamer’s well defined architecture also allows to venture with more complex stuff without significant problems.
|Codec support||FFmpeg strength lies on its extensive list of supported codecs. It renders an active support for almost all the required codecs including lossless FFV1, lossy snow codec, WebM, FFVP8, VP9, HEVC, AAC and FAAC. Besides, FFmpeg also provides video streaming and web hosting capabilities. It supports popular media libraries such as libavcodec and libavformat.||It depends on how it was compiled; generally, every known format is supported for decoding, and a large number of formats is supported for encoding. MIDI playback is supported but depends on 3rd party software, so realistically it is only semi-supported on Linux.|
|Filter support||A lot of filters of many kinds are available, from simple rotation and flipping to watermarking.||A lot of filters of many kinds are available, from simple rotation and flipping to watermarking, and even some exotic such as voice removal.|
|Audio and video I/O||It doesn’t provide audio/video I/O and so you need other SDKs for this purpose.||Supports all known audio and video outputs and inputs, you will seldom need anything else.|
|Framework redistributable size||It heavily depends on which codecs you want to support, (therefore) which libraries are included in the build.||Occupies larger storage space as compared to other frameworks.|
What are media codecs, and how do they work?
A codec is a device or computer program for encoding or decoding a digital data stream or signal. (codec is a portmanteau of coder-decoder). A codec encodes a data stream or a signal for transmission and storage, possibly in encrypted form, and the decoder function reverses the encoding for playback or editing. Codecs are used in videoconferencing, streaming media, and video editing applications.
Why do we need codecs?
Multimedia files (movies, music…) are huge, which means they are usually difficult to transfer over the network. To speed up downloads, codecs were built to encode, or shrink, a signal for transmission and then decode it for viewing or editing. Without codecs, downloads of video and audio would take three to five times longer than they do now.
What are the most popular video container formats?
There are hundreds of codecs in use out there, and you will need combinations that specifically play your files. There are codecs for audio and video compression, for streaming media over the internet, speech, video conferencing, playing MP3s, and screen capture. Selecting the right codec can depend on several factors. Target file size, output quality, and delivery method all factor in.
Some of the most popular codecs are:
- Audio: MP3, AAC, WMA, AC3
- Video: H.264/AVC, H.265/HEVC, MPEG-4 part 2, WMV
Because there are so many codec choices, codec packs are a convenient option.
Fluendo Codec Pack is our complete set of audio and video encoders and decoders especially created for Enterprise. However, if you only require codecs for playback purposes, as an End User, ONEPLAY Codec Pack is the solution for you.
Real Use Case
Firefox GStreamer backend
On 2016, Mozilla Firefox decided to change its multimedia backend from GStreamer to FFmpeg (NPAPI extensions were also disabled). This change affected a set of audio and video formats whose browser support suffered from a legal limitation.
Since Firefox embeds FFmpeg dynamically, the GStreamer decoder maintains FFmpeg API/ABI compatibility by using the GStreamer framework behind the scenes.
Interested in our GStreamer plugins?
Interested in enabling our GStreamer plugins into any specific framework. FFmpeg or DirectShow? Please contact us and tell us more about the multimedia challenge you are facing.CONTACT