GPAC 2.4

We are happy to announce the release of GPAC 2.4

This release marks the beginning of GPAC in your browser with emscripten support, with a live demo at !

This release also brings many new features including pcap support, async net IOs, JIT packaging for on-demand content and better subtitle/CC support.

As usual, installers are available on for most common platforms.

Enjoy, give us feedback and spread the news!

Detailed changes:

Emscripten|WebAssembly(WASM) support

  • Session can run in worker or in main browser loop
  • Automatic disable of ffdec and ffenc threads when not running in worker
  • Use fetch() api for downloader
  • Support for WebCodecs
  • Support for getUserMedia and canvas readable streams
  • gpac.html demo page

Media Formats

  • Fixes in text subtitle converters
  • Improved DolbyVision muxing from mkv
  • Dasher support for inputs with multiple stsd entries
  • Allow multiplexed representations for LL-HLS
  • Improved eac3 support
  • QT cmov support (reading and writing)
  • QT lpcm support
  • Improved chaptering support
  • Improved timecode inspection
  • Support for big-endian PCM formats
  • Support for uncv (raw video in mp4 and heif)
  • Support for forced subtitles
  • Support for HEVC bitstreams merging in dash (for multi-res tile adaptation)


  • Async HTTP request in all filters
  • JS/Python/NodeJS bindings for httpout server
  • Fixed CORS and mime types in httpout for wasm and sharedArrayuffer support
  • Allow compilation without threads
  • Allow compilation without network
  • Fixed GF_FileIO for async read and write modes
  • Added seeking in mp4dmx in mem mode
  • vout updated to use VBO (required for gles2)
  • libcaca video output support
  • Allow ffdmx to work as demux filter on gpac input file pids
  • GHI format for pre-indexing DASH/HLS session for JIT packaging/encryption/transcode
  • Zero-copy for mp4dmx and fragmented mp4mx
  • Various speed optimizations (filter session, isomedia lib, disk io, xml)
  • Allow running the session without mutexes
  • Closed Caption decoding filter (CEA708)
  • MPEG-H decoder using IIS mpeghdec
  • Templating for property assignment
  • Conditional filter replacement to identify based on codecID
  • Per-filter logging


  • Add track reordering option


  • Migrated doc from github’s wiki to
  • FFMPEG 7 support
  • Added features for configure (vout, aout, fonts, doc, evg)
  • Allow specifying network interface by name or IP (instead of IP only)
  • UDP/TCP filtering and recording to / playback from pcap, pcapng and GPAC gpc files
  • Added Nix and Docker build files
  • many bug fixes, improvements and security patches