Skip to content

MPEG–H support in ExoPlayer

ameci-iis edited this page Dec 15, 2025 · 1 revision

MPEG-H decoding in AndroidX Media (ExoPlayer)

This page describes how to use the integrated MPEG-H decoding capability in AndroidX Media (ExoPlayer) project.

Since r1.6.0, AndroidX Media (ExoPlayer) integrates MPEG-H decoding based on Fraunhofer’s MPEG-H decoder, with MP4 and MPEG-2 TS transport support.

This makes it easy for multimedia application developers to enable in-app MPEG-H decoding.

Integration overview

The AndroidX Media (ExoPlayer) codebase includes:

Step 3: MPEG-H System Integration

AndroidX Media MPEG-H components overview

Supported streaming and playback formats

Supported playback paths:

  • MPEG-H decoding for DASH and HLS (live and VOD)
  • MPEG-H decoding for MP4 and MPEG-2 TS files

How to build and use the MPEG-H decoder extension

To enable the MPEG-H support in a new AndroidX Media based application:

  1. Base your project on the AndroidX Media release/main branch.
  2. Follow the decoder_mpegh README to build and integrate the MPEG-H extension.

For AndroidX Media/ExoPlayer versions older than r1.6.0:

  • Option 1:
    1. checkout AndroidX Media main branch
    2. copy libraries/decoder_mpegh into your project
    3. adapt decoder_mpegh to your AndroidX Media version as needed
    4. follow the decoder_mpegh README build instructions
  • Option 2:
    • Request patch set for the used AndroidX Media / ExoPlayer version from Fraunhofer IIS (please contact amm-info@iis.fraunhofer.de).
    • Patch sets are available for: ExoPlayer r2.15.1, r2.18.5, r2.18.6, r2.19.1; Media3 r1.5.1

How to test

To verify the extension, add this entry to media.exolist.json (reference) in the demo module and enable “Use decoder extension” in demo settings:

{
  "name": "MPEG-H",
  "samples": [
    {
      "name": "MPEG-H Public TestItem",
      "uri": "https://media.githubusercontent.com/media/Fraunhofer-IIS/mpegh-test-content/main/TRI_Fileset_17_514H_D1_D2_D3_O1_24bit1080p50.mp4"
    }
  ]
}