GPAC

**GPAC Project on Advanced Content** ( **GPAC** 、再帰的な頭字語。直訳すると**高度なコンテンツに関するGPACプロジェクト**) は、モジュール性と標準準拠に重点を置いたオープンソースのマルチメディア フレームワークです。 GPAC は、 ANSI Cで記述されたMPEG-4システム標準の実装として作成され、後にストリーミング メディアで拡張されました。 GPAC は、メディア コンテンツを処理、検査、パッケージ化、ストリーミング、再生し、メディア コンテンツと対話するためのツールを提供します。 このようなコンテンツは、オーディオ、ビデオ、字幕、メタデータ、暗号化されたメディア、レンダリング、 ECMAScriptの任意の組み合わせになります。 

GPAC は、libgpac と呼ばれるコア ライブラリに基づいて 3 つのツール セットを提供します。

* マルチメディアパッケージャー、 *MP4Box*
* 汎用パイプライン エンジン、 *gpac* 。

GPAC はクロスプラットフォームです。 移植性を考慮して、メモリフットプリントをできるだけ小さく抑えるために、(ほぼ 100% ANSI) Cで記述されています。 現在、 Windows 、 Linux 、MacOS X、iOS、Android、Solaris、その他多くのシステムで実行されています。

GPAC は、幅広い MP4/ISOBMFF 機能を備えていることでよく知られており、ビデオ愛好家、学術研究者、標準化団体、プロの放送局の間で人気があります。

## History and standards

GPAC was founded in New York City in 1999. In 2003, it became an open-source project, with the initial goal of developing from scratch, in ANSI C, clean software compliant with the MPEG-4 Systems standard, as a small and flexible alternative to the MPEG-4 reference software.

In parallel, the project has evolved and now supports many other multimedia standards, with support for X3D, W3C SVG Tiny 1.2, and OMA/3GPP/ISMA and MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH) features. 3D support is available on embedded platforms through OpenGL-ES. The MPEG-DASH feature can be used to reconstruct .mp4 files from videos streamed and cached in this format (e.g., YouTube). Various research projects used or use GPAC.

Since 2013, GPAC Licensing has offered business support and closed-source licenses. In 2022 Netflix announced  using GPAC for their worldwide content operations  including the Netflix service, studio content, and merchandising material 

## Multimedia content features

### Packaging

GPAC features encoders and multiplexers, publishing and content distribution tools for MP4 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, albeit with extremely arcane syntax. Current supported features are:
* MP4/3GP Conversion from MP3, AVI, MPEG-2 TS, MPEG-PS, AAC, H263, H264, H265, H266, H266, AMR, and many others,
* 3GPP DIMS Packaging from SVG tiny 1.2 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.
* A syntax that ensures that simple operations, i.e. concatenating 3 files into one new one, are not simple.

### Playing

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 demultiplexer (local/UDP/RTP) with DVB support (Linux only),
* Streaming support through RTP/RTCP (unicast and multicast) and RTSP/SDP,
* Plugins for Mozilla (*osmozilla*, Win32 and Linux) and Internet Explorer (*GPAX*, Win32 and PPC 2003).

### Streaming

As of version 0.4.5, GPAC has some experimental server-side and streaming tools:
* MP4/3GP file RTP streamer (unicast and multicast),
* RTP streamer with service timeslicing (DVB-H) simulation,
* MPEG-2 TS broadcaster using MP4/3GP files or RTP streams as inputs,
* BIFS RTP broadcaster tool performing live encoding and RandomAccessPoints generation.

## Contributors

The project is hosted at Télécom_Paris, a leading French engineering school. Current main contributors of GPAC are:
* Jean Le Feuvre
* Romain Bouqueau
* Aurélien David

Other (current or past) contributors are:
* Cyril Concolato
* Jérôme Gorin
* Pierre Souchay
* Jean-Claude Moissinac
* Jean-Claude Dufourd
* Benoit Pellan
* Philippe de Cuetos.

Additionally, GPAC is used at Télécom Paris for pedagogical purposes. Students regularly participate in the development of the project.

## References

## External links
*GPAC homepage
*GPAC project on GitHub
*GPAC project on SourceForge (Deprecated 2016.01.23; See GitHub)
*GPAC Licensing (business support)