GPAC officially started as an open-source project in 2003 with the initial goal to develop from scratch, in ANSI C, clean software compliant to the MPEG-4 Systems standard, a small and flexible alternative to the MPEG-4 reference software. GPAC can probably be seen as the most advanced and robust 2D MPEG-4 Player publicly available worldwide, as well as a decent 3D player. 3D support is available on embedded platforms through OpenGL-ES 1.x.
In parallel, the project has evolved and now supports many other multimedia standards, with some good support for X3D, W3C SVG Tiny 1.2, and OMA/3GPP/ISMA features.
GPAC covers different aspects of multimedia: A/V codecs, network protocols and synchronization management algorithms, scene representation tools, etc… Here is a brief summary of the technologies implemented in GPAC in the packaging, playing and streaming areas.
Packaging Multimedia Content
GPAC features encoders and multiplexers, publishing and content distribution tools for MP4 and 3GPP or 3GPP2 files and many tools for scene descriptions (BIFS/VRML/X3D converters, SWF/BIFS, SVG/BIFS, etc…). MP4Box provides all these tools in a single command-line application. An exhaustive list of packaging features is available here but a good summary of what MP4Box can do for you is the following:
- MP4/3GP Conversion from MP3, AVI, MEPG-2 TS, MPEG-PS, AAC, H263, H264, AMR, and many others,
- 3GPP DIMS Packaging from SVG files,
- File layout: fragmentation or interleaving, and cleaning,
- File hinting for RTP/RTSP and QTSS/DSS servers (MPEG-4 / ISMA / 3GP / 3GP2 files),
- File splitting by size or time, extraction from file and file concatenation,
- XML information dumping for MP4 and RTP hint tracks,
- Media Track extractions,
- ISMA E&A encryption and decryption,
- 3GPP timed text tools (SUB/SRT/TTXT/TeXML), VobSub import/export,
- BIFS codec and scene conversion between MP4, BT and XMT-A,
- LASeR codec and scene conversion between MP4, SAF, SVG and XSR (XML LASeR),
- XML scene statistics for BIFS scene (BT, XMT-A and MP4),
- Conversion to and from BT, XMT-A, WRL, X3D and X3DV with support for gzip.
- Preparing MP4,3GP and MPEG-2 TS files for DASH streaming
Playing Multimedia Content
GPAC supports many protocols and standards, among which:
- BIFS scenes (2D, 3D and mixed 2D/3D scenes),
- VRML 2.0 (VRML97) scenes (without GEO or NURBS extensions),
- X3D scenes (not complete) in X3D (XML) and X3DV (VRML) formats,
- SVG Tiny 1.2 scenes (including packaged in 3GP DIMS files),
- LASeR and SAF (partial) support,
- Progressive loading/rendering of SVG, X3D and XMT files,
- HTTP reading of all scene descriptions,
- GZIP supported for all textual formats of MPEG4/X3D/VRML/SVG,
- MP4 and 3GPP file reading (local & http),
- MP3 and AAC files (local & http) and HTTP streaming (ShoutCast/ICECast radios),
- Most common media codecs for image, audio and video,
- Most common media containers,
- 3GPP Timed Text / MPEG-4 Streaming Text,
- MPEG-2 TS demuxer (local/UDP/RTP) with DVB support (Linux only),
- Streaming support through RTP/RTCP (unicast and multicast) and RTSP/SDP,
- HTTP Streaming (DASH, HLS) playback
- Plugins for Mozilla (Win32 and Linux) and Internet EXplorer (Win32 and PPC 2003).
Streaming Multimedia Content
As of version 0.4.4, GPAC has some server-side tools:
- MP4/3GP file RTP streamer (unicast and multicast, integrated in MP4Box),
- RTP streamer with service timeslicing (DVB-H) simulation,
- MPEG-2 TS broadcaster using MP4/3GP files or RTP streams as inputs (MP42TS),
- BIFS and DIMS RTP broadcaster tool performing live encoding and RandomAccessPoints generation (integrated in MP4Box).