GPAC 1.0
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.
- ISOBMFF:
- 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:
- Live doc generation (man and wiki).
- Improved coverage.
- Split test suite as dedicated repository.
- Moved all resource to https://wiki.gpac.io.
- Started howto pages on wiki.
- Many bug fixes.
As usual, installers are available on gpac.io for most common platforms.
Enjoy, give us feedback and spread the news !