Empowering Ultramedia Content Handling
The GPAC Open Source framework empowers the seamless handling of a diverse range of multimedia elements. It is an all-in-one solution for processing, inspecting, packaging, streaming, playback and interaction with media content.
GPAC handles audio, video, subtitles, metadata, scalable graphics, encrypted media, 2D/3D graphics and ECMAScript to enable the most beautiful and unimaginable ultramedia experiences. GPAC’s comprehensive suite of tools, including the renowned MP4Box and the versatile gpac application, offer robust functionality for media manipulation, packaging and streaming.
Key Features of GPAC
- Extensive Codec Support: GPAC handles a wide range of audio and video formats, including MPEG audio, AC3, E-AC3, Opus, FLAC, MPEG 1/2/4, H264|AVC, HEVC, VVC, AV1, VP9, Theora, and many more.
- Comprehensive Subtitle Support: GPAC seamlessly integrates with various subtitle formats, such as WebVTT, TTML (full, EBU-TTD), 3GPP/Apple Timed Text, enabling you to enhance your multimedia content with rich textual overlays.
- Advanced Encryption Capabilities: GPAC facilitates content protection with support for encryption standards like CENC, PIFF, HLS, ISMA, ensuring secure distribution of your media assets.
- Versatile Container Formats: GPAC effortlessly works with a wide range of container formats, including MP4/fMP4/CMAF, Quicktime MOV/ProRes, AVI, MPEG, OGG, MKV, empowering you to leverage the most suitable format for your streaming and delivery needs.
- Robust Streaming Protocols: GPAC seamlessly integrates with popular streaming protocols such as MPEG-2 Transport Stream, RTP, RTSP, HTTP, Apple HLS, MPEG-DASH, ATSC 3.0 ROUTE, facilitating efficient content delivery across a variety of platforms.
- Extensive IO Support: GPAC supports various input and output methods, including local files, pipes, UDP/TCP, HTTP(S), and custom IO configurations, giving you the flexibility to work with diverse media sources.
- Multimedia Presentation Formats: GPAC offers support for innovative presentation formats like MPEG-4 BIFS, SVG Tiny 1.2, and VRML/X3D, enabling immersive and interactive multimedia experiences.
- Powerful Scripting Capabilities: GPAC empowers developers with JS scripting through QuickJS, facilitating the creation of engaging media applications, custom filters, and extending the GPAC framework.
- Scalable 3D Support: GPAC caters to the growing demand for 3D media, providing tools and capabilities for rendering 360-degree videos, WebGL JS filters, and more.
- Developer-Friendly Bindings: GPAC is written in C and is easily integrated in any workflow. GPAC offers bindings for popular programming languages like Python and NodeJS, enabling seamless integration and customization within your projects.
- GPAC is cross-platform: running under various operating systems, including Windows, Linux, MacOSX, iOS, Android, WebAssembly and more.
GPAC’s main features and capabilities include a modular filter architecture, custom media pipeline creation, multimedia packaging with MP4Box, support for adaptive streaming, encryption, DRM, subtitling, and scene description.
- Filter Architecture: GPAC employs a flexible and modular filter architecture that allows for the creation of media pipelines using a sequence of processing blocks called filters. These filters can encompass a wide range of functionalities, including file/pipe/network access, multiplexing, encoding/decoding, media segmenting, streaming, and effects.
- Custom Media Pipelines: GPAC provides an application called gpac that enables users to build completely custom media pipelines. Unlike historical applications of GPAC, which typically provide fixed media pipelines, the gpac application allows for the creation of tailored pipelines to suit specific requirements.
- Multimedia Packager (MP4Box): GPAC includes a powerful multimedia packager called MP4Box. It is mostly designed for processing ISOBMF files (e.g., MP4, 3GP) but can also be used to import/export media from various container formats such as AVI, MPG, MKV, and MPEG-2 TS. MP4Box supports operations like removing/editing/tagging tracks, packaging content for HTTP Adaptive Streaming (MPEG-DASH, HLS), RTP/RTSP (hint tracks), encryption/decryption of streams, transcoding audio and video, and more.
- MPEG-DASH and HLS Support: GPAC has extended support for MPEG-DASH (Dynamic Adaptive Streaming over HTTP) and HLS (HTTP Live Streaming) content generation and playback. It provides comprehensive documentation on the basics, concepts, and terminology of these adaptive streaming technologies, allowing users to generate and play DASH/HLS content seamlessly.
- Encryption and DRM Support: GPAC offers robust support for media stream encryption and decryption based on the Common Encryption, ISMA E&A, and OMA DRM 2.0 specifications. It enables users to protect their media content by encrypting streams using AES-128 bit encryption in various modes (CTR, CBC). GPAC supports selective encryption, key signaling, cryptographic re-synchronization, roll keys and multi-key per frame. It also includes features for authoring OMA DRM-protected files.
- Subtitling and Scene Description: GPAC supports a wide range of subtitle formats and provides capabilities for decoding and processing subtitle tracks. It offers support for formats that require text processing as well as those that require image processing. GPAC also supports scene description languages like MPEG-4 BIFS, Web3D VRML97 and X3D, SVG 1.2 Tiny profile, MPEG-4 LASeR, and a subset of SWF (Adobe Flash).
- Media Content Generation and Playback: GPAC enables users to generate and playback media content, including support for various media formats, packaging for different delivery protocols (HTTP download, RTP streaming), and transcoding of audio and video. It also supports the encoding/decoding of presentation languages like MPEG-4 XMT and W3C SVG into/from binary formats like MPEG-4 BIFS and LASeR.
Packaging Multimedia Content
- Conversion of media files (MP3, AVI, MPEG-2 TS, MKV, MPEG-PS) to MP4/3GP format
- Decoding and encoding of media in various formats (H264, HEVC, AAC, AC3)
- Preparation of MP4, 3GP, and MPEG-2 TS files for DASH and HLS streaming
- File hinting for RTP/RTSP and QTSS/DSS servers (MPEG-4/ISMA/3GP/3GP2 files)
- CENC encryption and decryption
- File layout manipulation: fragmentation or interleaving, cleaning
- File splitting based on size or time, extraction from files, and concatenation
- Extraction of media tracks
- XML information dumping for MP4 and RTP hint tracks
- QT/3GPP timed text tools (SUB/SRT/TTXT/TeXML), VobSub import/export
- BIFS and LASeR encoders, text dumpers, and statistics reporting
Playing Multimedia Content
- Support for common media codecs for image, audio, and video
- Playback of media from local and HTTP(2)/HTTP(2)S sources
- Subtitle support for 3GPP Timed Text/MPEG-4 Streaming Text/WebVTT/TTML formats
- Demuxing of MPEG-2 TS streams (local/UDP/RTP) with DVB support (Linux only)
- Streaming support through RTP/RTCP/RTSP/SDP protocols
- HTTP streaming support for DASH and HLS
- Playback of ShoutCast/ICECast radios
- Support for BIFS, VRML, X3D, SVG scenes (2D, 3D, and mixed 2D/3D scenes)
Streaming Multimedia Content
- Server-side tools for RTP and RTSP streaming (unicast and multicast)
- MPEG-2 TS broadcasting capabilities
- HTTP(S) and HTTP2(s) server functionality
- ROUTE multicasting support
- Support for RTMP and other protocols through FFMPEG integration
- Media transcoding