Skip to main content

Unifium Adds Extension Decoder (FFmpeg) for Wider Format Support

 

Modern media playback isn’t just about performance—it’s about compatibility. If your player fails to open a file, users don’t care why. They just see a broken experience. To address this, I’ve introduced Extension Decoder, powered by FFmpeg, to significantly expand the range of supported video and audio formats in Unifium.

Most Android players (including those based on Media3/ExoPlayer) rely on platform decoders or a fixed set of extractors and codecs. While efficient, this approach has clear limitations:

  • Unsupported or rare codecs
  • Non-standard containers or malformed streams
  • Inconsistent behavior across devices

This often results in playback failures or the need for users to convert files manually.

The Extension Decoder acts as a fallback decoding pipeline using FFmpeg when the default player stack cannot handle a media file. This fallback happens automatically and requires no user action. For edge cases, users can also choose to force FFmpeg decoding, although this is generally not recommended due to higher CPU usage, increased battery consumption and the lack of hardware acceleration.

FFmpeg supports a vast range of codecs and containers, including:

  • FLV (Sorenson Spark)
  • WMV
  • Various legacy or uncommon MPEG variants
  • Experimental or poorly muxed streams
Extension Decoder improves playback compatibility by using FFmpeg as a fallback when the default pipeline fails; forcing FFmpeg is available, but should be reserved for edge cases due to performance cost.


Comments