Skip to content
Choose a tag to compare

GPAC 1.0

@jeanlf jeanlf released this
· 2283 commits to master since this release
Choose a tag to compare

We are thrilled to announce the release of GPAC 1.0, the first official release of GPAC "filters", a complete re-architecture of GPAC streaming core.

You can have a quick overview of the new possibilities of GPAC in our fosdem 2020 talk or our MMSYS'20 presentation.

A lot of new things are present in this release:

  • Complete rewrite of GPAC streaming core:
    • addition of a filter-based architecture, used by MP4Client and MP4Box,
    • moving all decoders and demuxer plugins of MP4Client and most of MP4Box import/export code as filters for this new architecture,
    • moving DASH/HLS segmenter to a filter,
    • moving MP4Client compositor and most of the GF_Terminal internals to a filter,
    • addition of a new application gpac, whose only purpose is to create and run filter chains,
    • removal of MP42TS and DashCast applications since these functionalities are provided by gpac,
    • deprecation of some features (widget management, MSE draft implementation for SVG media, UPnP, TEMI player support).
  • Profile system allowing to override through a static file default options of all filters and libgpac core.
  • Alias system for gpac app to simplify your command lines.
  • Enhanced DASHer:
    • Support for HLS and dual HLS / DASH generation.
    • Support for any input.
    • True low-latency mode for DASH.
    • Support for multiple periods.
    • Support for other segment formats (raw, mkv, webm currently tested).
  • Input and outputs
    • Generic pipe, TCP, UDP, and Unix Domain socket input and output.
    • RTSP server output.
    • HTTP output (client and server), supporting low latency DASH access.
    • Ad-hoc stream format called GSF to allow serialization to file, pipe or socket of a session (for distributed filter chains), supporting AES-128 CBC encryption.
  • Raw audio (PCM) and video (RGB, YUV) reframers and exporters.
  • HEVC tile spliting and merging filters.
  • Compositor is a standalone filter (SVG/BIFS/VRML graphics in a filter chain).
  • Image encoding support through libjpg and libpng.
  • Full FFMPEG support:
    • Encoding/decoding through FFMPEG libavcodec.
    • Multiplexing/demultiplexing through FFMPEG libavformat.
    • Device grabbers through FFMPEG libavdevice.
    • Raw audio and video filters through FFMPEG libavfilter.
  • Support for QuickJS (ES2020) and bindings for:
    • Complete filter API.
    • GPAC software rasterizer (EVG).
    • WebGL 1.0 Core.
    • XmlHttpRequest and uDOM APIs.
    • Storage.
  • Inspect and analyze filter.
  • MPEG-2 TS splitter.
  • Video cropper filter with zero-copy mode.
  • Video flip filter.
  • Source concatenation filter.
  • Simple audio and video output filters.
  • Experimental audio and video rewinder filter.
  • Encryption:
    • On-the-fly encryption and decryption, now available as filters.
    • Segment-based encryption and decryption.
    • Box customization.
    • Better QT support, ProRes parsing and dumping.
    • Support for raw media (QT style or ISOBMFF for audio).
    • Simplify HEIF batch conversion through item to track mapping.
    • Reading from pipes (fragmented or progressive files).
    • Writing to packets rather than files.
    • Fast interleaved file creation mode with less storage requirements.
  • FileIO wrapper for cases where files are not stored in a file system known by GPAC.
  • Testing and Documentation:

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

Enjoy, give us feedback and spread the news !